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

# classtop_urls.py
# ————————64PerfectCRM实现CRM课程排名详情————————
from django.conf.urls import url
from bpm.coursetop import coursetop_views
urlpatterns = [
url( r'^coursetop_details/(\d+)/$', coursetop_views.coursetop_details, name="coursetop_details" ), # 课程排名详情 # ————————65PerfectCRM实现CRM课程分数排名————————
url( r'^coursetop_score/(\d+)/$', coursetop_views.coursetop_score, name="coursetop_score" ), # 班级分数排行
# ————————65PerfectCRM实现CRM课程分数排名———————— # ————————66PerfectCRM实现CRM课程作业排名————————
url( r'^coursetop_homework/(\d+)/$', coursetop_views.coursetop_homework, name="coursetop_homework" ), # 班级作业排行
# ————————66PerfectCRM实现CRM课程作业排名———————— # ————————67PerfectCRM实现CRM课程出勤排名————————
url( r'^coursetop_attendance/(\d+)/$', coursetop_views.coursetop_attendance, name="coursetop_attendance" ), # 班级出勤排行
# ————————67PerfectCRM实现CRM课程出勤排名————————
]
# ————————64PerfectCRM实现CRM课程排名详情————————
# classtop_urls.py

# coursetop_views.py
# ————————64PerfectCRM实现CRM课程排名详情————————
#————班级学生详情——#计算#{学员ID:分数}——#计算 #{学员ID: [分数, 排名] }————#
#班级学生详情#计算#{学员ID:分数}
from django.db.models import Sum #返回数组中所有值的和
def get_course_grades(class_obj):#返回整个班级的成绩
c=models.StudyRecord.objects.filter(course_record__from_class=class_obj).values_list('student')
a=Sum('score')#Sum返回数组中所有值的和 #学习成绩
e=c.annotate(a) #annotate数据库的数据聚合函数
class_grade_dic=dict(e)#{1: 285, 16: 190}#{学员ID:分数}
print( '全班成绩:', class_grade_dic)
return class_grade_dic #as class_grade_dic #班级学生详情#计算 #{学员ID: [分数, 排名] }
def get_course_ranking(class_grade_dic):#返回整个班级的排名数据
ranking_list = sorted(class_grade_dic.items(),key=lambda x:x[1],reverse=True)#进行排序后的列表#以第2个参数对比#倒序
print('成绩排序:',ranking_list)
ranking_dic = {}
for item in ranking_list:
ranking_dic[item[0]] = [item[1], ranking_list.index(item)+1] #循环添加 排名数 到 排序后的列表
print( '全班排名:', ranking_dic)#{1: [285, 1], 10: [280, 2], }#{学员ID: [分数, 排名] }
return ranking_dic
#————班级学生详情——#计算#{学员ID:分数}——#计算 #{学员ID: [分数, 排名] }————# from django.contrib.auth.decorators import login_required # 登陆后页面才能访问
from django.shortcuts import render #页面返回
from crm import models #数据库
#班级学生详情
@login_required # 登陆后页面才能访问
def coursetop_details(request,class_id):
classes_obj = models.ClassList.objects.get(id=class_id)#通过ID获取02班级表
enrollmentlist=classes_obj.enrollment_set.all()#通过班级ID,获取06学员报名信息表 class_grade_dic=get_course_grades(classes_obj.id)#{学员ID:分数} #全班成绩 # coursetop_tags.py 根据id 找对应的分数
ranking_dic=get_course_ranking(class_grade_dic)#{学员ID: [分数, 排名] } #全班排名 # coursetop_tags.py 根据id 找对应的排名 return render(request,'bpm_coursetop/coursetop_details.html',locals())
# ————————64PerfectCRM实现CRM课程排名详情———————— # ————————65PerfectCRM实现CRM课程分数排名————————
#———— 班级学生详情——#计算 #{排名: (ID, 分数)}#排名查名字————#
def get_ranking_name(class_grade_dic):
lists=[]
ranking_list = sorted(class_grade_dic.items(),key=lambda x:x[1],reverse=True)#进行排序后的列表#以第2个参数对比#倒序
#ranking_list [(1, 285), (10, 280)] #按分高排序的ID顺序
for item in ranking_list:
temp={}
temp[ranking_list.index(item) + 1] = item # 循环添加 排名数 到 排序后的列表
lists.append(temp)
print( '排名查名字:', lists )#[{1: (1, 285)}, {2: (10, 280)}]#[{排名: (学员ID, 分数)}]
return lists
#———— 班级学生详情——#计算 #{排名: (ID, 分数)}#排名查名字————# #班级学生详情#全班成绩排名 #通过#{排名: (ID, 分数)}#排名查名字
@login_required # 登陆后页面才能访问
def coursetop_score(request,class_id):
classes_obj = models.ClassList.objects.get(id=class_id)#通过ID获取02班级表
class_grade_dic=get_course_grades(classes_obj.id)#{学员ID:分数} #全班成绩
lists=get_ranking_name(class_grade_dic)#计算#[{排名: (学员ID, 分数)}] #按分高排序的ID顺序
return render(request,'bpm_coursetop/coursetop_score.html',locals()) # ————————65PerfectCRM实现CRM课程分数排名———————— # ————————66PerfectCRM实现CRM课程作业排名————————
#————#班级学生详情#计算#学员已交作业的数量————#
#班级学生详情#计算#学员已交作业的数量
def get_already_homework(class_id):
score_list = models.StudyRecord.objects.select_related().filter(student=class_id ).values_list( 'score' )#学习成绩
number = 0
for score in score_list:
if score != (0,): # (0,"N/A")
number += 1 #通过 学习成绩 不等于0 计算#已交作业的数量
return number
#————#班级学生详情#计算#学员已交作业的数量————# #班级学生详情#学员已交作业的数量#作业查名字
@login_required # 登陆后页面才能访问
def coursetop_homework(request,class_id):
classes_obj = models.ClassList.objects.get(id=class_id)#通过ID获取02班级表
class_grade_dic=get_course_grades(classes_obj.id)#{学员ID:分数} #全班成绩
ranking_dic=get_course_ranking(class_grade_dic)#{学员ID: [分数, 排名] } #全班排名
enrollmentlist=classes_obj.enrollment_set.all()#通过班级ID,获取06学员报名信息表 dict = {}#{1: 3, 4: 2,}#{学员ID: 数量}
for item in enrollmentlist:
d = get_already_homework( item.id )#根据06学员报名信息表#学员ID #计算#学员已交作业的数量
dict[item.id]= d list = sorted(dict.items(),key=lambda x:x[1])#进行排序后的列表#以第2个参数对比
#list[ (4, 2), (16, 2)] #list[ (学员ID, 数量)] lists=[] #[{1: (19, 0)}, {2: (20, 0)}]#[{排名: (学员ID, 数量)}]
for item in list:
temp={}
temp[list.index( item ) + 1] = item # 循环添加 排名数 到 排序后的列表 #按已交作业数量少到多排序
lists.append(temp)
print('已交作业:',lists)
return render(request,'bpm_coursetop/coursetop_homework.html',locals())
# ————————66PerfectCRM实现CRM课程作业排名———————— # ————————67PerfectCRM实现CRM课程出勤排名————————
#————#班级学生详情#学员出勤次数 #出勤次数查名字————#
#班级学生详情#计算#学员出勤次数
def get_stu_attendance(enroll_obj_id):
attendance_list=models.StudyRecord.objects.select_related().filter(student=enroll_obj_id).values_list('attendance')
number=0
for attendance in attendance_list:
if attendance == (0,) :
number += 1
return number
#————#班级学生详情#学员出勤次数 #出勤次数查名字————# #班级学生详情#学员出勤次数 #出勤次数查名字
@login_required # 登陆后页面才能访问
def coursetop_attendance(request,class_id):
classes_obj = models.ClassList.objects.get(id=class_id)#通过ID获取02班级表
class_grade_dic=get_course_grades(classes_obj.id)#{学员ID:分数} #全班成绩
ranking_dic=get_course_ranking(class_grade_dic)#{学员ID: [分数, 排名] } #全班排名
enrollmentlist=classes_obj.enrollment_set.all()#通过班级ID,获取06学员报名信息表 dict = {} #{1: 3, 4: 2,}#{学员ID: 次数}
for item in enrollmentlist:
d = get_stu_attendance( item.id )#根据06学员报名信息表#学员ID #计算#学员学员出勤次数
dict[item.id]= d # 循环添加 {学员ID: 次数} #排序后的字典 list = sorted(dict.items(),key=lambda x:x[1])#进行排序后的列表#以第2个参数对比 #按出勤次数少到多排序
#list[ (4, 2), (16, 2)] #list[ (学员ID, 次数)] lists=[]#[{1: (19, 3)}, {2: (20, 1)}]#[{排名: (学员ID, 次数)}]
for item in list:
temp={}
temp[list.index( item ) + 1] = item # 循环添加 排名数 #排序后的列表
lists.append(temp)
print('全班出勤',lists)
return render(request,'bpm_coursetop/coursetop_attendance.html',locals())
# ————————67PerfectCRM实现CRM课程出勤排名————————
# coursetop_views.py


 {#coursetop_attendance.html#}
 {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
 {% extends 'bpm_master/bpm_sample.html' %}
 {% load coursetop_tags %}
 {% block right-container-content %} {#自定义内容开始 右边页面内容#}
     <div class="panel-default">
         <div class="panel-default">
             <div class="panel-body">
                 <h4>当前用户: {{ request.user }} | 讲师名字:{{ request.user.stu_account.name }} |
                     讲师QQ:{{ request.user.stu_account }} </h4>
                 <ol class="breadcrumb">
                     <li><a href="{% url 'teacher_class' %}">我的班级</a></li>
                     <li><a href="{% url 'teacher_class_detail' classes_obj.id %}">{{ classes_obj }}</a></li>
                     <li><a href="{% url 'coursetop_attendance' classes_obj.id %}">出勤排名</a></li>
                 </ol>
                 <table class="table table-striped table-responsive">
                     <thead>
                     <tr>
                         <th><a href="{% url 'coursetop_details' classes_obj.id %}">学员ID</a></th>
                         <th><a target="_blank" href="/king_admin/crm/enrollment/?enrolled_class={{ class_id }}">学员姓名</a>
                         </th>
                         <th>学员QQ</th>
                         <th>报名日期</th>
                         <th><a href="{% url 'coursetop_score' classes_obj.id %}">课程成绩</a></th>
                         <th><a href="{% url 'coursetop_score' classes_obj.id %}">班级排名</a></th>
                         <th><a href="{% url 'coursetop_homework' classes_obj.id %}">已交作业</a></th>
                         <th>出勤次数</th>
                         <th>迟到次数</th>
                         <th>缺勤次数</th>
                         <th>早退次数</th>
                     </tr>
                     </thead>
                     <tbody>
                     {% for enroll_objs  in  lists %}
                         {% for top,enroll_obj in enroll_objs.items %}{#分离提取K,V#[{排名: (学员ID, 分数)}]#}
                             {% id_enrollment enroll_obj.0 as enrollment %}{#enroll_obj.0 #学员ID#}{#通过学员ID查06学员报名信息表#}
                             <tr>
                                 <td>{{ enroll_obj.0 }}</td>
                                 {#学员id#}
                                 <td>{{ enrollment.customer.name }}</td>
                                 {#学员姓名#}
                                 <td>{{ enrollment.customer.qq }}</td>
                                 {#学员QQ#}
                                 <td>{{ enrollment.date }}</td>
                                 {#报名日期#}
                                 <td>
                                     {% fetch_stu_course_score class_grade_dic enroll_obj.0 %} {# 获取 学员 课程 分数#}
                                 </td>
                                 <td>
                                     {% get_stu_grade_ranking ranking_dic enroll_obj.0 %} {# 得到 学员 年级 排名#}
                                 </td>
                                 <td>
                                     {% get_already_homework enroll_obj.0 %}{#已交作业#}
                                 </td>
                                 <td style="color: #ff0f00">
                                     {% get_stu_attendance enroll_obj.0 %}{#出勤次数#}
                                 </td>
                                 <td>
                                     {% get_stu_late enroll_obj.0 %}{#迟到次数#}
                                 </td>
                                 <td>
                                     {% get_stu_absenteeism enroll_obj.0 %}{#缺勤次数#}
                                 </td>
                                 <td>
                                     {% get_stu_early enroll_obj.0 %}{#早退次数#}
                                 </td>
                             </tr>
                         {% endfor %}
                     {% endfor %}
                     </tbody>
                 </table>
             </div>
         </div>
     </div>
 {% endblock %}
 {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
{#coursetop_attendance.html#}

 {#coursetop_details.html#}
 {## ————————64PerfectCRM实现CRM课程排名详情————————#}
 {% extends 'bpm_master/bpm_sample.html' %}
 {% load coursetop_tags %} {#计算课程排名#}
 {% block right-container-content %} {#自定义内容开始 右边页面内容#}
     <div class="panel-default">
         <div class="panel-default">
             <div class="panel-body">
                 <h4>当前用户: {{ request.user }} | 讲师名字:{{ request.user.stu_account.name }} |
                     讲师QQ:{{ request.user.stu_account }} </h4>
                 <ol class="breadcrumb">
                     <li><a href="{% url 'teacher_class' %}">我的班级</a></li>
                     <li><a href="{% url 'teacher_class_detail' classes_obj.id %}">{{ classes_obj }}</a></li>
                     <li><a href="{% url 'coursetop_details' classes_obj.id %}">课程排行</a></li>
                 </ol>
                 <table class="table table-striped table-responsive">
                     <thead>
                     <tr>
                         <th>学员ID</th>
                         <th><a target="_blank" href="/king_admin/crm/enrollment/?enrolled_class={{ class_id }}">学员姓名</a>
                         </th>
                         <th>学员QQ</th>
                         <th>报名日期</th>
                         <th>
                             {## ————————65PerfectCRM实现CRM课程分数排名————————#}
                             <a href="{% url 'coursetop_score' classes_obj.id %}">
                                 {## ————————65PerfectCRM实现CRM课程分数排名————————#}
                                 课程成绩
                             </a>
                         </th>
                         <th>
                             {## ————————65PerfectCRM实现CRM课程分数排名————————#}
                             <a href="{% url 'coursetop_score' classes_obj.id %}">
                                 {## ————————65PerfectCRM实现CRM课程分数排名————————#}
                                 班级排名
                             </a>
                         </th>
                         <th>
                             {## ————————66PerfectCRM实现CRM课程作业排名————————#}
                             <a href="{% url 'coursetop_homework' classes_obj.id %}">
                                 {## ————————66PerfectCRM实现CRM课程作业排名————————#}
                                 已交作业
                             </a>
                         </th>
                         <th>
                             {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
                             <a href="{% url 'coursetop_attendance' classes_obj.id %}">
                                 {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
                                 出勤次数
                             </a>
                         </th>
                         <th>迟到次数</th>
                         <th>缺勤次数</th>
                         <th>早退次数</th>
                     </tr>
                     </thead>
                     <tbody>
                     {% for enroll_obj  in  enrollmentlist %}
                         <tr>
                             <td style="color: #ff0f00">{{ enroll_obj.id }}</td>
                             {# 学员id#}
                             <td>{{ enroll_obj.customer.name }}</td>
                             {# 学员姓名#}
                             <td>{{ enroll_obj.customer.qq }}</td>
                             {# 学员QQ#}
                             <td>{{ enroll_obj.date }}</td>
                             {# 报名日期#}
                             <td>
                                 {% fetch_stu_course_score class_grade_dic enroll_obj.id %} {# 得到 学员 课程 分数#}
                             </td>
                             <td>
                                 {% get_stu_grade_ranking ranking_dic enroll_obj.id %} {# 得到 学员 课程 排名#}
                             </td>
                             <td>
                                 {% get_already_homework enroll_obj.id %}{# 已交作业#}
                             </td>
                             <td>
                                 {% get_stu_attendance enroll_obj.id %} {# 得到 学员出勤次数#}
                             </td>
                             <td>
                                 {% get_stu_late enroll_obj.id %} {# 得到 学员出勤次数#}
                             </td>
                             <td>
                                 {% get_stu_absenteeism enroll_obj.id %} {# 得到 学员出勤次数#}
                             </td>
                             <td>
                                 {% get_stu_early enroll_obj.id %} {# 得到 学员早退次数#}
                             </td>
                         </tr>
                     {% endfor %}
                     </tbody>
                 </table>
             </div>
         </div>
     </div>
 {% endblock %}
 {## ————————64PerfectCRM实现CRM课程排名详情————————#}
{#coursetop_details.html#}

 {#coursetop_score.html#}
 {## ————————65PerfectCRM实现CRM课程分数排名————————#}
 {% extends 'bpm_master/bpm_sample.html' %}
 {% load coursetop_tags %}
 {% block right-container-content %} {#自定义内容开始 右边页面内容#}
     <div class="panel-default">
         <div class="panel-default">
             <div class="panel-body">
                 <h4>当前用户: {{ request.user }} | 讲师名字:{{ request.user.stu_account.name }} |
                     讲师QQ:{{ request.user.stu_account }} </h4>
                 <ol class="breadcrumb">
                     <li><a href="{% url 'teacher_class' %}">我的班级</a></li>
                     <li><a href="{% url 'teacher_class_detail' classes_obj.id %}">{{ classes_obj }}</a></li>
                     <li><a href="{% url 'coursetop_score' classes_obj.id %}">分数排名</a></li>
                 </ol>
                 <table class="table table-striped table-responsive">
                     <thead>
                     <tr>
                         <th><a href="{% url 'coursetop_details' classes_obj.id %}">学员ID</a></th>
                         <th><a target="_blank" href="/king_admin/crm/enrollment/?enrolled_class={{ class_id }}">学员姓名</a>
                         </th>
                         <th>学员QQ</th>
                         <th>报名日期</th>
                         <th>课程成绩</th>
                         <th>班级排名</th>
                         <th>
                             {## ————————66PerfectCRM实现CRM课程作业排名————————#}
                             <a href="{% url 'coursetop_homework' classes_obj.id %}">
                                 {## ————————66PerfectCRM实现CRM课程作业排名————————#}
                                 已交作业
                             </a>
                         </th>
                         <th>
                             {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
                             <a href="{% url 'coursetop_attendance' classes_obj.id %}">
                                 {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
                                 出勤次数
                             </a>
                         </th>
                         <th>迟到次数</th>
                         <th>缺勤次数</th>
                         <th>早退次数</th>
                     </tr>
                     </thead>
                     <tbody>
                     {% for enroll_objs  in  lists %}
                         {% for top,enroll_obj in enroll_objs.items %}{#分离提取K,V#[{排名: (学员ID, 分数)}]#}
                             {% id_enrollment enroll_obj.0 as enrollment %}{#enroll_obj.0 #学员ID#}{#通过学员ID查06学员报名信息表#}
                             <tr>
                                 <td>{{ enroll_obj.0 }}</td>
                                 {#学员ID#}
                                 <td>{{ enrollment.customer.name }}</td>
                                 {#学员姓名#}
                                 <td>{{ enrollment.customer.qq }}</td>
                                 {#学员QQ#}
                                 <td>{{ enrollment.date }}</td>
                                 {#报名日期#}
                                 <td style="color: #ff0f00"> {{ enroll_obj.1 }}{#课程成绩#} </td>
                                 <td style="color: #ff0f00">
                                     {{ top }}{#班级排名#}
                                 </td>
                                 <td>{% get_already_homework enroll_obj.0 %}</td>
                                 {#已交作业#}
                                 <td>
                                     {% get_stu_attendance enroll_obj.0 %}{#出勤次数#}
                                 </td>
                                 <td>
                                     {% get_stu_late enroll_obj.0 %}{#迟到次数#}
                                 </td>
                                 <td>
                                     {% get_stu_absenteeism enroll_obj.0 %}{#缺勤次数#}
                                 </td>
                                 <td>
                                     {% get_stu_early enroll_obj.0 %}{#早退次数#}
                                 </td>
                             </tr>
                         {% endfor %}
                     {% endfor %}
                     </tbody>
                 </table>
             </div>
         </div>
     </div>
 {% endblock %}
 {## ————————65PerfectCRM实现CRM课程分数排名————————#}
{#coursetop_score.html#}

 {#coursetop_homework.html#}
 {## ————————66PerfectCRM实现CRM课程作业排名————————#}
 {% extends 'bpm_master/bpm_sample.html' %}
 {% load coursetop_tags %}
 {% block right-container-content %} {#自定义内容开始 右边页面内容#}
     <div class="panel-default">
         <div class="panel-default">
             <div class="panel-body">
                 <h4>当前用户: {{ request.user }} | 讲师名字:{{ request.user.stu_account.name }} |
                     讲师QQ:{{ request.user.stu_account }} </h4>
                 <ol class="breadcrumb">
                     <li><a href="{% url 'teacher_class' %}">我的班级</a></li>
                     <li><a href="{% url 'teacher_class_detail' classes_obj.id %}">{{ classes_obj }}</a></li>
                     <li><a href="{% url 'coursetop_homework' classes_obj.id %}">作业排名</a></li>
                 </ol>
                 <table class="table table-striped table-responsive">
                     <thead>
                     <tr>
                         <th><a href="{% url 'coursetop_details' classes_obj.id %}">学员ID</a></th>
                         <th><a target="_blank" href="/king_admin/crm/enrollment/?enrolled_class={{ class_id }}">学员姓名</a>
                         </th>
                         <th>学员QQ</th>
                         <th>报名日期</th>
                         <th><a href="{% url 'coursetop_score' classes_obj.id %}">课程成绩</a></th>
                         <th><a href="{% url 'coursetop_score' classes_obj.id %}">班级排名</a></th>
                         <th>已交作业</th>
                         <th>
                             {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
                             <a href="{% url 'coursetop_attendance' classes_obj.id %}">
                                 {## ————————67PerfectCRM实现CRM课程出勤排名————————#}
                                 出勤次数
                             </a>
                         </th>
                         <th>迟到次数</th>
                         <th>缺勤次数</th>
                         <th>早退次数</th>
                     </tr>
                     </thead>
                     <tbody>
                     {% for enroll_objs  in  lists %}
                         {% for top,enroll_obj in enroll_objs.items %}{#分离提取K,V#[{排名: (学员ID, 分数)}]#}
                             {% id_enrollment enroll_obj.0 as enrollment %}{#enroll_obj.0 #学员ID#}{#通过学员ID查06学员报名信息表#}
                             <tr>
                                 <td>{{ enroll_obj.0 }}</td>
                                 {#学员id#}
                                 <td>{{ enrollment.customer.name }}</td>
                                 {#学员姓名#}
                                 <td>{{ enrollment.customer.qq }}</td>
                                 {#学员QQ#}
                                 <td>{{ enrollment.date }}</td>
                                 {#报名日期#}
                                 <td>
                                     {% fetch_stu_course_score class_grade_dic enroll_obj.0 %} {# 获取 学员 课程 分数#}
                                 </td>
                                 <td>
                                     {% get_stu_grade_ranking ranking_dic enroll_obj.0 %} {# 得到 学员 年级 排名#}
                                 </td>
                                 <td style="color: #ff0f00">
                                     {% get_already_homework enroll_obj.0 %}{#已交作业#}
                                 </td>
                                 <td>
                                     {% get_stu_attendance enroll_obj.0 %}{#出勤次数#}
                                 </td>
                                 <td>
                                     {% get_stu_late enroll_obj.0 %}{#迟到次数#}
                                 </td>
                                 <td>
                                     {% get_stu_absenteeism enroll_obj.0 %}{#缺勤次数#}
                                 </td>
                                 <td>
                                     {% get_stu_early enroll_obj.0 %}{#早退次数#}
                                 </td>
                             </tr>
                         {% endfor %}
                     {% endfor %}
                     </tbody>
                 </table>
             </div>
         </div>
     </div>
 {% endblock %}
 {## ————————66PerfectCRM实现CRM课程作业排名————————#}
{#coursetop_homework.html#}

# coursetop_tags.py
# ————————64PerfectCRM实现CRM课程排名详情————————
from crm import models
from django import template
register = template.Library() @register.simple_tag
def fetch_stu_course_score(class_grade_dic, enroll_obj_id ): #获取 学员 课程 分数
score=class_grade_dic.get(enroll_obj_id) #根据 id 找对应的分数
# print('#{学员ID:分数} #全班成绩',score)
return score @register.simple_tag
def get_stu_grade_ranking(course_ranking_dic,enroll_obj_id):#得到 学员 班级 排名
score_top = course_ranking_dic.get(enroll_obj_id) #根据id 找对应的排名
if score_top:
# print( '#{学员ID: [分数, 排名] } #全班排名:', score_top[1] )
return score_top[1] @register.simple_tag
def get_already_homework(enroll_obj_id): #获得已交作业
score_list=models.StudyRecord.objects.select_related().filter(student=enroll_obj_id).values_list('score')#根据09学习纪录的ID #获取学习成绩列表
number=0
for score in score_list:
if score!= (0,) :
number += 1
# print('已交作业次数',number)
return number @register.simple_tag
def get_stu_attendance(enroll_obj_id): #获得学员出勤次数
attendance_list=models.StudyRecord.objects.select_related().filter(student=enroll_obj_id).values_list('attendance')
number=0
for attendance in attendance_list:
if attendance == (0,) :
number += 1
# print('获得点名出勤',number)
return number @register.simple_tag
def get_stu_late(enroll_obj_id): #获得学员迟到次数
attendance_list=models.StudyRecord.objects.select_related().filter(student=enroll_obj_id).values_list('attendance')
number=0
for attendance in attendance_list:
if attendance == (1,) :
number += 1
# print('获得点名迟到',number)
return number @register.simple_tag
def get_stu_absenteeism(enroll_obj_id): #获得学员缺勤次数
attendance_list=models.StudyRecord.objects.select_related().filter(student=enroll_obj_id).values_list('attendance')
number=0
for attendance in attendance_list:
if attendance == (2,) :
number += 1
# print('获得点名缺勤',number)
return number @register.simple_tag
def get_stu_early(enroll_obj_id): #获得学员早退次数
attendance_list=models.StudyRecord.objects.select_related().filter(student=enroll_obj_id).values_list('attendance')
number=0
for attendance in attendance_list:
if attendance == (3,) :
number += 1
# print('获得点名早退',number)
return number
# ————————64PerfectCRM实现CRM课程排名详情———————— # ————————65PerfectCRM实现CRM课程分数排名————————
@register.simple_tag
def id_enrollment(enroll_obj):#ID查姓名
enrollment = models.Enrollment.objects.filter(id=enroll_obj).first()#通过学员ID查06学员报名信息表
return enrollment #06学员报名信息表
# ————————65PerfectCRM实现CRM课程分数排名————————
# coursetop_tags.py



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


Django项目:CRM(客户关系管理系统)--77--67PerfectCRM实现CRM课程出勤排名的更多相关文章
- Django CRM客户关系管理系统
		
CRM需求分析 随着信息化时代带来的科技创新,CRM客户关系管理系统带来的效益在已经成为很多企业提高竞争优势的一分部,CRM客户关系管理系统将企业管理和客户关系管理集成到统一的平台,其系统功能主要体现 ...
 - Django项目:CRM(客户关系管理系统)--84--74PerfectCRM实现CRM权限和权限组限制访问URL
		
#models.py # ————————01PerfectCRM基本配置ADMIN———————— from django.db import models # Create your models ...
 - Django项目:CRM(客户关系管理系统)--70--60PerfectCRM实现CRM学生上课记录
		
#urls.py """PerfectCRM URL Configuration The `urlpatterns` list routes URLs to views. ...
 - Django项目:CRM(客户关系管理系统)--80--70PerfectCRM实现CRM业务流程(bpm)课程排行分页
		
# coursetop_views.py # ————————64PerfectCRM实现CRM课程排名详情———————— #————班级学生详情——#计算#{学员ID:分数}——#计算 #{学员I ...
 - Django项目:CRM(客户关系管理系统)--74--64PerfectCRM实现CRM课程排名详情
		
#urls.py """PerfectCRM URL Configuration The `urlpatterns` list routes URLs to views. ...
 - Django项目:CRM(客户关系管理系统)--72--62PerfectCRM实现CRM讲师讲课记录
		
#urls.py """PerfectCRM URL Configuration The `urlpatterns` list routes URLs to views. ...
 - CRM 客户关系管理系统
		
CRM(Customer Relationship Manager)客户关系管理系统 企业为提高核心竞争力,利用相应的信息技术以及互联网技术协调企业与顾客间在销售.营销和服务上的交互,从而提升其管理方 ...
 - CRM客户关系管理系统-需求概设和详设
		
大概设计 大概设计就是对需求进行一个整体性分析,把需要实现的功能都列出来,对于客户关系管理系统,我们需要从角色出发,从而确定有哪些需求,最好是画个思维导图 首先我们是为培训学校这么一个场景来开发的,所 ...
 - CRM客户关系管理系统 北京易信软科信息技术有限公司
		
北京易信软科信息技术有限公司 推出大型erp系统,库存管理系统,客户关系管理系统,车辆登记管理系统,员工管理系统,采购管理系统,销售管理系统,为您的企业提供最优质的产品服务 北京易信软科您可信赖的北京 ...
 
随机推荐
- 【转载】opencl中设备内存
			
地址空间限定符 一般的内核代码中,里面的内核参数或声明变量时,都会有地址空间限定符 地址空间限定符,地址空间限定符的主要作用是指出数据应该保存在哪个地方 地址空间限定符有4个: 全局内存: 限定符:_ ...
 - Visual Studio上开发Python六大功能
			
Visual Studio上开发Python六大功能 一.整合 Python 直译器 (Interpreter) & 互动视窗 (Interactive) Visual Studio 高度整合 ...
 - 华为-eNSP模拟器路由器无法正常启动一直显示“#”
			
问题项如截图: 解决方案: 1. 打开自己电脑的控制面板 -->> 系统和安全 -->> Windows Defender防火墙 (运行应用通过Windows防火墙) 2 .找 ...
 - USACO 2008 November Gold Cheering up the Cows /// MST oj24381
			
题目大意: 输入n,p:n个点,p条路 接下来n行输入c[]:在各个点需要花费的时间 接下来p行输入u,v,w:u点到v点的路需要花费时间w 求经过所有点且最后回到起点的最少花费时间 https:// ...
 - input 不显示输入的历史记录
			
第一次在 input 输入后,下次就会自动显示输入历史记录,去掉这种默认效果的解决方案 <input name="username" type="text" ...
 - FingerPrint Fuzzy Vault Matlab实践
			
本文实践了指纹识别生物特征识别研究论文A Fuzzy Vault Scheme的算法部分.原文请查看以下链接: Juels, A. & Sudan, M. Des Codes Crypt (2 ...
 - LuoguP3338 [ZJOI2014]力
			
题目描述 给出n个数qi,给出Fj的定义如下: \[F_j = \sum_{i<j}\frac{q_i q_j}{(i-j)^2 }-\sum_{i>j}\frac{q_i q_j}{(i ...
 - YXcms前台注入(有限制但可以绕过)
			
这个cms很久前做过代码审计,很多问题,但是经过这么长时间,现在安全性提高了不少,这几天看了下,基本没有什么特别大的问题了(不包含后台). 在yxcms/protected/apps/member/c ...
 - 记mysql 启动不了了的解决方法
			
系统: centos7 本地的环境,mysql启动不了,查看 /var/log/mysqld.log 有以下内容 2018-12-24T08:05:38.090527Z 0 [Warning] TIM ...
 - LoadRunner脚本编写(5)-- 检查点,关联等函数
			
LoadRunner脚本编写(5)-- 检查点,关联等函数 http://www.51testing.com/?34866/action_viewspace_itemid_70224.html来继续翻 ...