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

      1 # teacher_views.py
      2 # ————————62PerfectCRM实现CRM讲师讲课记录————————
      3 from django.contrib.auth.decorators import login_required  # 登陆后页面才能访问
      4 from django.shortcuts import render  #页面返回
      5 
      6 # ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————
      7 from bpm.bpm_auxiliary.pagination import Page #分页
      8 # ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————
      9 
     10 # 讲师班级
     11 @login_required  # 登陆后页面才能访问
     12 def teacher_class(request):
     13     # user_id=request.user.id #当前登陆的ID
     14     # classlist=models.UserProfile.objects.get(id=user_id).classlist_set.all()#讲师所教班级
     15     classes_obj = request.user.classlist_set.all()  # 根据 登陆的ID 获取02班级表
     16 
     17     # ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————
     18     page = Page(request.GET.get('p', 1), len(classes_obj)) #当前页数 默认为1 #总数量
     19     classes_obj = classes_obj[page.start:page.end]  # 切片取当前页的数据
     20     page_str = page.page_str('/bpm/teacher_class/')  #总页数 传入url
     21     # ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————
     22 
     23     return render( request, 'bpm_teacher/teacher_class.html', locals() )
     24 
     25 # 讲师班级课节详情
     26 @login_required  # 登陆后页面才能访问
     27 def teacher_class_detail(request, class_id):
     28     # user_id=request.user.id #当前登陆的ID
     29     # classes_obj=models.UserProfile.objects.get(id=user_id).classlist_set.get(id=class_id)#所选的班级
     30     classes_obj = request.user.classlist_set.get( id=class_id )  # 根据 登陆的ID 获取02班级表
     31     courserecordlist = classes_obj.courserecord_set.all()  # 根据 02班级表的ID 获取09学习纪录
     32 
     33     # ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————
     34     page = Page( request.GET.get( 'p', 1 ), len( courserecordlist ) )  # 当前页数 默认为1 #总数量
     35     courserecordlist = courserecordlist[page.start:page.end]  # 切片取当前页的数据
     36     page_str = page.page_str('/bpm/teacher_class_detail/%s/'%class_id) #总页数 传入url
     37     # ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————
     38 
     39     return render( request, 'bpm_teacher/teacher_classes_detail.html', locals() )
     40 # ————————62PerfectCRM实现CRM讲师讲课记录————————
     41 
     42 # ————————63PerfectCRM实现CRM讲师下载作业————————
     43 from PerfectCRM import settings  # 系统配置
     44 import os  # 系统操作
     45 # 本节课的学员
     46 @login_required  # 登陆后页面才能访问
     47 def teacher_lesson_detail(request, class_id, courserecord_id):
     48     # classes_obj=models.UserProfile.objects.get(id=request.user.id).classlist_set.get(id=class_id)#所选的班级
     49     classes_obj = request.user.classlist_set.get( id=class_id ) # 根据 登陆的ID 获取02班级表
     50     courserecordlist = classes_obj.courserecord_set.get( id=courserecord_id )  # 根据 前端的ID 获取08每节课上课纪录表
     51 
     52     # studyrecord_list=models.CourseRecord.objects.get(id=courserecord_id).studyrecord_set.all()#取本节课所有学员
     53     studyrecord_list = courserecordlist.studyrecord_set.all()  # 根据08每节课上课纪录表 #获取09学习纪录 #取本节课所有学员
     54 
     55     for i in studyrecord_list:  # 循环本节课所有学员 交作业的状态
     56         studyrecord_id = i.id  # 获取本节课所有学员的ID
     57         if studyrecord_id:  # 有获取到ID
     58             HOMEWORK_path = '%s/%s/%s/%s/' % (settings.HOMEWORK_DATA, class_id, courserecord_id, studyrecord_id)  # 作业目录
     59             if os.path.exists( HOMEWORK_path ):  # 判断目录是否存在
     60                 try:#防止后台误删文件
     61                     file_list = os.listdir( HOMEWORK_path )  # 取目录 下的文件
     62                     isfile = os.path.isfile( '%s%s' % (HOMEWORK_path, file_list[0]) )  # 判断是不是文件
     63                     studyrecord_list.filter( id=studyrecord_id ).update( delivery=isfile )  # 更新交付作业状态
     64                 except:
     65                     studyrecord_list.filter( id=studyrecord_id ).update( delivery=False )  # file_list 出错# 更新交付作业状态
     66             else:
     67                 studyrecord_list.filter( id=studyrecord_id ).update( delivery=False )# 更新交付作业状态
     68 
     69     # ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————
     70     page = Page( request.GET.get( 'p', 1 ), len( studyrecord_list ) )  # 当前页数 默认为1 #总数量
     71     studyrecord_list = studyrecord_list[page.start:page.end]  # 切片取当前页的数据
     72     page_str = page.page_str('/bpm/teacher_lesson_detail/%s/%s/'%(class_id,courserecord_id)) # 总页数 传入url
     73     # ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————
     74 
     75     return render( request, 'bpm_teacher/teacher_lesson_detail.html', locals() )
     76 
     77 from django.http import StreamingHttpResponse #页面返回
     78 from crm import models #数据库
     79 from django.shortcuts import redirect #页面返回
     80 # 学员作业下载
     81 @login_required  # 登陆后页面才能访问
     82 def howk_down(request, class_id, courserecord_id, studyrecord_id):
     83     HOMEWORK_path = '%s/%s/%s/%s/' % (settings.HOMEWORK_DATA, class_id, courserecord_id, studyrecord_id)  # 作业目录
     84     print( '下载作业目录:', HOMEWORK_path )
     85 
     86     def file_iterator(file_path, chunk_size=512):  # 获取文件 #chunk_size每次读取的大小 #文件迭代器
     87         with open( file_path, 'rb', ) as f:  # 循环打开 文件#以二进制读模式打开
     88             while True:  # 如果有文件
     89                 byte = f.read( chunk_size )  # read读最多大小字节,作为字节返回。#获取文件大小
     90                 if byte:
     91                     yield byte  # 返回 yield 后的值作为第一次迭代的返回值. 循环下一次,再返回,直到没有可以返回的。
     92                 else:
     93                     break  # 没有字节就中止
     94 
     95     if os.path.exists( HOMEWORK_path ):  # 判断目录是否存在
     96         try:#防止后台误删文件
     97             file_list = os.listdir( HOMEWORK_path )  # 取目录 下的文件
     98             print( '文件名:', file_list, type( file_list ) )
     99             file_path = '%s%s' % (HOMEWORK_path, file_list[0])  # 下载文件路径
    100             print( '下载文件路径:', file_path )
    101             response = StreamingHttpResponse( file_iterator( file_path ) )  # StreamingHttpResponse是将文件内容进行流式传输
    102             response['Content-Type'] = 'application/octet-stream'  # 文件类型 #应用程序/octet-stream.*( 二进制流,不知道下载文件类型)
    103             file_name = 'attachment;filename=%s' % file_list[0]  # 文件名字# 支持中文
    104             response['Content-Disposition'] = file_name.encode()  # 支持中文#编码默认encoding='utf-8'
    105             return response  # 返回下载 请求的内容
    106         except:
    107             models.StudyRecord.objects.get( id=studyrecord_id ).update( delivery=False )  # 更新交付作业状态 # file_list 出错
    108     return redirect( '/bpm/teacher_lesson_detail/%s/%s/' % (class_id, courserecord_id) )  # 返回##本节课的学员
    109 # ————————63PerfectCRM实现CRM讲师下载作业————————
    # teacher_views.py

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

     1 {#teacher_classes_detail.html#}
     2 {## ————————62PerfectCRM实现CRM讲师讲课记录————————#}
     3 {% extends 'bpm_master/bpm_sample.html' %}
     4 {% block right-container-content %} {#自定义内容开始 右边页面内容#}
     5     <div class="panel-default">
     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/teacher_class/">我的班级</a></li>
    12                     <li><a href="{% url 'teacher_class_detail' classes_obj.id %}">{{ classes_obj }}</a></li>
    13                 </ol>
    14                 <table class="table table-striped table-responsive ">
    15                     <thead>
    16                     <tr>
    17                         <th><a target="_blank" href="/king_admin/crm/courserecord/add/">课程节次</a></th>
    18                         <th>签到状态</th>
    19                         <th>本节作业</th>
    20                         <th>上课日期</th>
    21                         <th>本节大纲</th>
    22                         <th>作业标题</th>
    23                         <th>作业要求</th>
    24                     </tr>
    25                     </thead>
    26 
    27 
    28                     <tbody>
    29                     {% for courserecord in courserecordlist %}
    30                         <tr>
    31                             <td><a target="_blank"
    32                                    href="/king_admin/crm/courserecord/{{ courserecord.id }}/change/">第 {{ courserecord.day_num }}节</a>
    33                             </td>
    34                             {#课程节次#}
    35                             <td>
    36                                 <a target="_blank"
    37                                    href="/king_admin/crm/studyrecord/?course_record={{ courserecord.id }} ">点名/成绩</a>
    38                             </td>
    39                             {#签到状态#}
    40                             <td>
    41                                 {## ————————63PerfectCRM实现CRM讲师下载作业————————#}
    42                                 <a href="{% url 'teacher_lesson_detail' class_id courserecord.id %}">
    43                                     {## ————————63PerfectCRM实现CRM讲师下载作业————————#}
    44                                     {{ courserecord.has_homework }}
    45                                 </a>
    46                             </td>
    47                             {#本节作业#}
    48                             <td> {{ courserecord.date }}</td>
    49                             {#上课日期#}
    50                             <td>
    51                                 <pre style=" 240px;height: 60px">{{ courserecord.outline }} </pre>
    52                             </td>
    53                             {#本节大纲#}
    54                             <td>
    55                                 <pre style=" 240px;height: 60px">{{ courserecord.homework_title }}</pre>
    56                             </td>
    57                             {#作业标题#}
    58                             <td>
    59                                 <pre style=" 240px;height: 60px">{{ courserecord.homework_content }} </pre>
    60                             </td>
    61                             {#作业要求#}
    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     </div>
    74 {% endblock %}
    75 {## ————————62PerfectCRM实现CRM讲师讲课记录————————#}
    {#teacher_classes_detail.html#}

      1 {#teacher_lesson_detail.html#}
      2 {## ————————63PerfectCRM实现CRM讲师下载作业————————#}
      3 {% extends 'bpm_master/bpm_sample.html' %}
      4 {% block right-container-content %} {#自定义内容开始 右边页面内容#}
      5     <div class="panel-default">
      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/teacher_class/">我的班级</a></li>
     12                     <li><a href="{% url 'teacher_class_detail' classes_obj.id %}">{{ classes_obj }}</a></li>
     13                     <li>
     14                         <a href="{% url 'teacher_lesson_detail' classes_obj.id  courserecordlist.id %}">第{{ courserecordlist.day_num }}节</a>
     15                     </li>
     16                 </ol>
     17                 <li>
     18                     <a target="_blank"
     19                        href="/king_admin/crm/courserecord/{{ courserecordlist.id }}/change/">作业标题:</a>
     20                     <pre>{{ courserecordlist.homework_title }}</pre>
     21                 </li>
     22                 <li>
     23                     <a target="_blank"
     24                        href="/king_admin/crm/courserecord/{{ courserecordlist.id }}/change/">作业要求:</a>
     25                     <pre>{{ courserecordlist.homework_content }}</pre>
     26                 </li>
     27 
     28 
     29                 <table class="table table-striped table-responsive">
     30                     <thead>
     31                     <tr>
     32                         <th>学员ID</th>
     33                         <th>学员姓名</th>
     34                         <th>
     35                             <a target="_blank" href="/king_admin/crm/studyrecord/?course_record={{ courserecord_id }} ">签到状态</a>
     36                         </th>
     37                         <th> 作业链接</th>
     38                         <th>
     39                             {% if courserecordlist.has_homework %}
     40                                 <a href="{% url 'teacher_lesson_detail' classes_obj.id  courserecordlist.id %}">学员作业(多刷) </a>
     41                             {% else %}
     42                                 <a style="color: #ff1900" target="_blank"
     43                                    href="/king_admin/crm/courserecord/{{ courserecordlist.id }}/change/">创建新作业</a>
     44                             {% endif %}
     45                         </th>
     46                         <th>
     47                             {% if courserecordlist.has_homework %}
     48                                 <a href="{% url 'teacher_lesson_detail' classes_obj.id  courserecordlist.id %}">批改作业 </a>
     49                             {% else %}
     50                                 没有作业
     51                             {% endif %}
     52                         </th>
     53                     </tr>
     54                     </thead>
     55 
     56 
     57                     <tbody>
     58                     {% for studyrecrd in studyrecord_list %}
     59                         <tr>
     60                             <td>{{ studyrecrd.student.id }}</td>
     61                             {#学员ID#}
     62                             <td>{{ studyrecrd.student.customer.name }}</td>
     63                             {#学员姓名#}
     64                             <td>{{ studyrecrd.get_attendance_display }}</td>
     65                             {#签到状态#}
     66                             <td>
     67                                 <pre style=" 240px;height: 60px">{{ studyrecrd.homework_link }}</pre>
     68                             </td>
     69                             {#作业链接#}
     70                             <td>
     71                                 {% if studyrecrd.delivery %}
     72                                     <a href="{% url 'howk_down'  classes_obj.id studyrecrd.course_record_id studyrecrd.id %}">下载作业</a>
     73                                 {% endif %}{#学员作业#}
     74                             </td>
     75                             <td>
     76                                 {% if studyrecrd.course_record.has_homework %}
     77                                     {% if studyrecrd.score == 0 %}
     78                                         <a target="_blank"
     79                                            href="/king_admin/crm/studyrecord/{{ studyrecrd.id }}/change/"
     80                                            style="color: #ff1600">未批改</a>
     81                                     {% else %}
     82                                         <a target="_blank"
     83                                            href="/king_admin/crm/studyrecord/{{ studyrecrd.id }}/change/"
     84                                            style="color: #0014ff">{{ studyrecrd.get_score_display }}</a>
     85                                     {% endif %}
     86                                 {% endif %}{#批改作业#}
     87                             </td>
     88                         </tr>
     89                     {% endfor %}
     90                     </tbody>
     91                 </table>
     92 
     93                 {## ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————#}
     94                 {% include 'bpm_components/page_str.html' %}
     95                 {## ————————69PerfectCRM实现CRM业务流程(bpm)学生讲师分页————————#}
     96 
     97             </div>
     98         </div>
     99     </div>
    100 {% endblock %}
    101 {## ————————63PerfectCRM实现CRM讲师下载作业————————#}
    {#teacher_lesson_detail.html#}

  • 相关阅读:
    splice方法以及如何实现数组去重
    数组的几个重要方法以及如何清空数组
    for-in遍历
    浅谈json和数组的区别
    js实现查找替换关键字的效果
    js实现查找关键字效果
    原生js中大小写转化以及split分割字符串方法
    eclipse没有Web项目和Server选项
    【学习】005 线程池原理分析&锁的深度化
    什么是CPU密集型、IO密集型?
  • 原文地址:https://www.cnblogs.com/ujq3/p/9036363.html
Copyright © 2020-2023  润新知