Django项目:CRM(客户关系管理系统)--79--69PerfectCRM实现CRM业务流程(bpm)学生讲师分页

 1 # student_views.py
 2 # ————————60PerfectCRM实现CRM学生上课记录————————
 3 from django.shortcuts import render #页面返回
 4 from crm import models #数据库
 5 from  django.contrib.auth.decorators import login_required # 登陆后页面才能访问
 6 
 7 # ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————
 8 from bpm.bpm_auxiliary.pagination import Page #分页
 9 # ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————
10 
11 #学生报名的课程
12 @login_required # 登陆后页面才能访问
13 def student_course(request):
14     enrollmentlist=request.user.stu_account.enrollment_set.all()#根据账号表关联的ID获取06学员报名信息表
15 
16     # ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————
17     page = Page(request.GET.get('p', 1), len(enrollmentlist)) #当前页数 默认为1 #总数量
18     enrollmentlist = enrollmentlist[page.start:page.end]  # 切片取当前页的数据
19     page_str = page.page_str('/bpm/student_course/')  #总页数 传入url
20     # ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————
21 
22     return  render(request, 'bpm_student/student_course.html', locals())
23 
24 #学生上课记录列表
25 @login_required # 登陆后页面才能访问
26 def studyrecords(request,enroll_obj_id):
27     enroll_obj=models.Enrollment.objects.get(id=enroll_obj_id)#根据ID获取06学员报名信息表
28     studyrecordlist=enroll_obj.studyrecord_set.all()#根据06学员报名信息表的ID获取09学习纪录
29 
30     # ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————
31     page = Page(request.GET.get('p', 1), len(studyrecordlist)) #当前页数 默认为1 #总数量
32     studyrecordlist = studyrecordlist[page.start:page.end]  # 切片取当前页的数据
33     page_str = page.page_str('/bpm/studyrecords/%s/'%enroll_obj_id)  #总页数 传入url
34     # ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————
35 
36     return render(request,'bpm_student/studyrecords.html',locals())
37 
38 # ————————60PerfectCRM实现CRM学生上课记录————————
39 
40 # ————————61PerfectCRM实现CRM学生上传作业————————
41 from django.contrib.auth.decorators import login_required #登陆才能访问
42 from PerfectCRM import settings #静态配置文件  #作业上传 # 上传路径
43 import os,json,time #系统操作
44 from django.shortcuts import HttpResponse #页面返回
45 from django.shortcuts import redirect #页面返回
46 #作业详情
47 @login_required#登陆才能访问
48 def homework_detail(request,enroll_obj_id,studyrecord_id):
49     studyrecord_obj=models.StudyRecord.objects.get(id=studyrecord_id)#取学习记录 对象
50     enroll_obj=models.Enrollment.objects.get(id=enroll_obj_id)#取班级对象
51 
52     #               作业根目录    班级ID      上课记录ID               学习记录ID
53     homework_path="{base_dir}/{class_id}/{course_record_id}/{studyercord_id}/".format(
54         base_dir=settings.HOMEWORK_DATA, #静态配置文件
55         class_id=studyrecord_obj.student.enrolled_class_id,#09学习纪录#学生名字#所报班级ID号
56         course_record_id=studyrecord_obj.course_record_id,#09学习纪录#每节课上课纪录表
57         studyercord_id=studyrecord_obj.id##09学习纪录
58     )
59     print('homework_path路径:',studyrecord_obj.student.enrolled_class_id,studyrecord_obj.course_record_id,studyrecord_obj.id)
60 
61     if os.path.exists(homework_path):#判断目录是否存在
62         file_lists = []  # 已经上传的文件列表
63         for file_name in os.listdir( homework_path ):
64             f_path = '%s/%s' % (homework_path, file_name)  # 文件名字
65             modify_time = time.strftime( "%Y-%m-%d %H:%M:%S", time.gmtime( os.stat( f_path ).st_mtime ) )  # 文件上传时间
66             file_lists.append( [file_name, os.stat( f_path ).st_size, modify_time] )  # 添加到文件列表#文件名字#文件大小文件上传时间
67 
68 
69     if request.method=="POST":#上传
70         ret=False
71         data=request.POST.get('data') #ajax
72         if data:#如果有删除动作
73             del_f_path="%s/%s"%(homework_path,data)#文件路径
74             print('删除文件,路径:',del_f_path)
75             os.remove(del_f_path) #删除
76             ret=True
77             return HttpResponse(json.dumps(ret))#ret=False
78         if request.is_ajax():  # ajax上传图片 #异步提交
79             print("POST",request.POST)
80             if not os.path.isdir( homework_path ):  # 没有目录 #isdir返回true,如果路径名是指现有的目录。
81                 os.makedirs( homework_path, exist_ok=True )  # 创建目录  
82             for k,v in request.FILES.items():#上传的文件
83                 with open('%s/%s'%(homework_path,v.name),'wb') as f:#chunk 写入文件
84                     for chunk in v.chunks(): #循环写文件
85                         f.write(chunk)
86             return HttpResponse( json.dumps( {"status": 0, 'mag': "上传完成!", 'file_lists': file_lists} ) )  # 上传文件返回
87 
88     if request.method=="POST":#上传
89         link = request.POST.get( 'link' )  # 让页面POST提交的值,在页面GET后仍然存在显示
90         if link:
91             homework_link=models.StudyRecord.objects.filter( id=studyrecord_id ).update(homework_link=link)
92             return redirect('/bpm/homework_detail/%s/%s/' %(enroll_obj_id,studyrecord_id) )#跳转到enrollment_rejection
93     return render(request,'bpm_student/homework_detail.html',locals())
94 # ————————61PerfectCRM实现CRM学生上传作业————————
# student_views.py

 1 {#student_course.html#}
 2 {## ————————60PerfectCRM实现CRM学生上课记录————————#}
 3 {% extends 'bpm_master/bpm_sample.html' %}
 4 {% load bpm_tags %}
 5 {% block right-container-content %} {#自定义内容开始 右边页面内容#}
 6     <div class="panel-default">
 7         <div class="panel-body">
 8             <h4>当前用户: {{ request.user }} | 学员名字:{{ request.user.stu_account.name }} |
 9                 学员QQ:{{ request.user.stu_account }}</h4>
10             <ol class="breadcrumb">
11                 <li><a href="/bpm/student_course/">我的课程</a></li>
12             </ol>
13             <table class="table table-striped table-responsive">
14                 <thead>
15                 <tr>
16                     <th>校区班级</th>
17                     <th>班级类型</th>
18                     <th>课程进度</th>
19                     <th>课程成绩</th>
20                     <th>开课日期</th>
21                     <th>结业日期</th>
22                 </tr>
23                 </thead>
24 
25 
26                 <tbody>
27                 {% for enroll_obj in enrollmentlist %}
28                     <tr>
29                         <td>{{ enroll_obj.enrolled_class }}</td>
30                         {#校区班级#}
31                         <td>{{ enroll_obj.enrolled_class.get_class_type_display }}</td>
32                         {#班级类型#}
33                         <td>
34                             <a href="{% url 'studyrecords' enroll_obj.id %}">已上: {{ enroll_obj.enrolled_class.courserecord_set.all.count }}节</a>
35                         </td>
36                         {#课程进度#}
37                         <td>
38                             {% get_score enroll_obj request.user.stu_account as score_data %}{{ score_data.score__sum }}</td>
39                         {#课程成绩#}
40                         <td>{{ enroll_obj.enrolled_class.start_date }}</td>
41                         {#开课日期#}
42                         <td>{{ enroll_obj.enrolled_class.end_date }}</td>
43                         {#结业日期#}
44                     </tr>
45                 {% endfor %}
46                 </tbody>
47             </table>
48 
49             {## ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————#}
50             {% include 'bpm_components/page_str.html' %}
51             {## ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————#}
52 
53         </div>
54     </div>
55 {% endblock %}
56 {## ————————60PerfectCRM实现CRM学生上课记录————————#}
{#student_course.html#}

 1 {#studyrecords.html#}
 2 {## ————————60PerfectCRM实现CRM学生上课记录————————#}
 3 {% extends 'bpm_master/bpm_sample.html' %}
 4 {% load bpm_tags %}
 5 {% block right-container-content %} {#自定义内容开始 右边页面内容#}
 6     <div class="panel-default">
 7         <div class="panel-body">
 8             <h4>当前用户: {{ request.user }} | 学员名字:{{ request.user.stu_account.name }} |
 9                 学员QQ:{{ request.user.stu_account }}</h4>
10             <ol class="breadcrumb">
11                 <li><a href="/bpm/student_course/">我的课程</a></li>
12                 <li><a href="/bpm/studyrecords/{{ enroll_obj.id }}/">{{ enroll_obj.enrolled_class }}</a></li>
13             </ol>
14 
15             <table class="table table-striped table-responsive ">
16                 <thead>
17                 <tr>
18                     <th>课程节次</th>
19                     <th>签到状态</th>
20                     <th>本节作业</th>
21                     <th>本节成绩</th>
22                     <th>本节讲师</th>
23                     <th>上课日期</th>
24                     <th>本节大纲</th>
25                     <th>作业标题</th>
26                     <th>作业要求</th>
27                 </tr>
28                 </thead>
29 
30 
31                 <tbody>
32                 {% for studyrecord in studyrecordlist %}
33                     <tr>
34                         <td>{{ studyrecord.course_record.day_num }}</td>
35                         {#课程节次#}
36                         <td>{{ studyrecord.get_attendance_display }}</td>
37                         {#签到状态#}
38                         <td>
39                             <a href="{% url 'homework_detail' enroll_obj.id studyrecord.id %}">
40                                 {{ studyrecord.course_record.has_homework }}
41                             </a>
42                         </td>
43                         {#本节作业#}
44                         <td>{{ studyrecord.get_score_display }}</td>
45                         {#本节成绩#}
46                         <td>{{ studyrecord.course_record.teacher }}</td>
47                         {#本节讲师#}
48                         <td>{{ studyrecord.course_record.date }}</td>
49                         {#上课日期#}
50                         <td>
51                             <pre style="width: 240px;height: 60px">{{ studyrecord.course_record.outline }}</pre>
52                             {#本节大纲#}
53                         </td>
54                         <td>
55                             <pre style="width: 240px;height: 60px">{{ studyrecord.course_record.homework_title }}</pre>
56                             {#作业标题#}
57                         </td>
58                         <td>
59                             <pre style="width: 240px;height: 60px">{{ studyrecord.course_record.homework_content }}</pre>
60                             {#作业要求#}
61                         </td>
62                     </tr>
63                 {% endfor %}
64                 </tbody>
65             </table>
66 
67             {## ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————#}
68             {% include 'bpm_components/page_str.html' %}
69             {## ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————#}
70 
71         </div>
72     </div>
73 {% endblock %}
74 {## ————————60PerfectCRM实现CRM学生上课记录————————#}
{#studyrecords.html#}

猜你喜欢

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