Exemplo n.º 1
0
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__())
Exemplo n.º 2
0
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__())
Exemplo n.º 3
0
def addBatchAdmin(request):
    adminid = utils.getCookie(request, "adminid")
    if adminid == "" or adminid is None:
        return getloginResponse(request)
    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>"
        )
    adminfilename = file.name
    adminlistfilesuffix = os.path.splitext(adminfilename)[1]
    if adminlistfilesuffix != ".xsl" and adminlistfilesuffix != ".xlsx":
        return HttpResponse(
            "<script>if(confirm('管理员名单必须为excel格式!')){history.go(-1);location.reload()}else{history.go(-1);location.reload()}</script>"
        )

    adminfilename = str(uuid.uuid1()) + adminlistfilesuffix
    fp = open(os.path.join(CONSTANTS.STUDENTLISTURL_PRE + adminfilename),
              'wb+')
    for chunk in file.chunks():  # 分块写入文件
        fp.write(chunk)
    fp.close()

    adminlist = getAdminListByExcel(adminfilename)

    for admin in adminlist:
        teacher = TeacherService.getTeacherByNumber(admin["number"])
        teachername = admin["name"]
        teachernum = admin["number"]
        if teacher is None:
            teacherid = TeacherService.addTeacher(teachername, teachernum)
            teacher = TeacherService.getTeacherById(teacherid)
        if teacher.name != admin["name"]:
            return HttpResponse(
                "<script>if(confirm('教师姓名" + admin["name"] + "与教师编号" +
                admin["number"] +
                "不符,请确认!')){history.go(-1);location.reload()}else{history.go(-1);location.reload()}</script>"
            )
        adminobj = AdminService.getAdminByTeacherId(teacher.id)
        if adminobj is not None:
            return HttpResponse(
                "<script>if(confirm('此教师" + admin["number"] +
                "已经设置过管理员!')){history.go(-1);location.reload()}else{history.go(-1);location.reload()}</script>"
            )
        adminid = AdminService.addAdmin(teacher.id)

    return HttpResponse(
        "<script>if(confirm('添加成功!')){history.go(-1);location.reload()}else{history.go(-1);location.reload()}</script>"
    )
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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__())
Exemplo n.º 6
0
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__())
Exemplo n.º 7
0
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
        })
Exemplo n.º 8
0
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
Exemplo n.º 9
0
def addBatchTeacher(request):
    adminid = utils.getCookie(request, "adminid")
    if adminid == "" or adminid is None:
        return getloginResponse(request)
    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>"
        )
    teacherfilename = file.name
    tealistfilesuffix = os.path.splitext(teacherfilename)[1]
    if tealistfilesuffix != ".xsl" and tealistfilesuffix != ".xlsx":
        return HttpResponse(
            "<script>if(confirm('教师名单必须为excel格式!')){history.go(-1);location.reload()}else{history.go(-1);location.reload()}</script>"
        )

    teacherfilename = str(uuid.uuid1()) + tealistfilesuffix
    fp = open(os.path.join(CONSTANTS.STUDENTLISTURL_PRE + teacherfilename),
              'wb+')
    for chunk in file.chunks():  # 分块写入文件
        fp.write(chunk)
    fp.close()

    teacherlist = getTeacherListByExcel(teacherfilename)

    for teacher in teacherlist:
        teacherobj = TeacherService.getTeacherByNumber(teacher["number"])
        if teacherobj is None:
            TeacherService.addTeacher(teacher["name"], teacher["number"])
        else:
            return HttpResponse(
                "<script>if(confirm('教师已存在,姓名:" + teacher["name"] + ",编号:" +
                teacher["number"] +
                "')){history.go(-1);location.reload()}else{history.go(-1);location.reload()}</script>"
            )
    return HttpResponse(
        "<script>if(confirm('添加成功!')){history.go(-1);location.reload()}else{history.go(-1);location.reload()}</script>"
    )
Exemplo n.º 10
0
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
Exemplo n.º 11
0
def addAdmin(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 None:
        teacherid = TeacherService.addTeacher(teachername, teachernum)
        teacher = TeacherService.getTeacherById(teacherid)
    if teacher.name != teachername:
        responseReturn = Response("-1", "教师姓名与教师编号不符,请确认!")
        return HttpResponse(responseReturn.__str__())
    admin = AdminService.getAdminByTeacherId(teacher.id)
    if admin is not None:
        responseReturn = Response("-1", "此教师已经设置过管理员!")
        return HttpResponse(responseReturn.__str__())
    adminid = AdminService.addAdmin(teacher.id)
    responseReturn = Response(None, None)
    return HttpResponse(responseReturn.__str__())
Exemplo n.º 12
0
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