Django项目:CRM(客户关系管理系统)--77--67PerfectCRM实现CRM课程出勤排名

 

 1 # classtop_urls.py
 2 # ————————64PerfectCRM实现CRM课程排名详情————————
 3 from django.conf.urls import url
 4 from bpm.coursetop import coursetop_views
 5 urlpatterns = [
 6     url( r'^coursetop_details/(\d+)/$', coursetop_views.coursetop_details, name="coursetop_details" ),    # 课程排名详情
 7 
 8     # ————————65PerfectCRM实现CRM课程分数排名————————
 9     url( r'^coursetop_score/(\d+)/$', coursetop_views.coursetop_score, name="coursetop_score" ),    # 班级分数排行
10     # ————————65PerfectCRM实现CRM课程分数排名————————
11 
12     # ————————66PerfectCRM实现CRM课程作业排名————————
13     url( r'^coursetop_homework/(\d+)/$', coursetop_views.coursetop_homework, name="coursetop_homework" ),  # 班级作业排行
14     # ————————66PerfectCRM实现CRM课程作业排名————————
15 
16     # ————————67PerfectCRM实现CRM课程出勤排名————————
17     url( r'^coursetop_attendance/(\d+)/$', coursetop_views.coursetop_attendance, name="coursetop_attendance" ),  # 班级出勤排行
18     # ————————67PerfectCRM实现CRM课程出勤排名————————
19 ]
20 # ————————64PerfectCRM实现CRM课程排名详情————————
# classtop_urls.py

 

 

 

  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 @login_required  # 登陆后页面才能访问
 30 def coursetop_details(request,class_id):
 31     classes_obj = models.ClassList.objects.get(id=class_id)#通过ID获取02班级表
 32     enrollmentlist=classes_obj.enrollment_set.all()#通过班级ID,获取06学员报名信息表
 33 
 34     class_grade_dic=get_course_grades(classes_obj.id)#{学员ID:分数}        #全班成绩 # coursetop_tags.py 根据id 找对应的分数
 35     ranking_dic=get_course_ranking(class_grade_dic)#{学员ID: [分数, 排名] } #全班排名 # coursetop_tags.py 根据id 找对应的排名
 36 
 37     return render(request,'bpm_coursetop/coursetop_details.html',locals())
 38 # ————————64PerfectCRM实现CRM课程排名详情————————
 39 
 40 
 41 
 42 # ————————65PerfectCRM实现CRM课程分数排名————————
 43 #———— 班级学生详情——#计算 #{排名: (ID, 分数)}#排名查名字————#
 44 def get_ranking_name(class_grade_dic):
 45     lists=[]
 46     ranking_list = sorted(class_grade_dic.items(),key=lambda x:x[1],reverse=True)#进行排序后的列表#以第2个参数对比#倒序
 47     #ranking_list [(1, 285), (10, 280)] #按分高排序的ID顺序
 48     for item in ranking_list:
 49         temp={}
 50         temp[ranking_list.index(item) + 1] = item  # 循环添加 排名数 到 排序后的列表
 51         lists.append(temp)
 52     print( '排名查名字:', lists )#[{1: (1, 285)}, {2: (10, 280)}]#[{排名: (学员ID, 分数)}]
 53     return lists
 54 #———— 班级学生详情——#计算 #{排名: (ID, 分数)}#排名查名字————#
 55 
 56 #班级学生详情#全班成绩排名 #通过#{排名: (ID, 分数)}#排名查名字
 57 @login_required  # 登陆后页面才能访问
 58 def coursetop_score(request,class_id):
 59     classes_obj = models.ClassList.objects.get(id=class_id)#通过ID获取02班级表
 60     class_grade_dic=get_course_grades(classes_obj.id)#{学员ID:分数}        #全班成绩
 61     lists=get_ranking_name(class_grade_dic)#计算#[{排名: (学员ID, 分数)}]  #按分高排序的ID顺序
 62     return render(request,'bpm_coursetop/coursetop_score.html',locals())
 63 
 64 # ————————65PerfectCRM实现CRM课程分数排名————————
 65 
 66 # ————————66PerfectCRM实现CRM课程作业排名————————
 67 #————#班级学生详情#计算#学员已交作业的数量————#
 68 #班级学生详情#计算#学员已交作业的数量
 69 def get_already_homework(class_id):
 70     score_list = models.StudyRecord.objects.select_related().filter(student=class_id ).values_list( 'score' )#学习成绩
 71     number = 0
 72     for score in score_list:
 73         if score != (0,):  # (0,"N/A")
 74             number += 1  #通过 学习成绩 不等于0 计算#已交作业的数量
 75     return number
 76 #————#班级学生详情#计算#学员已交作业的数量————#
 77 
 78 #班级学生详情#学员已交作业的数量#作业查名字
 79 @login_required  # 登陆后页面才能访问
 80 def coursetop_homework(request,class_id):
 81     classes_obj = models.ClassList.objects.get(id=class_id)#通过ID获取02班级表
 82     class_grade_dic=get_course_grades(classes_obj.id)#{学员ID:分数}        #全班成绩
 83     ranking_dic=get_course_ranking(class_grade_dic)#{学员ID: [分数, 排名] } #全班排名
 84     enrollmentlist=classes_obj.enrollment_set.all()#通过班级ID,获取06学员报名信息表
 85 
 86     dict = {}#{1: 3, 4: 2,}#{学员ID: 数量}
 87     for item in enrollmentlist:
 88         d = get_already_homework( item.id )#根据06学员报名信息表#学员ID #计算#学员已交作业的数量
 89         dict[item.id]= d
 90 
 91     list = sorted(dict.items(),key=lambda x:x[1])#进行排序后的列表#以第2个参数对比
 92     #list[ (4, 2), (16, 2)]    #list[ (学员ID, 数量)]
 93 
 94     lists=[] #[{1: (19, 0)}, {2: (20, 0)}]#[{排名: (学员ID, 数量)}]
 95     for item in list:
 96         temp={}
 97         temp[list.index( item ) + 1] = item  # 循环添加 排名数 到 排序后的列表 #按已交作业数量少到多排序
 98         lists.append(temp)
 99     print('已交作业:',lists)
100     return render(request,'bpm_coursetop/coursetop_homework.html',locals())
101 # ————————66PerfectCRM实现CRM课程作业排名————————
102 
103 # ————————67PerfectCRM实现CRM课程出勤排名————————
104 #————#班级学生详情#学员出勤次数 #出勤次数查名字————#
105 #班级学生详情#计算#学员出勤次数
106 def get_stu_attendance(enroll_obj_id):
107     attendance_list=models.StudyRecord.objects.select_related().filter(student=enroll_obj_id).values_list('attendance')
108     number=0
109     for attendance in attendance_list:
110         if attendance == (0,) :
111             number += 1
112     return number
113 #————#班级学生详情#学员出勤次数 #出勤次数查名字————#
114 
115 #班级学生详情#学员出勤次数 #出勤次数查名字
116 @login_required  # 登陆后页面才能访问
117 def coursetop_attendance(request,class_id):
118     classes_obj = models.ClassList.objects.get(id=class_id)#通过ID获取02班级表
119     class_grade_dic=get_course_grades(classes_obj.id)#{学员ID:分数}        #全班成绩
120     ranking_dic=get_course_ranking(class_grade_dic)#{学员ID: [分数, 排名] } #全班排名
121     enrollmentlist=classes_obj.enrollment_set.all()#通过班级ID,获取06学员报名信息表
122 
123     dict = {} #{1: 3, 4: 2,}#{学员ID: 次数}
124     for item in enrollmentlist:
125         d = get_stu_attendance( item.id )#根据06学员报名信息表#学员ID #计算#学员学员出勤次数
126         dict[item.id]= d # 循环添加 {学员ID: 次数} #排序后的字典
127 
128     list = sorted(dict.items(),key=lambda x:x[1])#进行排序后的列表#以第2个参数对比 #按出勤次数少到多排序
129     #list[ (4, 2), (16, 2)]    #list[ (学员ID, 次数)]
130 
131     lists=[]#[{1: (19, 3)}, {2: (20, 1)}]#[{排名: (学员ID, 次数)}]
132     for item in list:
133         temp={}
134         temp[list.index( item ) + 1] = item  # 循环添加 排名数 #排序后的列表
135         lists.append(temp)
136     print('全班出勤',lists)
137     return render(request,'bpm_coursetop/coursetop_attendance.html',locals())
138 # ————————67PerfectCRM实现CRM课程出勤排名————————
# coursetop_views.py

 

 

 

 

 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             </div>
75         </div>
76     </div>
77 {% endblock %}
78 {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
{#coursetop_attendance.html#}

 

 

 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             </div>
96         </div>
97     </div>
98 {% endblock %}
99 {## ————————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             </div>
84         </div>
85     </div>
86 {% endblock %}
87 {## ————————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             </div>
81         </div>
82     </div>
83 {% endblock %}
84 {## ————————66PerfectCRM实现CRM课程作业排名————————#}
{#coursetop_homework.html#}

 

 

 

 1 # coursetop_tags.py
 2 # ————————64PerfectCRM实现CRM课程排名详情————————
 3 from crm import models
 4 from django import template
 5 register = template.Library()
 6 
 7 @register.simple_tag
 8 def fetch_stu_course_score(class_grade_dic, enroll_obj_id ): #获取 学员 课程 分数
 9     score=class_grade_dic.get(enroll_obj_id) #根据 id 找对应的分数
10     # print('#{学员ID:分数} #全班成绩',score)
11     return score
12 
13 @register.simple_tag
14 def get_stu_grade_ranking(course_ranking_dic,enroll_obj_id):#得到 学员 班级 排名
15     score_top = course_ranking_dic.get(enroll_obj_id) #根据id 找对应的排名
16     if score_top:
17         # print( '#{学员ID: [分数, 排名] } #全班排名:', score_top[1] )
18         return score_top[1]
19 
20 @register.simple_tag
21 def get_already_homework(enroll_obj_id): #获得已交作业
22     score_list=models.StudyRecord.objects.select_related().filter(student=enroll_obj_id).values_list('score')#根据09学习纪录的ID #获取学习成绩列表
23     number=0
24     for score in score_list:
25         if score!= (0,) :
26             number += 1
27     # print('已交作业次数',number)
28     return number
29 
30 @register.simple_tag
31 def get_stu_attendance(enroll_obj_id): #获得学员出勤次数
32     attendance_list=models.StudyRecord.objects.select_related().filter(student=enroll_obj_id).values_list('attendance')
33     number=0
34     for attendance in attendance_list:
35         if attendance == (0,) :
36             number += 1
37     # print('获得点名出勤',number)
38     return number
39 
40 @register.simple_tag
41 def get_stu_late(enroll_obj_id): #获得学员迟到次数
42     attendance_list=models.StudyRecord.objects.select_related().filter(student=enroll_obj_id).values_list('attendance')
43     number=0
44     for attendance in attendance_list:
45         if attendance == (1,) :
46             number += 1
47     # print('获得点名迟到',number)
48     return number
49 
50 @register.simple_tag
51 def get_stu_absenteeism(enroll_obj_id): #获得学员缺勤次数
52     attendance_list=models.StudyRecord.objects.select_related().filter(student=enroll_obj_id).values_list('attendance')
53     number=0
54     for attendance in attendance_list:
55         if attendance == (2,) :
56             number += 1
57     # print('获得点名缺勤',number)
58     return number
59 
60 @register.simple_tag
61 def get_stu_early(enroll_obj_id): #获得学员早退次数
62     attendance_list=models.StudyRecord.objects.select_related().filter(student=enroll_obj_id).values_list('attendance')
63     number=0
64     for attendance in attendance_list:
65         if attendance == (3,) :
66             number += 1
67     # print('获得点名早退',number)
68     return number
69 # ————————64PerfectCRM实现CRM课程排名详情————————
70 
71 # ————————65PerfectCRM实现CRM课程分数排名————————
72 @register.simple_tag
73 def id_enrollment(enroll_obj):#ID查姓名
74     enrollment = models.Enrollment.objects.filter(id=enroll_obj).first()#通过学员ID查06学员报名信息表
75     return enrollment #06学员报名信息表
76 # ————————65PerfectCRM实现CRM课程分数排名————————
# coursetop_tags.py

 

 

 

 

 


 

如果感觉本章博客对您有帮助,请尽情打赏吧!

 

posted @ 2018-05-14 13:34  颜言  阅读(322)  评论(0编辑  收藏  举报