Django项目:CRM(客户关系管理系统)--80--70PerfectCRM实现CRM业务流程(bpm)课程排行分页

  1 # coursetop_views.py
  2 # ————————64PerfectCRM实现CRM课程排名详情————————
  3 #————班级学生详情——#计算#{学员ID:分数}——#计算 #{学员ID: [分数, 排名] }————#
  4 #班级学生详情#计算#{学员ID:分数}
  5 from django.db.models import Sum #返回数组中所有值的和
  6 def get_course_grades(class_obj):#返回整个班级的成绩
  7     c=models.StudyRecord.objects.filter(course_record__from_class=class_obj).values_list('student')
  8     a=Sum('score')#Sum返回数组中所有值的和   #学习成绩
  9     e=c.annotate(a) #annotate数据库的数据聚合函数
 10     class_grade_dic=dict(e)#{1: 285, 16: 190}#{学员ID:分数}
 11     print( '全班成绩:', class_grade_dic)
 12     return class_grade_dic   #as class_grade_dic
 13 
 14 #班级学生详情#计算 #{学员ID: [分数, 排名] }
 15 def get_course_ranking(class_grade_dic):#返回整个班级的排名数据
 16     ranking_list = sorted(class_grade_dic.items(),key=lambda x:x[1],reverse=True)#进行排序后的列表#以第2个参数对比#倒序
 17     print('成绩排序:',ranking_list)
 18     ranking_dic = {}
 19     for item in ranking_list:
 20         ranking_dic[item[0]] = [item[1], ranking_list.index(item)+1] #循环添加 排名数 到 排序后的列表
 21     print( '全班排名:', ranking_dic)#{1: [285, 1], 10: [280, 2], }#{学员ID: [分数, 排名] }
 22     return ranking_dic
 23 #————班级学生详情——#计算#{学员ID:分数}——#计算 #{学员ID: [分数, 排名] }————#
 24 
 25 from django.contrib.auth.decorators import login_required  # 登陆后页面才能访问
 26 from django.shortcuts import render #页面返回
 27 from crm import models #数据库
 28 
 29 # ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————
 30 from bpm.bpm_auxiliary.pagination import Page #分页
 31 # ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————
 32 
 33 #班级学生详情
 34 @login_required  # 登陆后页面才能访问
 35 def coursetop_details(request,class_id):
 36     classes_obj = models.ClassList.objects.get(id=class_id)#通过ID获取02班级表
 37     enrollmentlist=classes_obj.enrollment_set.all()#通过班级ID,获取06学员报名信息表
 38 
 39     class_grade_dic=get_course_grades(classes_obj.id)#{学员ID:分数}        #全班成绩 # coursetop_tags.py 根据id 找对应的分数
 40     ranking_dic=get_course_ranking(class_grade_dic)#{学员ID: [分数, 排名] } #全班排名 # coursetop_tags.py 根据id 找对应的排名
 41 
 42     # ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————
 43     page = Page( request.GET.get( 'p', 1 ), len( enrollmentlist ) )  # 当前页数 默认为1 #总数量
 44     enrollmentlist = enrollmentlist[page.start:page.end]  # 切片取当前页的数据
 45     page_str = page.page_str('/bpm/coursetop_details/%s/'%(class_id)) # 总页数 传入url
 46     # ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————
 47 
 48     return render(request,'bpm_coursetop/coursetop_details.html',locals())
 49 # ————————64PerfectCRM实现CRM课程排名详情————————
 50 
 51 
 52 
 53 # ————————65PerfectCRM实现CRM课程分数排名————————
 54 #———— 班级学生详情——#计算 #{排名: (ID, 分数)}#排名查名字————#
 55 def get_ranking_name(class_grade_dic):
 56     lists=[]
 57     ranking_list = sorted(class_grade_dic.items(),key=lambda x:x[1],reverse=True)#进行排序后的列表#以第2个参数对比#倒序
 58     #ranking_list [(1, 285), (10, 280)] #按分高排序的ID顺序
 59     for item in ranking_list:
 60         temp={}
 61         temp[ranking_list.index(item) + 1] = item  # 循环添加 排名数 到 排序后的列表
 62         lists.append(temp)
 63     print( '排名查名字:', lists )#[{1: (1, 285)}, {2: (10, 280)}]#[{排名: (学员ID, 分数)}]
 64     return lists
 65 #———— 班级学生详情——#计算 #{排名: (ID, 分数)}#排名查名字————#
 66 
 67 #班级学生详情#全班成绩排名 #通过#{排名: (ID, 分数)}#排名查名字
 68 @login_required  # 登陆后页面才能访问
 69 def coursetop_score(request,class_id):
 70     classes_obj = models.ClassList.objects.get(id=class_id)#通过ID获取02班级表
 71     class_grade_dic=get_course_grades(classes_obj.id)#{学员ID:分数}        #全班成绩
 72     lists=get_ranking_name(class_grade_dic)#计算#[{排名: (学员ID, 分数)}]  #按分高排序的ID顺序
 73 
 74     # ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————
 75     page = Page( request.GET.get( 'p', 1 ), len( lists ) )  # 当前页数 默认为1 #总数量
 76     lists = lists[page.start:page.end]  # 切片取当前页的数据
 77     page_str = page.page_str('/bpm/coursetop_score/%s/'%(class_id)) # 总页数 传入url
 78     # ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————
 79 
 80     return render(request,'bpm_coursetop/coursetop_score.html',locals())
 81 
 82 # ————————65PerfectCRM实现CRM课程分数排名————————
 83 
 84 # ————————66PerfectCRM实现CRM课程作业排名————————
 85 #————#班级学生详情#计算#学员已交作业的数量————#
 86 #班级学生详情#计算#学员已交作业的数量
 87 def get_already_homework(class_id):
 88     score_list = models.StudyRecord.objects.select_related().filter(student=class_id ).values_list( 'score' )#学习成绩
 89     number = 0
 90     for score in score_list:
 91         if score != (0,):  # (0,"N/A")
 92             number += 1  #通过 学习成绩 不等于0 计算#已交作业的数量
 93     return number
 94 #————#班级学生详情#计算#学员已交作业的数量————#
 95 
 96 #班级学生详情#学员已交作业的数量#作业查名字
 97 @login_required  # 登陆后页面才能访问
 98 def coursetop_homework(request,class_id):
 99     classes_obj = models.ClassList.objects.get(id=class_id)#通过ID获取02班级表
100     class_grade_dic=get_course_grades(classes_obj.id)#{学员ID:分数}        #全班成绩
101     ranking_dic=get_course_ranking(class_grade_dic)#{学员ID: [分数, 排名] } #全班排名
102     enrollmentlist=classes_obj.enrollment_set.all()#通过班级ID,获取06学员报名信息表
103 
104     dict = {}#{1: 3, 4: 2,}#{学员ID: 数量}
105     for item in enrollmentlist:
106         d = get_already_homework( item.id )#根据06学员报名信息表#学员ID #计算#学员已交作业的数量
107         dict[item.id]= d
108 
109     list = sorted(dict.items(),key=lambda x:x[1])#进行排序后的列表#以第2个参数对比
110     #list[ (4, 2), (16, 2)]    #list[ (学员ID, 数量)]
111 
112     lists=[] #[{1: (19, 0)}, {2: (20, 0)}]#[{排名: (学员ID, 数量)}]
113     for item in list:
114         temp={}
115         temp[list.index( item ) + 1] = item  # 循环添加 排名数 到 排序后的列表 #按已交作业数量少到多排序
116         lists.append(temp)
117     print('已交作业:',lists)
118 
119     # ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————
120     page = Page( request.GET.get( 'p', 1 ), len( lists ) )  # 当前页数 默认为1 #总数量
121     lists = lists[page.start:page.end]  # 切片取当前页的数据
122     page_str = page.page_str('/bpm/coursetop_homework/%s/'%(class_id)) # 总页数 传入url
123     # ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————
124 
125     return render(request,'bpm_coursetop/coursetop_homework.html',locals())
126 # ————————66PerfectCRM实现CRM课程作业排名————————
127 
128 # ————————67PerfectCRM实现CRM课程出勤排名————————
129 #————#班级学生详情#学员出勤次数 #出勤次数查名字————#
130 #班级学生详情#计算#学员出勤次数
131 def get_stu_attendance(enroll_obj_id):
132     attendance_list=models.StudyRecord.objects.select_related().filter(student=enroll_obj_id).values_list('attendance')
133     number=0
134     for attendance in attendance_list:
135         if attendance == (0,) :
136             number += 1
137     return number
138 #————#班级学生详情#学员出勤次数 #出勤次数查名字————#
139 
140 #班级学生详情#学员出勤次数 #出勤次数查名字
141 @login_required  # 登陆后页面才能访问
142 def coursetop_attendance(request,class_id):
143     classes_obj = models.ClassList.objects.get(id=class_id)#通过ID获取02班级表
144     class_grade_dic=get_course_grades(classes_obj.id)#{学员ID:分数}        #全班成绩
145     ranking_dic=get_course_ranking(class_grade_dic)#{学员ID: [分数, 排名] } #全班排名
146     enrollmentlist=classes_obj.enrollment_set.all()#通过班级ID,获取06学员报名信息表
147 
148     dict = {} #{1: 3, 4: 2,}#{学员ID: 次数}
149     for item in enrollmentlist:
150         d = get_stu_attendance( item.id )#根据06学员报名信息表#学员ID #计算#学员学员出勤次数
151         dict[item.id]= d # 循环添加 {学员ID: 次数} #排序后的字典
152 
153     list = sorted(dict.items(),key=lambda x:x[1])#进行排序后的列表#以第2个参数对比 #按出勤次数少到多排序
154     #list[ (4, 2), (16, 2)]    #list[ (学员ID, 次数)]
155 
156     lists=[]#[{1: (19, 3)}, {2: (20, 1)}]#[{排名: (学员ID, 次数)}]
157     for item in list:
158         temp={}
159         temp[list.index( item ) + 1] = item  # 循环添加 排名数 #排序后的列表
160         lists.append(temp)
161     print('全班出勤',lists)
162 
163     # ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————
164     page = Page( request.GET.get( 'p', 1 ), len( lists ) )  # 当前页数 默认为1 #总数量
165     lists = lists[page.start:page.end]  # 切片取当前页的数据
166     page_str = page.page_str('/bpm/coursetop_attendance/%s/'%(class_id)) # 总页数 传入url
167     # ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————
168 
169     return render(request,'bpm_coursetop/coursetop_attendance.html',locals())
170 # ————————67PerfectCRM实现CRM课程出勤排名————————
# coursetop_views.py

  1 {#coursetop_details.html#}
  2 {## ————————64PerfectCRM实现CRM课程排名详情————————#}
  3 {% extends 'bpm_master/bpm_sample.html' %}
  4 {% load coursetop_tags %} {#计算课程排名#}
  5 {% block right-container-content %} {#自定义内容开始 右边页面内容#}
  6     <div class="panel-default">
  7         <div class="panel-default">
  8             <div class="panel-body">
  9                 <h4>当前用户: {{ request.user }} | 讲师名字:{{ request.user.stu_account.name }} |
 10                     讲师QQ:{{ request.user.stu_account }} </h4>
 11                 <ol class="breadcrumb">
 12                     <li><a href="{% url 'teacher_class' %}">我的班级</a></li>
 13                     <li><a href="{% url 'teacher_class_detail' classes_obj.id %}">{{ classes_obj }}</a></li>
 14                     <li><a href="{% url 'coursetop_details' classes_obj.id %}">课程排行</a></li>
 15                 </ol>
 16                 <table class="table table-striped table-responsive">
 17                     <thead>
 18                     <tr>
 19                         <th>学员ID</th>
 20                         <th><a target="_blank" href="/king_admin/crm/enrollment/?enrolled_class={{ class_id }}">学员姓名</a>
 21                         </th>
 22                         <th>学员QQ</th>
 23                         <th>报名日期</th>
 24                         <th>
 25                             {## ————————65PerfectCRM实现CRM课程分数排名————————#}
 26                             <a href="{% url 'coursetop_score' classes_obj.id %}">
 27                                 {## ————————65PerfectCRM实现CRM课程分数排名————————#}
 28                                 课程成绩
 29                             </a>
 30                         </th>
 31                         <th>
 32                             {## ————————65PerfectCRM实现CRM课程分数排名————————#}
 33                             <a href="{% url 'coursetop_score' classes_obj.id %}">
 34                                 {## ————————65PerfectCRM实现CRM课程分数排名————————#}
 35                                 班级排名
 36                             </a>
 37                         </th>
 38                         <th>
 39                             {## ————————66PerfectCRM实现CRM课程作业排名————————#}
 40                             <a href="{% url 'coursetop_homework' classes_obj.id %}">
 41                                 {## ————————66PerfectCRM实现CRM课程作业排名————————#}
 42                                 已交作业
 43                             </a>
 44                         </th>
 45                         <th>
 46                             {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
 47                             <a href="{% url 'coursetop_attendance' classes_obj.id %}">
 48                                 {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
 49                                 出勤次数
 50                             </a>
 51                         </th>
 52                         <th>迟到次数</th>
 53                         <th>缺勤次数</th>
 54                         <th>早退次数</th>
 55                     </tr>
 56                     </thead>
 57 
 58 
 59                     <tbody>
 60                     {% for enroll_obj  in  enrollmentlist %}
 61                         <tr>
 62                             <td style="color: #ff0f00">{{ enroll_obj.id }}</td>
 63                             {# 学员id#}
 64                             <td>{{ enroll_obj.customer.name }}</td>
 65                             {# 学员姓名#}
 66                             <td>{{ enroll_obj.customer.qq }}</td>
 67                             {# 学员QQ#}
 68                             <td>{{ enroll_obj.date }}</td>
 69                             {# 报名日期#}
 70                             <td>
 71                                 {% fetch_stu_course_score class_grade_dic enroll_obj.id %} {# 得到 学员 课程 分数#}
 72                             </td>
 73                             <td>
 74                                 {% get_stu_grade_ranking ranking_dic enroll_obj.id %} {# 得到 学员 课程 排名#}
 75                             </td>
 76                             <td>
 77                                 {% get_already_homework enroll_obj.id %}{# 已交作业#}
 78                             </td>
 79                             <td>
 80                                 {% get_stu_attendance enroll_obj.id %} {# 得到 学员出勤次数#}
 81                             </td>
 82                             <td>
 83                                 {% get_stu_late enroll_obj.id %} {# 得到 学员出勤次数#}
 84                             </td>
 85                             <td>
 86                                 {% get_stu_absenteeism enroll_obj.id %} {# 得到 学员出勤次数#}
 87                             </td>
 88                             <td>
 89                                 {% get_stu_early enroll_obj.id %} {# 得到 学员早退次数#}
 90                             </td>
 91                         </tr>
 92                     {% endfor %}
 93                     </tbody>
 94                 </table>
 95 
 96                 {## ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————#}
 97                 {% include 'bpm_components/page_str.html' %}
 98                 {## ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————#}
 99 
100             </div>
101         </div>
102     </div>
103 {% endblock %}
104 {## ————————64PerfectCRM实现CRM课程排名详情————————#}
{#coursetop_details.html#}

 1 {#coursetop_score.html#}
 2 {## ————————65PerfectCRM实现CRM课程分数排名————————#}
 3 {% extends 'bpm_master/bpm_sample.html' %}
 4 {% load coursetop_tags %}
 5 {% block right-container-content %} {#自定义内容开始 右边页面内容#}
 6     <div class="panel-default">
 7         <div class="panel-default">
 8             <div class="panel-body">
 9                 <h4>当前用户: {{ request.user }} | 讲师名字:{{ request.user.stu_account.name }} |
10                     讲师QQ:{{ request.user.stu_account }} </h4>
11                 <ol class="breadcrumb">
12                     <li><a href="{% url 'teacher_class' %}">我的班级</a></li>
13                     <li><a href="{% url 'teacher_class_detail' classes_obj.id %}">{{ classes_obj }}</a></li>
14                     <li><a href="{% url 'coursetop_score' classes_obj.id %}">分数排名</a></li>
15                 </ol>
16                 <table class="table table-striped table-responsive">
17                     <thead>
18                     <tr>
19                         <th><a href="{% url 'coursetop_details' classes_obj.id %}">学员ID</a></th>
20                         <th><a target="_blank" href="/king_admin/crm/enrollment/?enrolled_class={{ class_id }}">学员姓名</a>
21                         </th>
22                         <th>学员QQ</th>
23                         <th>报名日期</th>
24                         <th>课程成绩</th>
25                         <th>班级排名</th>
26                         <th>
27                             {## ————————66PerfectCRM实现CRM课程作业排名————————#}
28                             <a href="{% url 'coursetop_homework' classes_obj.id %}">
29                                 {## ————————66PerfectCRM实现CRM课程作业排名————————#}
30                                 已交作业
31                             </a>
32                         </th>
33                         <th>
34                             {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
35                             <a href="{% url 'coursetop_attendance' classes_obj.id %}">
36                                 {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
37                                 出勤次数
38                             </a>
39                         </th>
40                         <th>迟到次数</th>
41                         <th>缺勤次数</th>
42                         <th>早退次数</th>
43                     </tr>
44                     </thead>
45 
46 
47                     <tbody>
48                     {% for enroll_objs  in  lists %}
49                         {% for top,enroll_obj in enroll_objs.items %}{#分离提取K,V#[{排名: (学员ID, 分数)}]#}
50                             {% id_enrollment enroll_obj.0 as enrollment %}{#enroll_obj.0 #学员ID#}{#通过学员ID查06学员报名信息表#}
51                             <tr>
52                                 <td>{{ enroll_obj.0 }}</td>
53                                 {#学员ID#}
54                                 <td>{{ enrollment.customer.name }}</td>
55                                 {#学员姓名#}
56                                 <td>{{ enrollment.customer.qq }}</td>
57                                 {#学员QQ#}
58                                 <td>{{ enrollment.date }}</td>
59                                 {#报名日期#}
60                                 <td style="color: #ff0f00"> {{ enroll_obj.1 }}{#课程成绩#} </td>
61                                 <td style="color: #ff0f00">
62                                     {{ top }}{#班级排名#}
63                                 </td>
64                                 <td>{% get_already_homework enroll_obj.0 %}</td>
65                                 {#已交作业#}
66                                 <td>
67                                     {% get_stu_attendance enroll_obj.0 %}{#出勤次数#}
68                                 </td>
69                                 <td>
70                                     {% get_stu_late enroll_obj.0 %}{#迟到次数#}
71                                 </td>
72                                 <td>
73                                     {% get_stu_absenteeism enroll_obj.0 %}{#缺勤次数#}
74                                 </td>
75                                 <td>
76                                     {% get_stu_early enroll_obj.0 %}{#早退次数#}
77                                 </td>
78                             </tr>
79                         {% endfor %}
80                     {% endfor %}
81                     </tbody>
82                 </table>
83 
84                 {## ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————#}
85                 {% include 'bpm_components/page_str.html' %}
86                 {## ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————#}
87 
88             </div>
89         </div>
90     </div>
91 {% endblock %}
92 {## ————————65PerfectCRM实现CRM课程分数排名————————#}
{#coursetop_score.html#}

 1 {#coursetop_homework.html#}
 2 {## ————————66PerfectCRM实现CRM课程作业排名————————#}
 3 {% extends 'bpm_master/bpm_sample.html' %}
 4 {% load coursetop_tags %}
 5 {% block right-container-content %} {#自定义内容开始 右边页面内容#}
 6     <div class="panel-default">
 7         <div class="panel-default">
 8             <div class="panel-body">
 9                 <h4>当前用户: {{ request.user }} | 讲师名字:{{ request.user.stu_account.name }} |
10                     讲师QQ:{{ request.user.stu_account }} </h4>
11                 <ol class="breadcrumb">
12                     <li><a href="{% url 'teacher_class' %}">我的班级</a></li>
13                     <li><a href="{% url 'teacher_class_detail' classes_obj.id %}">{{ classes_obj }}</a></li>
14                     <li><a href="{% url 'coursetop_homework' classes_obj.id %}">作业排名</a></li>
15                 </ol>
16                 <table class="table table-striped table-responsive">
17                     <thead>
18                     <tr>
19                         <th><a href="{% url 'coursetop_details' classes_obj.id %}">学员ID</a></th>
20                         <th><a target="_blank" href="/king_admin/crm/enrollment/?enrolled_class={{ class_id }}">学员姓名</a>
21                         </th>
22                         <th>学员QQ</th>
23                         <th>报名日期</th>
24                         <th><a href="{% url 'coursetop_score' classes_obj.id %}">课程成绩</a></th>
25                         <th><a href="{% url 'coursetop_score' classes_obj.id %}">班级排名</a></th>
26                         <th>已交作业</th>
27                         <th>
28                             {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
29                             <a href="{% url 'coursetop_attendance' classes_obj.id %}">
30                                 {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
31                                 出勤次数
32                             </a>
33                         </th>
34                         <th>迟到次数</th>
35                         <th>缺勤次数</th>
36                         <th>早退次数</th>
37                     </tr>
38                     </thead>
39 
40 
41                     <tbody>
42                     {% for enroll_objs  in  lists %}
43                         {% for top,enroll_obj in enroll_objs.items %}{#分离提取K,V#[{排名: (学员ID, 分数)}]#}
44                             {% id_enrollment enroll_obj.0 as enrollment %}{#enroll_obj.0 #学员ID#}{#通过学员ID查06学员报名信息表#}
45                             <tr>
46                                 <td>{{ enroll_obj.0 }}</td>
47                                 {#学员id#}
48                                 <td>{{ enrollment.customer.name }}</td>
49                                 {#学员姓名#}
50                                 <td>{{ enrollment.customer.qq }}</td>
51                                 {#学员QQ#}
52                                 <td>{{ enrollment.date }}</td>
53                                 {#报名日期#}
54                                 <td>
55                                     {% fetch_stu_course_score class_grade_dic enroll_obj.0 %} {# 获取 学员 课程 分数#}
56                                 </td>
57                                 <td>
58                                     {% get_stu_grade_ranking ranking_dic enroll_obj.0 %} {# 得到 学员 年级 排名#}
59                                 </td>
60                                 <td style="color: #ff0f00">
61                                     {% get_already_homework enroll_obj.0 %}{#已交作业#}
62                                 </td>
63                                 <td>
64                                     {% get_stu_attendance enroll_obj.0 %}{#出勤次数#}
65                                 </td>
66                                 <td>
67                                     {% get_stu_late enroll_obj.0 %}{#迟到次数#}
68                                 </td>
69                                 <td>
70                                     {% get_stu_absenteeism enroll_obj.0 %}{#缺勤次数#}
71                                 </td>
72                                 <td>
73                                     {% get_stu_early enroll_obj.0 %}{#早退次数#}
74                                 </td>
75                             </tr>
76                         {% endfor %}
77                     {% endfor %}
78                     </tbody>
79                 </table>
80 
81 
82                 {## ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————#}
83                 {% include 'bpm_components/page_str.html' %}
84                 {## ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————#}
85 
86             </div>
87         </div>
88     </div>
89 {% endblock %}
90 {## ————————66PerfectCRM实现CRM课程作业排名————————#}
{#coursetop_homework.html#}

 1 {#coursetop_attendance.html#}
 2 {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
 3 {% extends 'bpm_master/bpm_sample.html' %}
 4 {% load coursetop_tags %}
 5 {% block right-container-content %} {#自定义内容开始 右边页面内容#}
 6     <div class="panel-default">
 7         <div class="panel-default">
 8             <div class="panel-body">
 9                 <h4>当前用户: {{ request.user }} | 讲师名字:{{ request.user.stu_account.name }} |
10                     讲师QQ:{{ request.user.stu_account }} </h4>
11                 <ol class="breadcrumb">
12                     <li><a href="{% url 'teacher_class' %}">我的班级</a></li>
13                     <li><a href="{% url 'teacher_class_detail' classes_obj.id %}">{{ classes_obj }}</a></li>
14                     <li><a href="{% url 'coursetop_attendance' classes_obj.id %}">出勤排名</a></li>
15                 </ol>
16                 <table class="table table-striped table-responsive">
17                     <thead>
18                     <tr>
19                         <th><a href="{% url 'coursetop_details' classes_obj.id %}">学员ID</a></th>
20                         <th><a target="_blank" href="/king_admin/crm/enrollment/?enrolled_class={{ class_id }}">学员姓名</a>
21                         </th>
22                         <th>学员QQ</th>
23                         <th>报名日期</th>
24                         <th><a href="{% url 'coursetop_score' classes_obj.id %}">课程成绩</a></th>
25                         <th><a href="{% url 'coursetop_score' classes_obj.id %}">班级排名</a></th>
26                         <th><a href="{% url 'coursetop_homework' classes_obj.id %}">已交作业</a></th>
27                         <th>出勤次数</th>
28                         <th>迟到次数</th>
29                         <th>缺勤次数</th>
30                         <th>早退次数</th>
31                     </tr>
32                     </thead>
33 
34 
35                     <tbody>
36                     {% for enroll_objs  in  lists %}
37                         {% for top,enroll_obj in enroll_objs.items %}{#分离提取K,V#[{排名: (学员ID, 分数)}]#}
38                             {% id_enrollment enroll_obj.0 as enrollment %}{#enroll_obj.0 #学员ID#}{#通过学员ID查06学员报名信息表#}
39                             <tr>
40                                 <td>{{ enroll_obj.0 }}</td>
41                                 {#学员id#}
42                                 <td>{{ enrollment.customer.name }}</td>
43                                 {#学员姓名#}
44                                 <td>{{ enrollment.customer.qq }}</td>
45                                 {#学员QQ#}
46                                 <td>{{ enrollment.date }}</td>
47                                 {#报名日期#}
48                                 <td>
49                                     {% fetch_stu_course_score class_grade_dic enroll_obj.0 %} {# 获取 学员 课程 分数#}
50                                 </td>
51                                 <td>
52                                     {% get_stu_grade_ranking ranking_dic enroll_obj.0 %} {# 得到 学员 年级 排名#}
53                                 </td>
54                                 <td>
55                                     {% get_already_homework enroll_obj.0 %}{#已交作业#}
56                                 </td>
57                                 <td style="color: #ff0f00">
58                                     {% get_stu_attendance enroll_obj.0 %}{#出勤次数#}
59                                 </td>
60                                 <td>
61                                     {% get_stu_late enroll_obj.0 %}{#迟到次数#}
62                                 </td>
63                                 <td>
64                                     {% get_stu_absenteeism enroll_obj.0 %}{#缺勤次数#}
65                                 </td>
66                                 <td>
67                                     {% get_stu_early enroll_obj.0 %}{#早退次数#}
68                                 </td>
69                             </tr>
70                         {% endfor %}
71                     {% endfor %}
72                     </tbody>
73                 </table>
74 
75                 {## ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————#}
76                 {% include 'bpm_components/page_str.html' %}
77                 {## ————————70PerfectCRM实现CRM业务流程(bpm)课程排行分页————————#}
78 
79 
80             </div>
81         </div>
82     </div>
83 {% endblock %}
84 {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
{#coursetop_attendance.html#}

猜你喜欢

转载自www.cnblogs.com/ujq3/p/9036687.html