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课程排名详情————————
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课程出勤排名————————
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课程出勤排名————————#}
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课程排名详情————————#}
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课程分数排名————————#}
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课程作业排名————————#}
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课程分数排名————————
如果感觉本章博客对您有帮助,请尽情打赏吧!
您的资助是我最大的动力!
金额随意,欢迎来赏!
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的
因为,我的写作热情也离不开您的肯定支持,感谢您的阅读,我是【颜言】!