做网站开发用哪门语言,湖南做网站seo,小程序源码能直接用吗,wordpress手机端显示分类接着上期代码内容#xff0c;继续完善优化系统功能。
本次增加任务完成率统计功能#xff0c;为更好的了解哪些任务完成率高#xff0c;哪些任务完成率低。
该功能完成后#xff0c;学习任务系统1.0版本就基本完成了。 1#xff0c;编辑urls配置文件#xff1a; ./mysi…接着上期代码内容继续完善优化系统功能。
本次增加任务完成率统计功能为更好的了解哪些任务完成率高哪些任务完成率低。
该功能完成后学习任务系统1.0版本就基本完成了。 1编辑urls配置文件 ./mysite/study_system/urls.py
path(task/getClassTaskList/, views.getClassTaskList, namegetClassTaskList),
2编辑视图文件 ./mysite/study_system/views.py
def getClassTaskList(request):方法名称: 获取任务完成率统计作 者: PandaCode辉weixin公众号: PandaCode辉创建时间: 2023-10-10# 响应容器rsp_dict {}# 获取当前用户名username request.session.get(username)# 根据用户名获取用户对象cur_user StudyUser.objects.get(usernameusername)print(根据用户名查询用户对象: str(cur_user))user_list [cur_user]# 如果当前用户是3-学生则查找对应辅导员用户if cur_user.role 3:parent_id cur_user.parent_id# 根据用户ID获取用户对象parent_user StudyUser.objects.get(user_idparent_id)print(根据用户ID获取用户对象: str(parent_user))user_list [cur_user, parent_user]# 限制发布人系统和辅导员data_set StudyTask.objects.filter(created_by__inuser_list)# 得到所有 任务名称和状态 的查询集合 QuerySetdata_list data_set.values(task_title).annotate(all_cntCount(task_title)).order_by(-all_cnt)data_set_list data_set.values(task_title, task_status).annotate(cntCount(task_title))# 循环处理分类统计数据for data in data_list:task_title data[task_title]data[un_finish] 0data[finish] 0data[delete] 0for data_set in data_set_list:if task_title data_set[task_title]:# 待完成数量if data_set[task_status] 0:data[un_finish] data_set[cnt]elif data_set[task_status] 1:# 已完成数量data[finish] data_set[cnt]else:# 已作废数量data[delete] data_set[cnt]# 循环处理分类统计数据for data in data_list:all_cnt data[all_cnt]finish data[finish]# 计算完成率保留2位小数并转成百分比格式data[finish_rate] str(format(float(finish) / float(all_cnt) * 100, .2f)) %# 查询返回任务列表rsp_dict[data_list] data_listcontext_object_name class_task_listtemplate_name study_system/home.html# html_file: xxx.html 动态指定模板页面 ; menuTo: task 任务管理 rsp_dict[html_file] study_system/task/classTaskList.htmlrsp_dict[menuTask] menuTaskrsp_dict[context_object_name] context_object_namereturn render(request, template_name, rsp_dict)
3编辑页面模板代码
3.1. 任务完成率统计页面 ./mysite/study_system/templates/study_system/task/classTaskList.html
style typetext/csstable tr td {font-size: 1.5em;}
/style
!-- 结果显示区 --
div aligncentertable stylewidth: 100%;trtd colspan6 aligncenter任务完成率统计/td/trtr stylefont-weight: bold; background: #FFEC8B;text-align: centertd序号/tdtd任务标题/tdtd任务发布总次数/tdtd待完成任务数/tdtd已完成任务数/tdtd任务完成率/td/tr{% if data_list %}{% for data in data_list %}tr stylecolor: red;text-align: center{# forloop.counter 可以记录循环的次数作为列表序号#}td{{ forloop.counter }}/tdtd{{ data.task_title }}/tdtd{{ data.all_cnt }}/tdtd{{ data.un_finish }}/tdtd{{ data.finish }}/tdtd{{ data.finish_rate }}/td/tr{% endfor %}{% else %}trtd colspan6 idcon_title查无记录/td/tr{% endif %}/table
/div
4运行测试-任务完成率统计 -------------------------------------------------end -------------------------------------------------