def updateExperimentTemplate(request): teacherid = utils.getCookie(request, "teacherid") if (teacherid is None) or teacherid == "": responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) experimentid = utils.getParam(request, "experimentid") file = request.FILES.get('file', None) if file is None: return HttpResponse( "<script>if(confirm('上传的文件为空')){history.go(-1);location.reload()}else{history.go(-1);location.reload()}</script>" ) filename = file.name filesuffix = os.path.splitext(filename)[1] if filesuffix != ".doc" and filesuffix != ".docx": return HttpResponse( "<script>if(confirm('模板必须为word格式')){history.go(-1);location.reload()}else{history.go(-1);location.reload()}</script>" ) filename = str(uuid.uuid1()) + filesuffix fp = open(os.path.join(CONSTANTS.TEMPLATEURL_PRE, filename), 'wb+') for chunk in file.chunks(): # 分块写入文件 fp.write(chunk) fp.close() templateid = TemplateService.addTemplate(experimentid, filename) ExperimentService.updateExperimentTamplate(experimentid, templateid) return HttpResponse( "<script>if(confirm('上传成功')){history.go(-1);location.reload()}else{history.go(-1);location.reload()}</script>" )
def v_completedexp(request): stuid = utils.getCookie(request, "stuid") if (stuid is None) or stuid == "": return getloginResponse(request) stuname = utils.getCookie(request, "stuname") page = utils.getParam(request, "page") if (page is None) or page == "": page = 1 else: page = int(page) count = TeachingService.getCountPageByStu(stuid, CONSTANTS.TEACHING_IS_STOP) countpage = 0 i = 0 if count > 0: if count % 10 > 0: i = 1 countpage = count / 10 + i teachingRunList = TeachingService.getTeachingByStu(stuid, CONSTANTS.TEACHING_IS_STOP, page) experimentList = ExperimentService.getAllExperiment() # 获取用于菜单的实验列表 experimentMenuList = [] for experiment in experimentList: experimentTemp = experiment.copy() experimentName = experimentTemp["name"] if len(experimentName) > 8: experimentName = experimentName[0:10] + "..." experimentTemp["name"] = experimentName experimentMenuList.append(experimentTemp) teachingCount = getTeachingCount(stuid) return render(request, "completedexp.html", {"teachingList": teachingRunList, "countpage": countpage, "experimentMenuList": experimentMenuList, "experimentList": experimentList, "teachingCount": teachingCount, "stuname": stuname})
def getTeachingByTea(teaid, type, index): teachingsearch = Teaching.objects.filter(teacherid=teaid, status=type, isdelete=CONSTANTS.ISDELETE_NOT) try: teachinglist = teachingsearch.all() except: return None else: paginator = Paginator(teachinglist, 10) teachingPageList = paginator.page(index) teachingDictPageList = [] for teaching in teachingPageList: teachingDict = { "id": teaching.id, "experimentid": teaching.experimentid, "deadline": teaching.deadline, "teacherid": teaching.teacherid, "point": teaching.point, "remark": teaching.remark, "dataurl": teaching.dataurl, "stulisturl": teaching.stulisturl, "templateid": teaching.templateid, "videos": teaching.videos, "status": teaching.status, "isdelete": teaching.isdelete, "createtime": teaching.createtime, "updatetime": teaching.updatetime } experiment = ExperimentService.getExperimentById(teaching.experimentid) teachingDict["f_experiment_name"] = experiment.name teachingDict["f_experiment_desc"] = experiment.desc teachingDict["f_experiment_url"] = experiment.url teacher = TeacherService.getTeacherById(teaching.teacherid) teachingDict["f_teacher_name"] = teacher.name teachingDict["f_teacher_id"] = teacher.id videoids = teaching.videos.split(",") videos = [] for id in videoids: video = VideoService.getVideoById(id) video.url = "/getVideoById/?videourl=" + video.url videoobj = { "id": video.id, "url": video.url, "name": video.name } videos.append(videoobj) teachingDict["videos"] = json.dumps(videos) stuCount = ReportService.getCountStuByTeachingid(teaching.id) teachingDict["stuCount"] = stuCount complapprepcount = ReportService.getCountStuByTeachingidAndStatus(teaching.id, CONSTANTS.REPORT_STATUS_SCORE) submitcount = ReportService.getCountStuByTeachingidAndStatus(teaching.id, CONSTANTS.REPORT_STATUS_SUBMIT) teachingDict["complapprepcount"] = complapprepcount if complapprepcount == stuCount: teachingDict["f_report_status"] = 2 else: teachingDict["f_report_status"] = 1 teachingDictPageList.append(teachingDict) return teachingDictPageList
def setdescription(request): # 接收基础参数 if request.method == 'POST': des_content = request.POST.get('des_content') des_id = float(request.POST.get('des_id')) status = ExperimentService.updateExperimentdescription( des_id, des_content) if status is True: return HttpResponse(True) else: return HttpResponse(False)
def v_allexperiment(request): stuid = utils.getCookie(request, "stuid") if (stuid is None) or stuid == "": return getloginResponse(request) stuname = utils.getCookie(request, "stuname") teachingCount = getTeachingCount(stuid) experimentList = ExperimentService.getAllExperiment() # 获取用于菜单的实验列表 experimentMenuList = [] for experiment in experimentList: experimentTemp = experiment.copy() experimentName = experimentTemp["name"] if len(experimentName) > 8: experimentName = experimentName[0:10] + "..." experimentTemp["name"] = experimentName experimentMenuList.append(experimentTemp) return render(request, "allexp.html", {"experimentList": experimentList, "experimentMenuList": experimentMenuList, "teachingCount": teachingCount, "stuname": stuname})
def updateExperimentVideo(request): teacherid = utils.getCookie(request, "teacherid") if (teacherid is None) or teacherid == "": responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) experimentid = utils.getParam(request, "experimentid") videos = utils.getParam(request, "videos") if (experimentid is None) or experimentid == "": responseReturn = Response(-1, "请重新选择实验!") return HttpResponse(responseReturn.__str__()) if (videos is None) or videos == "": responseReturn = Response(-1, "修改视频异常!") return HttpResponse(responseReturn.__str__()) experiment = ExperimentService.updateExperimentVideos( experimentid, videos) if experiment is None: responseReturn = Response(-1, "网络异常,请重试!") return HttpResponse(responseReturn.__str__()) responseReturn = Response(0, "修改成功!") return HttpResponse(responseReturn.__str__())
def v_addexp(request): teacherid = utils.getCookie(request, "teacherid") if (teacherid is None) or teacherid == "": return getloginResponse(request) teachername = utils.getCookie(request, "teachername") teachingCount = getTeachingCount(teacherid) experimentList = ExperimentService.getAllExperiment() # 获取用于菜单的实验列表 experimentMenuList = [] for experiment in experimentList: experimentTemp = experiment.copy() experimentName = experimentTemp["name"] if len(experimentName) > 8: experimentName = experimentName[0:10] + "..." experimentTemp["name"] = experimentName experimentMenuList.append(experimentTemp) filterInfoList = FilterInfoService.getFilterInfoList(None) filterInfoDictList = [] for filterinfo in filterInfoList: dict = model_to_dict(filterinfo) del dict["isdelete"] del dict["createtime"] del dict["updatetime"] filterInfoDictList.append(dict) filterInfoListstr = json.dumps(filterInfoDictList, ensure_ascii=False) response = render( request, "addexp.html", { "teachingCount": teachingCount, "experimentList": experimentList, "experimentMenuList": experimentMenuList, "teachername": teachername, "filterInfoListstr": filterInfoListstr }) return response
def addexperiment(request): teacherid = utils.getCookie(request, "teacherid") if (teacherid is None) or teacherid == "": responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) experimentid = utils.getParam(request, "experimentid") deadlinestr = utils.getParam(request, "deadline") + " 00:00:00" templatetype = utils.getParam(request, "templatetype") videotype = utils.getParam(request, "videotype") datatype = utils.getParam(request, "datatype") videoids = utils.getParam(request, "videos") point = utils.getParam(request, "point") remark = utils.getParam(request, "remark") studentids = utils.getParam(request, "studentids") ''' 获得实验详情 ''' experiment = ExperimentService.getExperimentById(experimentid) if experiment is None: responseReturn = Response(-1, "选择实验异常!") return HttpResponse(responseReturn.__str__()) try: deadline = datetime.datetime.strptime(deadlinestr, "%Y-%m-%d %H:%M:%S") except: responseReturn = Response(-1, "请选择报告提交截止日期!") return HttpResponse(responseReturn.__str__()) ''' 获得模板 ''' if templatetype == "1": templateid = experiment.templateid else: # 文件上传 templatefile = request.FILES.get('templatefile', None) if templatefile is None: responseReturn = Response(-1, "请选择你要上传的模板文件!") return HttpResponse(responseReturn.__str__()) filename = templatefile.name filesuffix = os.path.splitext(filename)[1] if filesuffix != ".doc" and filesuffix != ".docx": responseReturn = Response(-1, "模板必须为word格式!") return HttpResponse(responseReturn.__str__()) filename = str(uuid.uuid1()) + filesuffix fp = open(os.path.join(CONSTANTS.DATAURL_PRE, filename), 'wb+') for chunk in templatefile.chunks(): # 分块写入文件 fp.write(chunk) fp.close() templateid = TemplateService.addTemplate(experimentid, filename) ''' 获得视频 ''' if videotype == "1": videos = experiment.videos else: videos = videoids ''' 获得实验数据 ''' if datatype == "1": # 稍后上传 dataurl = "none" else: # 上传实验数据 datafile = request.FILES.get('datafile', None) if datafile is None: responseReturn = Response(-1, "请选择你要上传的实验数据!") return HttpResponse(responseReturn.__str__()) filename = datafile.name filesuffix = os.path.splitext(filename)[1] if filesuffix != ".xsl" and filesuffix != ".xlsx": responseReturn = Response(-1, "实验数据必须为excel!") return HttpResponse(responseReturn.__str__()) filename = str(uuid.uuid1()) + filesuffix fp = open(os.path.join(CONSTANTS.DATAURL_PRE, filename), 'wb+') for chunk in datafile.chunks(): # 分块写入文件 fp.write(chunk) fp.close() dataurl = filename ''' 获得学生名单 ''' studentidList = studentids.split(",") # 添加 teachingid = TeachingService.addTeaching(int(experimentid), deadline, teacherid, point, remark, dataurl, "", templateid, videos) if teachingid is None: responseReturn = Response(-1, "添加失败,请重试") return HttpResponse(responseReturn.__str__()) for id in studentidList: studentobj = None studentobj = StudentService.getStudentById(id) if studentobj is None: TeachingService.deleteTeachingByid(teachingid) responseReturn = Response(-1, "选择学生异常,请重试!") return HttpResponse(responseReturn.__str__()) ReportService.addReport(teachingid, studentobj.id) responseReturn = Response(0, "添加成功!") return HttpResponse(responseReturn.__str__())
def getTeachingByStu(stuid, type, index): reportList = ReportService.getReportByStuId(stuid) teachingIds = [] for i in range(len(reportList)): if i >= len(reportList): break teachingIds.append(reportList[i].teachingid) try: teachinglist = Teaching.objects.filter(id__in=teachingIds, status=type, isdelete=CONSTANTS.ISDELETE_NOT).all() except: return None else: teachingDictList = [] for teaching in teachinglist: teachingDict = { "id": teaching.id, "experimentid": teaching.experimentid, "deadline": teaching.deadline, "teacherid": teaching.teacherid, "point": teaching.point, "remark": teaching.remark, "dataurl": teaching.dataurl, "stulisturl": teaching.stulisturl, "templateid": teaching.templateid, "videos": teaching.videos, "status": teaching.status, "isdelete": teaching.isdelete, "createtime": teaching.createtime, "updatetime": teaching.updatetime, } experiment = ExperimentService.getExperimentById(teaching.experimentid) teachingDict["f_experiment_name"] = experiment.name teachingDict["f_experiment_desc"] = experiment.desc teachingDict["f_experiment_url"] = experiment.url teacher = TeacherService.getTeacherById(teaching.teacherid) teachingDict["f_teacher_name"] = teacher.name teachingDict["f_teacher_id"] = teacher.id videoids = teaching.videos.split(",") videos = [] for id in videoids: video = VideoService.getVideoById(id) video.url = "/getVideoById/?videourl=" + video.url videoobj = { "url": video.url, "name": video.name } videos.append(videoobj) teachingDict["videos"] = json.dumps(videos) for report in reportList: if report.teachingid == teaching.id: teachingDict["f_report_status"] = report.status teachingDict["f_report_id"] = report.id if (report.url is None) or (report.url == "") or report.url == "none": teachingDict["f_report_url"] = "" else: teachingDict["f_report_url"] = report.url if report.score > 0: teachingDict["f_score"] = report.score else: teachingDict["f_score"] = 0 teachingDictList.append(teachingDict) return teachingDictList