Exemplo n.º 1
0
 def POST(self):
     web.header("Access-Control-Allow-Origin", "*")
     params = web.input()
     exam = model.Exam_model()
     must_params = exam.__notnull__
     if (util.paramsok(must_params, params) == 2):
         response = util.Response(status=util.Status.__params_not_ok__)
         return util.objtojson(response)
     else:
         exam = model.Exam_model(**params)
         if exam.insert():
             result = exam.query("select max(ex_id) from exam")
             lastExamId = int(result[0]['max(ex_id)'])
             # 获取教务班学生id
             stuHasClass = model.Student_has_class_model()
             classId = params['class_cl_id'].encode('utf-8')
             classId = classId.split(',')
             for k in range(1, len(classId) - 1):
                 listStuid = stuHasClass.getByArgs(class_cl_id=classId[k])
                 for stuID in listStuid:
                     informationArgs = dict(
                         student_st_id=stuID.student_st_id,
                         exam_ex_id=lastExamId,
                         class_cl_id=classId[k],
                         sg_id=exam.strategy_sg_id)
                     information = model.Information_model(
                         **informationArgs)
                     information.insert()
             response = util.Response(status=util.Status.__success__)
             return util.objtojson(response)
         else:
             response = util.Response(status=util.Status.__error__)
             return util.objtojson(response)
Exemplo n.º 2
0
    def POST(self):
        web.header("Access-Control-Allow-Origin", "*")
        params = web.input()
        exam = model.Exam_model()
        must_params = exam.__notnull__
        if (util.paramsok(must_params, params) == 2):
            response = util.Response(status=util.Status.__params_not_ok__)
            return util.objtojson(response)
        else:
            exam = model.Exam_model(**params)
            if exam.update():
                # 获取教务班学生id
                stuHasClass = model.Student_has_class_model()
                classId = params['add_class_cl_id'].encode('utf-8')
                classId = classId.split(',')
                print 'add_class_cl_id'
                print classId
                for k in range(1, len(classId) - 1):
                    print 1234567
                    print classId[k]
                    listStuid = stuHasClass.getByArgs(class_cl_id=classId[k])
                    for stuID in listStuid:
                        informationArgs = dict(
                            student_st_id=stuID.student_st_id,
                            exam_ex_id=exam.ex_id,
                            class_cl_id=classId[k],
                            sg_id=exam.strategy_sg_id)
                        information = model.Information_model(
                            **informationArgs)
                        information.insert()

                delete_classId = params['delete_class_cl_id'].encode('utf-8')
                delete_classId = delete_classId.split(',')
                print 'delete_class_cl_id'
                print delete_classId
                for k in range(1, len(delete_classId) - 1):
                    listStuid = stuHasClass.getByArgs(
                        class_cl_id=delete_classId[k])
                    for stuID in listStuid:
                        # informationArgs = dict(student_st_id=stuID.student_st_id, exam_ex_id=exam.ex_id,
                        #                        class_cl_id=delete_classId[k])
                        # information = model.Information_model()
                        # information_id = information.getByArgs(informationArgs)
                        # information.in_id = information_id[0]['in_id']
                        # information.delete()
                        db.delete('information',
                                  where="student_st_id = $student_st_id \
                        and exam_ex_id = $exam_ex_id",
                                  vars={
                                      'student_st_id': stuID.student_st_id,
                                      'exam_ex_id': exam.ex_id
                                  })

                response = util.Response(status=util.Status.__success__)
                return util.objtojson(response)
            else:
                response = util.Response(status=util.Status.__error__)
                return util.objtojson(response)
Exemplo n.º 3
0
 def POST(self):
     web.header("Access-Control-Allow-Origin", "*")
     params = web.input()
     examId = params['ex_id']
     examStatus = dict(ex_state=1, ex_id=examId)
     exam = model.Exam_model(**examStatus)
     exam.update()
Exemplo n.º 4
0
 def POST(self):
     web.header("Access-Control-Allow-Origin", "*")
     # 接收参数
     params = web.input()
     count = model.Exam_model.count()
     currentPage = int(params.currentPage) - 1
     lists = model.Exam_model.query(
         'select * from exam order by ex_time_end desc limit %s,%s' %
         (currentPage * 10, 10))
     lists = [model.Exam_model(**item) for item in lists]
     for list in lists:
         start_time = list['ex_time_start'].strftime('%Y-%m-%d %H:%M:%S')
         end_time = list['ex_time_end'].strftime('%Y-%m-%d %H:%M:%S')
         del list['ex_time_start']
         del list['ex_time_end']
         list.setdefault('ex_time_start', start_time)
         list.setdefault('ex_time_end', end_time)
     page = util.Page(data=lists,
                      totalRow=count,
                      currentPage=int(params.currentPage),
                      pageSize=10,
                      status=util.Status.__success__,
                      message="未知")
     response = util.Response(status=util.Status.__success__, body=page)
     return util.objtojson(response)
Exemplo n.º 5
0
def upExamStatusStop(delay):
    while (1):
        # print threadName
        time.sleep(delay)
        startExam = dict(ex_state=1)
        examModel = model.Exam_model()
        # 正在考试的考试
        exams = examModel.getByArgs(**startExam)
        for exam in exams:
            # 可能变成2,3,4
            # 练习模式考试直接出成绩
            if exam.ex_type == '0':
                if exam['ex_time_end'] < datetime.datetime.now():
                    exam['ex_state'] = '4'
                    exam.update()
            else:
                # 正式考试,自动判卷,转到正在阅卷
                if exam.ex_auto == '1':
                    if exam['ex_time_end'] < datetime.datetime.now():
                        exam['ex_state'] = '3'
                        thread.start_new(upExamStatusFour, (1, exam.ex_id))
                        exam.update()
                else:
                    # 正式考试,非自动判卷,转到结束考试但成绩未出
                    if exam['ex_time_end'] < datetime.datetime.now():
                        exam['ex_state'] = '2'
                        exam.update()
Exemplo n.º 6
0
 def POST(self):
     web.header("Access-Control-Allow-Origin", "*")
     # 接收参数
     params = web.input()
     lists = model.Exam_model.query('select * from exam where ex_state = 1')
     lists = [model.Exam_model(**item) for item in lists]
     response = util.Response(status=util.Status.__success__, body=lists)
     return util.objtojson(response)
Exemplo n.º 7
0
 def GET(self):
     web.header("Access-Control-Allow-Origin", "*")
     cl = model.Class_model()
     exam = model.Exam_model()
     cl_data = cl.getByArgs()
     exam_data = exam.getByArgs()
     data = []
     data.append(cl_data)
     data.append(exam_data)
     response = util.Response(status=util.Status.__success__, body=data)
     return util.objtojson(response)
Exemplo n.º 8
0
 def POST(self):
     web.header("Access-Control-Allow-Origin", "*")
     # 接收参数
     params = web.input()
     exam = model.Exam_model(**params)
     exam.delete()
     if exam.getByArgs(**params):
         response = util.Response(status=util.Status.__error__)
         return util.objtojson(response)
     else:
         response = util.Response(status=util.Status.__success__)
         return util.objtojson(response)
Exemplo n.º 9
0
def upExamStatusStop(threadName, delay):
    while (1):
        print threadName
        time.sleep(delay)
        startExam = dict(ex_state=1)
        examModel = model.Exam_model()
        # 未开始的考试
        exams = examModel.getByArgs(**startExam)
        for exam in exams:
            if exam['ex_time_end'] < datetime.datetime.now():
                exam['ex_state'] = '2'
                exam.update()
Exemplo n.º 10
0
 def POST(self):
     web.header("Access-Control-Allow-Origin", "*")
     # 接收参数
     params = web.input()
     exam = model.Exam_model()
     data = exam.getByArgs(**params)
     start_time = data[0]['ex_time_start'].strftime('%Y-%m-%d %H:%M:%S')
     end_time = data[0]['ex_time_end'].strftime('%Y-%m-%d %H:%M:%S')
     del data[0]['ex_time_start']
     del data[0]['ex_time_end']
     data[0].setdefault('ex_time_start', start_time)
     data[0].setdefault('ex_time_end', end_time)
     return util.objtojson(data)
 def POST(self):
     web.header("Access-Control-Allow-Origin", "*")
     # 接收参数
     params = web.input()
     currentPage = int(params.currentPage) - 1
     print(params)
     if params.ex_name == '':
         if params.ex_time_end == '' and params.ex_time_start != '':
             params.ex_time_end = '2200-12-12T12:12'
         if params.ex_time_end != '' and params.ex_time_start == '':
             params.ex_time_start = '2000-12-12T12:12'
         if params.ex_time_end == '' and params.ex_time_start == '':
             params.ex_time_start = '2000-12-12T12:12'
             params.ex_time_end = '2200-12-12T12:12'
         lists = model.Exam_model.query('select * from exam where ex_time_start >= %s \
             and ex_time_end <= %s order by ex_time_start desc limit %s,%s' \
                                        % ("'" + params.ex_time_start + "'", "'" + params.ex_time_end + "'",
                                           currentPage * 10, 10))
         result = model.Exam_model.query('select count(*) from exam where ex_time_start \
           >= %s and ex_time_end <= %s' % ("'" + params.ex_time_start + "'", "'" + params.ex_time_end + "'",))
     elif params.ex_time_start == '':
         lists = model.Exam_model.query('select * from exam where ex_name like \
           \'%%%s%%\' order by ex_time_start desc limit %s,%s' % (params.ex_name, currentPage * 10, 10))
         result = model.Exam_model.query('select count(*) from exam where ex_name like \
           \'%%%s%%\' ' % (params.ex_name))
     else:
         if params.ex_time_end == '':
             params.ex_time_end = '2200-12-12T12:12'
         lists = model.Exam_model.query('select * from exam where ex_name like \
           \'%%%s%%\' and ex_time_start >= %s and ex_time_end <= %s order by \
           ex_time_start desc limit %s,%s' % (
         params.ex_name, "'" + params.ex_time_start + "'", "'" + params.ex_time_end + "'", \
         currentPage * 10, 10))
         result = model.Exam_model.query('select count(*) from exam where ex_name like \
           \'%%%s%%\' and ex_time_start >= %s and ex_time_end <= %s' \
                                         % (params.ex_name, "'" + params.ex_time_start + "'",
                                            "'" + params.ex_time_end + "'",))
     count = result[0]['count(*)']
     lists = [model.Exam_model(**item) for item in lists]
     print(lists)
     for list in lists:
         start_time = list['ex_time_start'].strftime('%Y-%m-%d %H:%M:%S')
         end_time = list['ex_time_end'].strftime('%Y-%m-%d %H:%M:%S')
         del list['ex_time_start']
         del list['ex_time_end']
         list.setdefault('ex_time_start', start_time)
         list.setdefault('ex_time_end', end_time)
     page = util.Page(data=lists, totalRow=count, currentPage=int(params.currentPage), pageSize=10,
                      status=util.Status.__success__, message="未知")
     response = util.Response(status=util.Status.__success__, body=page)
     return util.objtojson(response)
Exemplo n.º 12
0
 def POST(self):
     web.header("Access-Control-Allow-Origin", "*")
     # 接收参数
     params = web.input()
     exam = model.Exam_model()
     data = exam.getByPK(int(params.ex_id))
     start_time = data['ex_time_start'].strftime('%Y-%m-%dT%H:%M')
     end_time = data['ex_time_end'].strftime('%Y-%m-%dT%H:%M')
     del data['ex_time_start']
     del data['ex_time_end']
     data.setdefault('ex_time_start', start_time)
     data.setdefault('ex_time_end', end_time)
     response = util.Response(status=util.Status.__success__, body=data)
     return util.objtojson(response)
 def POST(self):
     web.header("Access-Control-Allow-Origin", "*")
     # 接收参数
     params = web.input()
     lists = model.Exam_model.query('select * from exam order by ex_time_start desc')
     lists = [model.Exam_model(**item) for item in lists]
     for list in lists:
         start_time = list['ex_time_start'].strftime('%Y-%m-%d %H:%M:%S')
         end_time = list['ex_time_end'].strftime('%Y-%m-%d %H:%M:%S')
         del list['ex_time_start']
         del list['ex_time_end']
         list.setdefault('ex_time_start', start_time)
         list.setdefault('ex_time_end', end_time)
     response = util.Response(status=util.Status.__success__, body=lists)
     return util.objtojson(response)
Exemplo n.º 14
0
 def POST(self):
     web.header("Access-Control-Allow-Origin", "*")
     mydata = web.input()
     cl = model.Class_model()
     exam = model.Exam_model()
     information = model.Information_model()
     student = model.Student_model()
     information_data = orm.db.query(
         'select * from information where exam_ex_id = %s and class_cl_id = %s'
         % (mydata.ex_id, mydata.cl_id))
     # information_data = orm.db.query('select * from information where exam_ex_id = %s'%(mydata.ex_id))
     information_data = [
         model.Information_model(**item) for item in information_data
     ]
     student_data = []
     examquestion_data = []
     for k in information_data:
         result = student.getByArgs(st_id=k.student_st_id)
         student_data.append(result)
         k['in_state'] = util.in_state[int(k.in_state)]
         if k['in_score'] == -1:
             k['in_score'] = u'未出分'
         result = model.Exam_question_model.getByArgs(
             information_in_id=k.in_id)
         for question in result:
             if question.eq_get_score < 0:
                 question.eq_get_score = u'未出分'
         examquestion_data.append(result)
     data = []
     data.append(information_data)
     data.append(student_data)
     data.append(examquestion_data)
     page = util.Page(data=data,
                      totalRow=len(student_data),
                      currentPage=int(mydata.currentPage),
                      pageSize=10,
                      status=util.Status.__success__,
                      message="未知")
     response = util.Response(status=util.Status.__success__, body=page)
     return util.objtojson(response)