Ejemplo n.º 1
0
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
        })
Ejemplo n.º 2
0
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__())
Ejemplo n.º 3
0
def getReportByTeachingid(teachingid):
    try:
        reportList = Report.objects.filter(
            teachingid=teachingid).order_by("createtime").all()
    except:
        return None
    else:
        reportDictList = []
        for report in reportList:
            reportDict = {
                "id": report.id,
                "stuid": report.stuid,
                "teachingid": report.teachingid,
                "url": report.url,
                "score": report.score,
                "status": report.status,
                "isdelete": report.isdelete,
                "createtime": report.createtime,
                "updatetime": report.updatetime
            }
            student = StudentService.getStudentById(report.stuid)
            reportDict["stuname"] = student.name
            reportDict["stunumber"] = student.number
            reportDictList.append(reportDict)
        return reportDictList
Ejemplo n.º 4
0
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__())
Ejemplo n.º 5
0
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__())
Ejemplo n.º 6
0
def getStudentListByExcel(filename):
    executestate = 0  # 执行状态 0:成功,1:失败
    failtext = ""  # 失败信息
    studentlist = []
    book = xlrd.open_workbook(CONSTANTS.STUDENTLISTURL_PRE + filename)
    sheet0 = book.sheet_by_index(0)
    nrows = sheet0.nrows  # 获取行总数
    for i in range(nrows):
        if i == 0:
            continue
        row_data = sheet0.row_values(i)
        registyear = str(sheet0.cell_value(i, 2))
        major = str(sheet0.cell_value(i, 3))
        classname = str(sheet0.cell_value(i, 4))
        filterinfo = FilterInfoService.getFilterInfo(registyear, major,
                                                     classname)
        if filterinfo is None:
            executestate = 1
            failtext = """班级不存在,入学年份:%s,专业:%s,班级:%s""" % (registyear, major,
                                                          classname)
            return studentlist, executestate, failtext

        student = {
            "name": sheet0.cell_value(i, 0),
            "number": str(sheet0.cell_value(i, 1)),
            "filterinfoid": filterinfo.id
        }
        studentobj = StudentService.getStudentByNum(student["number"])
        if studentobj is not None:
            executestate = 1
            failtext = """该学生已存在,姓名:%s,学号:%s""" % (student["name"],
                                                   student["number"])
            return studentlist, executestate, failtext
        studentlist.append(student)
    return studentlist, executestate, failtext
Ejemplo n.º 7
0
def expoperation(request, id):
    stuid = utils.getCookie(request, "stuid")
    if (stuid is None) or stuid == "":
        return getloginResponse(request)
    stuname = utils.getCookie(request, "stuname")
    stunumber = StudentService.getStudentById(stuid).number
    if id == '1':
        return render(request, "experiment/experiment1/expoperation.html", {
            "stuname": stuname,
            "stunumber": stunumber
        })
    elif id == '2':
        return render(request, "experiment/experiment2/expoperation.html", {
            "stuname": stuname,
            "stunumber": stunumber
        })
    elif id == '3':
        return render(request, "experiment/experiment3/expoperation.html", {
            "stuname": stuname,
            "stunumber": stunumber
        })
    elif id == '4':
        return render(request, "experiment/experiment4/expoperation.html", {
            "stuname": stuname,
            "stunumber": stunumber
        })
    elif id == '5':
        return render(request, "experiment/experiment5/expoperation.html", {
            "stuname": stuname,
            "stunumber": stunumber
        })
    elif id == '6':
        return render(request, "experiment/experiment6/expoperation.html", {
            "stuname": stuname,
            "stunumber": stunumber
        })
    elif id == '7':
        return render(request, "experiment/experiment7/expoperation.html", {
            "stuname": stuname,
            "stunumber": stunumber
        })
    elif id == '8':
        return render(request, "experiment/experiment8/expoperation.html", {
            "stuname": stuname,
            "stunumber": stunumber
        })
    elif id == '9':
        return render(request, "experiment/experiment9/expoperation.html", {
            "stuname": stuname,
            "stunumber": stunumber
        })
    elif id == '10':
        return render(request, "experiment/experiment10/expoperation.html", {
            "stuname": stuname,
            "stunumber": stunumber
        })
Ejemplo n.º 8
0
def image_draw(request):
    stuid = utils.getCookie(request, "stuid")
    if (stuid is None) or stuid == "":
        return getloginResponse(request)
    stuname = utils.getCookie(request, "stuname")
    stunumber = StudentService.getStudentById(stuid).number
    return render(request, "experiment/image_draw.html", {
        "stuname": stuname,
        "stunumber": stunumber
    })
Ejemplo n.º 9
0
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__())
Ejemplo n.º 10
0
def addBatchStudent(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>"
        )
    stulistfilename = file.name
    stulistfilesuffix = os.path.splitext(stulistfilename)[1]
    if stulistfilesuffix != ".xsl" and stulistfilesuffix != ".xlsx":
        return HttpResponse(
            "<script>if(confirm('学生名单必须为excel格式!')){history.go(-1);location.reload()}else{history.go(-1);location.reload()}</script>"
        )

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

    studentList, executestate, failtext = getStudentListByExcel(
        stulistfilename)
    if executestate == 1:
        return HttpResponse(
            "<script>if(confirm('" + failtext +
            "')){history.go(-1);location.reload()}else{history.go(-1);location.reload()}</script>"
        )

    for student in studentList:
        StudentService.addStudent(student["name"], student["number"],
                                  student["filterinfoid"])

    return HttpResponse(
        "<script>if(confirm('添加成功!')){history.go(-1);location.reload()}else{history.go(-1);location.reload()}</script>"
    )
Ejemplo n.º 11
0
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__())
Ejemplo n.º 12
0
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__())