def uploadVideo(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) name = utils.getParam(request, "name") if experimentid == "": responseReturn = Response(-1, "请选择实验!") return HttpResponse(responseReturn.__str__()) if file is None: responseReturn = Response(-1, "上传文件为空!") return HttpResponse(responseReturn.__str__()) filename = file.name filesuffix = os.path.splitext(filename)[1] if filesuffix != ".mp4" and filesuffix != ".rmvb": responseReturn = Response(-1, "视屏格式应为MP4、rmvb!") return HttpResponse(responseReturn.__str__()) filename = str(uuid.uuid1()) + filesuffix fp = open(os.path.join(CONSTANTS.EXPERIMENTVIDEOURL_PRE, filename), 'wb+') for chunk in file.chunks(): # 分块写入文件 fp.write(chunk) fp.close() videoid = VideoService.saveVideo(name, filename, experimentid) if videoid is None: responseReturn = Response(-1, "上传失败,请重试!") return HttpResponse(responseReturn.__str__()) video = {"id": videoid, "name": name, "url": filename} responseReturn = Response(None, None) responseReturn.setRes(json.dumps(video)) return HttpResponse(responseReturn.__str__())
def addFilterInfo(request): adminid = utils.getCookie(request, "adminid") if adminid == "" or adminid is None: responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) registyear = utils.getParam(request, "registyear") major = utils.getParam(request, "major") classname = utils.getParam(request, "classname") if registyear is None or registyear == "": responseReturn = Response(-1, "请输入入学年份~") return HttpResponse(responseReturn.__str__()) if major is None or major == "": responseReturn = Response(-1, "请输入专业~") return HttpResponse(responseReturn.__str__()) if classname is None or classname == "": responseReturn = Response(-1, "请输入班级~") return HttpResponse(responseReturn.__str__()) filterinfo = FilterInfoService.getFilterInfo(registyear, major, classname) if filterinfo is None: filterinfoid = FilterInfoService.addFilterInfo(registyear, major, classname) responseReturn = Response(None, None) return HttpResponse(responseReturn.__str__()) else: responseReturn = Response(-1, "已有此班级,请重新输入~") return HttpResponse(responseReturn.__str__())
def updateTeachingTemplate(request): teacherid = utils.getCookie(request, "teacherid") if (teacherid is None) or teacherid == "": responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) teachingid = utils.getParam(request, "teachingid") 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) TeachingService.uploadTemplate(teachingid, templateid) return HttpResponse( "<script>if(confirm('上传成功')){history.go(-1);location.reload()}else{history.go(-1);location.reload()}</script>" )
def adminlogin(request): superuser = superadmin.user superpwd = superadmin.password adminid = utils.getParam(request, "adminid") adminpwd = utils.getParam(request, "adminpwd") if superuser == adminid and superpwd == adminpwd: responseReturn = Response(None, None) response = HttpResponse(responseReturn.__str__()) utils.setCookie(response, "issuperadmin", "1") utils.setCookie(response, "adminid", "0") utils.setCookie(response, "adminname", str("superadmin")) return response teacher = TeacherService.getTeacherByNumAndPwd(adminid, adminpwd) if teacher is None: responseReturn = Response("-1", "用户名或密码错误") return HttpResponse(responseReturn.__str__()) admin = AdminService.getAdminByTeacherId(teacher.id) if admin is not None: responseReturn = Response(None, None) response = HttpResponse(responseReturn.__str__()) utils.setCookie(response, "issuperadmin", "0") utils.setCookie(response, "adminid", str(admin.id)) utils.setCookie(response, "adminname", teacher.name) return response else: responseReturn = Response("-1", "登录失败") return HttpResponse(responseReturn.__str__())
def v_studentmanagement(request): adminid = utils.getCookie(request, "adminid") if adminid == "" or adminid is None: return getloginResponse(request) issuperadmin = utils.getCookie(request, "issuperadmin") adminname = utils.getCookie(request, "adminname") stunum = utils.getParam(request, "searchnum") name = utils.getParam(request, "searchname") page = utils.getParam(request, "page") if (page is None) or page == "": page = 1 else: page = int(page) if (stunum == "" or stunum is None) and (name == "" or name is None): count = StudentService.getCountStudent() countpage = 0 i = 0 if count > 0: if count % 10 > 0: i = 1 countpage = count / 10 + i studentList = StudentService.getAllStudent(page) else: count = StudentService.getCountStudentByNameAndNumber(name, stunum) countpage = 0 i = 0 if count > 0: if count % 10 > 0: i = 1 countpage = count / 10 + i studentList = StudentService.getManyStudentByNameAndNumber( name, stunum, page) for student in studentList: filterinfo = FilterInfoService.getFilterInfoById(student.filterinfoid) student.registyear = filterinfo.registyear student.major = filterinfo.major student.classname = filterinfo.classname param = "?" if stunum != "": param = param + "searchnum=" + stunum if name != "": if param != "?": param = param + "&" param = param + "searchname=" + name if param == "?": param = "" return render( request, "studentmanagement.html", { "studentList": studentList, "stunum": stunum, "searchname": name, "adminname": adminname, "countpage": countpage, "issuperadmin": issuperadmin })
def updateTeachingDeadline(request): teacherid = utils.getCookie(request, "teacherid") if (teacherid is None) or teacherid == "": responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) teachingid = utils.getParam(request, "teachingid") deadlinestr = utils.getParam(request, "deadline") + " 00:00:00" deadline = datetime.datetime.strptime(deadlinestr, "%Y-%m-%d %H:%M:%S") TeachingService.updateTeachingDeadlineById(teachingid, deadline) responseReturn = Response(None, None) return HttpResponse(responseReturn.__str__())
def teacherlogin(request): number = utils.getParam(request, "teaid") passwd = utils.getParam(request, "passwd") teacher = TeacherService.getTeacherByNumber(number) if (teacher is None) or (teacher.password != passwd): responseReturn = Response("-1", "登录失败") return HttpResponse(responseReturn.__str__()) else: responseReturn = Response(None, None) response = HttpResponse(responseReturn.__str__()) utils.setCookie(response, "teacherid", str(teacher.id)) utils.setCookie(response, "teachernumber", teacher.number) utils.setCookie(response, "teachername", teacher.name) return response
def stulogin(request): stunum = utils.getParam(request, "stuid") stuname = utils.getParam(request, "stuname") student = StudentService.getStudentByNumAndName(stuname, stunum) if student != None: responseReturn = Response(None, None) response = HttpResponse(responseReturn.__str__()) utils.setCookie(response, "stuid", str(student.id)) utils.setCookie(response, "stuname", student.name) utils.setCookie(response, "stunum", student.number) return response else: responseReturn = Response("-1", "登录失败") return HttpResponse(responseReturn.__str__())
def scoreReport(request): teacherid = utils.getCookie(request, "teacherid") if (teacherid is None) or teacherid == "": responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) reportid = utils.getParam(request, "reportid") scorestr = utils.getParam(request, "score") if scorestr == "" or scorestr == "0": responseReturn = Response(-1, "打分异常") response = HttpResponse(responseReturn.__str__()) return response score = int(scorestr) ReportService.scoreReport(reportid, score) responseReturn = Response(None, None) return HttpResponse(responseReturn.__str__())
def delFilterInfo(request): adminid = utils.getCookie(request, "adminid") if adminid == "" or adminid is None: responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) filterid = utils.getParam(request, "filterid") if filterid == "" or filterid is None: responseReturn = Response(-1, "请选择一个班级") return HttpResponse(responseReturn.__str__()) filterinfo = FilterInfoService.getFilterInfoById(filterid) if filterinfo is None: responseReturn = Response(-1, "此班级不存在~") return HttpResponse(responseReturn.__str__()) count = StudentService.getCountStudentByFilterInfo(filterid) if count > 0: responseReturn = Response(-1, "该班级下还有同学,不能删除哦~") return HttpResponse(responseReturn.__str__()) filterdelinfo = FilterInfoService.delFilterInfo(filterid) if filterdelinfo is None: responseReturn = Response(-1, "删除失败,请重试!") return HttpResponse(responseReturn.__str__()) responseReturn = Response(None, None) return HttpResponse(responseReturn.__str__())
def getListTemplate(request): adminid = utils.getCookie(request, "adminid") if adminid == "" or adminid is None: return getloginResponse(request) type = utils.getParam(request, "type") if type is None or type == "": responseReturn = Response("-1", "!") return HttpResponse(responseReturn.__str__()) templateaddr = "" filename = "" if type == CONSTANTS.ADD_USER_TYPE_STUDENT: templateaddr = CONSTANTS.ADDUSERTEMPLATEURL_PRE + "student.xlsx" filename = "学生名单模板" elif type == CONSTANTS.ADD_USER_TYPE_TEACHER: templateaddr = CONSTANTS.ADDUSERTEMPLATEURL_PRE + "teacher.xlsx" filename = "教师名单模板" elif type == CONSTANTS.ADD_USER_TYPE_ADMIN: templateaddr = CONSTANTS.ADDUSERTEMPLATEURL_PRE + "admin.xlsx" filename = "管理员名单模板" if os.path.exists(templateaddr) != True: return HttpResponse("未找到文件") file = open(templateaddr, "rb") response = FileResponse(file) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="%s"' % ( urlquote(filename + '.xlsx')) return response
def uploadData(request): teacherid = utils.getCookie(request, "teacherid") if (teacherid is None) or teacherid == "": responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) teachingid = utils.getParam(request, "teachingid") 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 != ".xsl" and filesuffix != ".xlsx": return HttpResponse( "<script>if(confirm('实验数据必须为excel')){history.go(-1);location.reload()}else{history.go(-1);location.reload()}</script>" ) filename = str(uuid.uuid1()) + filesuffix fp = open(os.path.join(CONSTANTS.DATAURL_PRE, filename), 'wb+') for chunk in file.chunks(): # 分块写入文件 fp.write(chunk) fp.close() TeachingService.uploadData(teachingid, filename) 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 getStudentByFilterInfoId(request): teacherid = utils.getCookie(request, "teacherid") if (teacherid is None) or teacherid == "": responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) filterid = utils.getParam(request, "filterid") if (filterid == "" or filterid is None): responseReturn = Response(-1, "请选择班级!") return HttpResponse(responseReturn.__str__()) filterinfo = FilterInfoService.getFilterInfoById(filterid) if filterinfo is None: responseReturn = Response(-1, "班级不存在!") return HttpResponse(responseReturn.__str__()) studentList = StudentService.getStudentListByFilterInfo(filterid) if studentList is None: responseReturn = Response(-1, "此班级没有学生!") return HttpResponse(responseReturn.__str__()) studentDictList = [] for student in studentList: dict = model_to_dict(student) del dict["isdelete"] del dict["createtime"] del dict["updatetime"] dict["registyear"] = filterinfo.registyear dict["major"] = filterinfo.major dict["classname"] = filterinfo.classname studentDictList.append(dict) studentDictListStr = json.dumps(studentDictList, ensure_ascii=False) responseReturn = Response(None, None) responseReturn.setRes(studentDictListStr) return HttpResponse(responseReturn.__str__())
def updateTeachingVideo(request): teacherid = utils.getCookie(request, "teacherid") if (teacherid is None) or teacherid == "": responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) teachingid = utils.getParam(request, "teachingid") videos = utils.getParam(request, "videos") if teachingid == "" or teachingid is None: responseReturn = Response(-1, "操作有误,请重试") return HttpResponse(responseReturn.__str__()) if videos == "" or videos is None: responseReturn = Response(-1, "更换的视频不能为空") return HttpResponse(responseReturn.__str__()) TeachingService.updateTeachingVideoById(teachingid, videos) responseReturn = Response(None, None) return HttpResponse(responseReturn.__str__())
def addTeacher(request): adminid = utils.getCookie(request, "adminid") if adminid == "" or adminid is None: responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) teachernum = utils.getParam(request, "teachernum") teachername = utils.getParam(request, "teachername") if (teachername == "" or teachernum == ""): responseReturn = Response("-1", "填写的信息不能为空!") return HttpResponse(responseReturn.__str__()) teacher = TeacherService.getTeacherByNumber(teachernum) if teacher is not None: responseReturn = Response("-1", "此教师已经存在!") return HttpResponse(responseReturn.__str__()) TeacherService.addTeacher(teachername, teachernum) responseReturn = Response(None, None) return HttpResponse(responseReturn.__str__())
def resetTeacherPwd(request): adminid = utils.getCookie(request, "adminid") if adminid == "" or adminid is None: responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) teacherid = utils.getParam(request, "teacherid") TeacherService.resetPassword(teacherid) responseReturn = Response(None, None) return HttpResponse(responseReturn.__str__())
def deleteTeachingByid(request): teacherid = utils.getCookie(request, "teacherid") if (teacherid is None) or teacherid == "": responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) teachingid = utils.getParam(request, "teachingid") TeachingService.deleteTeachingByid(teachingid) responseReturn = Response(None, None) return HttpResponse(responseReturn.__str__())
def deleteStudentByid(request): adminid = utils.getCookie(request, "adminid") if adminid == "" or adminid is None: responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) stuid = utils.getParam(request, "studentid") StudentService.deleteStudent(stuid) responseReturn = Response(None, None) return HttpResponse(responseReturn.__str__())
def addStudent(request): adminid = utils.getCookie(request, "adminid") if adminid == "" or adminid is None: responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) studentnum = utils.getParam(request, "studentnum") studentname = utils.getParam(request, "studentname") filterinfoid = utils.getParam(request, "filterinfoid") if (studentname == "" or studentnum == "" or filterinfoid == ""): responseReturn = Response("-1", "填写的信息不能为空!") return HttpResponse(responseReturn.__str__()) student = StudentService.getStudentByNum(studentnum) if student is not None: responseReturn = Response("-1", "此学生已经存在!") return HttpResponse(responseReturn.__str__()) StudentService.addStudent(studentname, studentnum, filterinfoid) responseReturn = Response(None, None) return HttpResponse(responseReturn.__str__())
def v_teachermanagement(request): adminid = utils.getCookie(request, "adminid") if adminid == "" or adminid is None: return getloginResponse(request) issuperadmin = utils.getCookie(request, "issuperadmin") teachernum = utils.getParam(request, "searchnum") teachername = utils.getParam(request, "searchname") adminname = utils.getCookie(request, "adminname") page = utils.getParam(request, "page") if (page is None) or page == "": page = 1 else: page = int(page) if (teachernum == "" or teachernum is None) and (teachername == "" or teachername is None): count = TeacherService.getCountTeacher(None, None) countpage = 0 i = 0 if count > 0: if count % 10 > 0: i = 1 countpage = count / 10 + i teacherList = TeacherService.getTeacherByPage(None, None, page) else: count = TeacherService.getCountTeacher(teachername, teachernum) countpage = 0 i = 0 if count > 0: if count % 10 > 0: i = 1 countpage = count / 10 + i teacherList = TeacherService.getTeacherByPage(teachername, teachernum, page) return render( request, "teachermanagement.html", { "teacherList": teacherList, "issuperadmin": issuperadmin, "stunum": teachernum, "countpage": countpage, "searchname": teachername, "adminname": adminname })
def editpassword(request): teacherid = utils.getCookie(request, "teacherid") if (teacherid is None) or teacherid == "": responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) newpwd = utils.getParam(request, "newpwd") oldpwd = utils.getParam(request, "oldpwd") teacher = TeacherService.getTeacherById(teacherid) if oldpwd != teacher.password: responseReturn = Response("-1", "原密码输入有误") return HttpResponse(responseReturn) teacher.password = newpwd teacher.updatetime = utils.getNow() result = TeacherService.editPassword(teacherid, newpwd) if result is not None: responseReturn = Response(None, None) else: responseReturn = Response("-1", "网络忙,请稍后重试!") response = HttpResponse(responseReturn.__str__()) return response
def v_approval(request): teacherid = utils.getCookie(request, "teacherid") if (teacherid is None) or teacherid == "": return getloginResponse(request) teachingid = utils.getParam(request, "teachingid") teachername = utils.getCookie(request, "teachername") reportList = ReportService.getReportByTeachingid(int(teachingid)) return render(request, "approval.html", { "reportList": reportList, "teachername": teachername })
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 getVideoById(request): videourl = utils.getParam(request, "videourl") if (videourl is None) or videourl == "": return HttpResponse("请重试") fileurl = CONSTANTS.EXPERIMENTVIDEOURL_PRE + videourl if os.path.exists(fileurl) != True: return HttpResponse("未找到文件") file = open(fileurl, "rb") response = FileResponse(file) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="' + videourl + '"' return response
def deleteTeacherByid(request): adminid = utils.getCookie(request, "adminid") if adminid == "" or adminid is None: responseReturn = Response(-2, "请登录") return HttpResponse(responseReturn.__str__()) teacherid = utils.getParam(request, "teacherid") count = TeachingService.getCountByTea(teacherid) if count > 0: responseReturn = Response("-1", "该教师下有未删除的实验教学") return HttpResponse(responseReturn.__str__()) TeacherService.deleteTeacher(teacherid) responseReturn = Response(None, None) return HttpResponse(responseReturn.__str__())
def downloadReport(request): reproturl = utils.getParam(request, "reproturl") if (reproturl is None) or reproturl == "": return HttpResponse("请重试") fileurl = CONSTANTS.REPORTURL_PRE + reproturl if os.path.exists(fileurl) != True: return HttpResponse("未找到文件") file = open(fileurl, "rb") filename = file.name filesuffix = os.path.splitext(filename)[1] response = FileResponse(file) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="%s"' % ( urlquote("实验报告" + filesuffix)) return response
def downloadStudentList(request): stulisturl = utils.getParam(request, "stulisturl") if (stulisturl is None) or stulisturl == "": return HttpResponse("请重试") fileurl = CONSTANTS.STUDENTLISTURL_PRE + stulisturl if os.path.exists(fileurl) != True: return HttpResponse("未找到文件") file = open(fileurl, "rb") filename = file.name filesuffix = os.path.splitext(filename)[1] response = FileResponse(file) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="%s"' % ( urlquote("学生名单" + filesuffix)) return response
def downloadTemplate(request): templateid = utils.getParam(request, "templateid") if (templateid is None) or templateid == "": return HttpResponse() template = TemplateService.getTemplateById(templateid) fileurl = CONSTANTS.TEMPLATEURL_PRE + template.url if os.path.exists(fileurl) != True: return HttpResponse("未找到文件") file = open(fileurl, "rb") filename = file.name filesuffix = os.path.splitext(filename)[1] response = FileResponse(file) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="%s"' % (urlquote("实验模板" + filesuffix)) return response
def downloadData(request): dataurl = utils.getParam(request, "dataurl") if (dataurl is None) or dataurl == "": return HttpResponse() fileurl = CONSTANTS.DATAURL_PRE + dataurl if os.path.exists(fileurl) != True: return HttpResponse("实验数据还没有上传~") file = open(fileurl, "rb") filename = file.name filesuffix = os.path.splitext(filename)[1] response = FileResponse(file) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="%s"' % (urlquote("实验数据" + filesuffix)) return response