def get_teacher_course_information():
    if request.method == 'GET':
        # 查看某课程选课学生信息
        form = GetCourseInformationForm(request.args)
        if form.validate():
            course_id = form.course_id.data
            teacher_id = CourseTeacherReader(course_id)
            if teacher_id.data.get('error'):
                return jsonify(teacher_id.data), 404
            teacher_id = teacher_id.data['teacher_id']
            authority = check_authority('teacher', teacher_id)
            if authority.get('error'):
                return jsonify(authority), 404
            course_students = TeacherCourseStudentReader(course_id)
            return jsonify(course_students.data), 404 if course_students.data.get('error') else 200
        else:
            return jsonify(transform_errors(form.errors)), 404
    else:
        # 修改某课程某学生成绩
        form = PostGradeInformationForm(request.args)
        if form.validate():
            course_id = form.course_id.data
            teacher_id = CourseTeacherReader(course_id)
            if teacher_id.data.get('error'):
                return jsonify(teacher_id.data), 404
            teacher_id = teacher_id.data['teacher_id']
            authority = check_authority('teacher', teacher_id)
            if authority.get('error'):
                return jsonify(authority), 404
            student_id = form.student_id.data
            grade = form.grade.data
            grade_updater = TeacherGradeUpdater(course_id, student_id, grade)
            return jsonify(grade_updater.data), 404 if grade_updater.data.get('error') else 200
        else:
            return jsonify(transform_errors(form.errors)), 404
示例#2
0
def admin_update_course():
    authority = check_authority('admin', 'default')
    if authority.get('error'):
        return jsonify(authority), 404
    if request.method == 'GET':
        form = AdminSelectSingleCourseForm(request.args)
        if form.validate():
            course_id = form.course_id.data
            result = SingleCourseReader(course_id).data
            if result.get('error'):
                return jsonify(result), 404
            result = dict(result, **TeacherListReader().data)
            return jsonify(result), 404 if result.get('error') else 200
        else:
            return jsonify(transform_errors(form.errors)), 404
    else:
        form = AdminUpdateCourseForm(request.args)
        if form.validate():
            course_id = form.course_id.data
            course_name = form.course_name.data
            year = form.year.data
            semester = form.semester.data
            teacher_id = form.teacher_id.data
            credit = form.credit.data
            updater = CourseUpdater(course_id, course_name, year, semester,
                                    teacher_id, credit)
            return jsonify(
                updater.data), 404 if updater.data.get('error') else 200
        else:
            return jsonify(transform_errors(form.errors)), 404
def admin_update_teacher():
    authority = check_authority('admin', 'default')
    if authority.get('error'):
        return jsonify(authority), 404
    if request.method == 'GET':
        form = AdminSelectSingleTeacherForm(request.args)
        if form.validate():
            teacher_id = form.teacher_id.data
            teacher = TeacherReader(teacher_id)
            return jsonify(
                teacher.data), 404 if teacher.data.get('error') else 200
        else:
            return jsonify(transform_errors(form.errors)), 404
    else:
        form = AdminUpdateTeacherForm(request.args)
        if form.validate():
            teacher_id = form.teacher_id.data
            teacher_name = form.teacher_name.data
            sex = form.sex.data
            birth_year = form.birth_year.data
            updater = TeacherUpdater(teacher_id, teacher_name, sex, birth_year)
            return jsonify(
                updater.data), 404 if updater.data.get('error') else 200
        else:
            return jsonify(transform_errors(form.errors)), 404
        pass
def get_teacher_course_statistic():
    form = GetCourseInformationForm(request.args)
    if form.validate():
        course_id = form.course_id.data
        # 根据course_id获取teacher_id  unready
        course_students = CourseStatisticReader(course_id)
        return jsonify(course_students.data), 404 if course_students.data.get('error') else 200
    else:
        return jsonify(transform_errors(form.errors)), 404
示例#5
0
def admin_delete_course():
    authority = check_authority('admin', 'default')
    if authority.get('error'):
        return jsonify(authority), 404
    form = AdminSelectSingleCourseForm(request.args)
    if form.validate():
        course_id = form.course_id.data
        deleter = CourseDeleter(course_id)
        return jsonify(deleter.data), 404 if deleter.data.get('error') else 200
    else:
        return jsonify(transform_errors(form.errors)), 404
def admin_insert_major():
    authority = check_authority('admin', 'default')
    if authority.get('error'):
        return jsonify(authority), 404
    form = AdminInsertMajorForm(request.args)
    if form.validate():
        major_name = form.major_name.data
        inserter = MajorInserter(major_name)
        return jsonify(inserter.data), 404 if inserter.data.get('error') else 200
    else:
        return jsonify(transform_errors(form.errors)), 404
def admin_login():
    form = AdminLoginForm(request.args)
    if form.validate():
        password = form.password.data
        checker = LoginChecker('login', 'admin', 'admin', password)
        if checker.data.get('error'):
            return jsonify(checker.data), 404
        login_user(checker)
        return jsonify(checker.data), 200
    else:
        return jsonify(transform_errors(form.errors)), 404
def get_student_information():
    form = GetStudentInformationForm(request.args)  # 验证请求参数
    if form.validate():  # 如果通过验证
        student_id = form.student_id.data
        authority = check_authority('student', student_id)
        if authority.get('error'):
            return jsonify(authority), 404
        student = StudentReader(student_id)  # 从数据库读取学生信息
        # 若包含error字段,则读取失败,否则读取成功
        return jsonify(student.data), 404 if student.data.get('error') else 200
    else:  # 如果未通过验证
        return jsonify(transform_errors(form.errors)), 404
def get_teacher_courses_taught():
    # 查看教师授课信息
    form = GetTeacherInformationForm(request.args)
    if form.validate():
        teacher_id = form.teacher_id.data
        authority = check_authority('teacher', teacher_id)
        if authority.get('error'):
            return jsonify(authority), 404
        teacher_courses = TeacherCoursesReader(teacher_id)
        return jsonify(teacher_courses.data), 404 if teacher_courses.data.get('error') else 200
    else:
        return jsonify(transform_errors(form.errors)), 404
def teacher_login():
    form = TeacherLoginForm(request.args)
    if form.validate():
        teacher_id = form.teacher_id.data
        password = form.password.data
        checker = LoginChecker('login', 'teacher', teacher_id, password)
        if checker.data.get('error'):
            return jsonify(checker.data), 404
        login_user(checker)
        return jsonify(checker.data), 200
    else:
        return jsonify(transform_errors(form.errors)), 404
def student_login():
    form = StudentLoginForm(request.args)
    if form.validate():
        student_id = form.student_id.data
        password = form.password.data
        checker = LoginChecker('login', 'student', student_id, password)
        if checker.data.get('error'):
            return jsonify(checker.data), 404
        login_user(checker)
        return jsonify(checker.data), 200
    else:
        return jsonify(transform_errors(form.errors)), 404
def get_student_courses_selected():
    form = GetStudentInformationForm(request.args)
    if form.validate():
        student_id = form.student_id.data
        authority = check_authority('student', student_id)
        if authority.get('error'):
            return jsonify(authority), 404
        student_courses = StudentCoursesReader(student_id)
        return jsonify(student_courses.data), 404 if student_courses.data.get(
            'error') else 200
    else:
        return jsonify(transform_errors(form.errors)), 404
def admin_update_major():
    authority = check_authority('admin', 'default')
    if authority.get('error'):
        return jsonify(authority), 404
    if request.method == 'GET':
        form = AdminSelectSingleMajorForm(request.args)
        if form.validate():
            major_id = form.major_id.data
            major = SingleMajorReader(major_id)
            return jsonify(major.data), 404 if major.data.get('error') else 200
        else:
            return jsonify(transform_errors(form.errors)), 404
    else:
        form = AdminUpdateMajorForm(request.args)
        if form.validate():
            major_id = form.major_id.data
            major_name = form.major_name.data
            updater = MajorUpdater(major_id, major_name)
            return jsonify(updater.data), 404 if updater.data.get('error') else 200
        else:
            return jsonify(transform_errors(form.errors)), 404
def teacher_change_password():
    form = TeacherChangePasswordForm(request.args)
    if form.validate():  # 如果通过验证
        teacher_id = form.teacher_id.data
        authority = check_authority('teacher', teacher_id)
        if authority.get('error'):
            return jsonify(authority), 404
        old_password = form.old_password.data
        new_password = form.new_password.data
        teacher = TeacherPasswordChanger(teacher_id, old_password,
                                         new_password)
        return jsonify(teacher.data), 404 if teacher.data.get('error') else 200
    else:  # 如果未通过验证
        return jsonify(transform_errors(form.errors)), 404
def student_change_password():
    form = StudentChangePasswordForm(request.args)
    if form.validate():  # 如果通过验证
        student_id = form.student_id.data
        authority = check_authority('student', student_id)
        if authority.get('error'):
            return jsonify(authority), 404
        old_password = form.old_password.data
        new_password = form.new_password.data
        student = StudentPasswordChanger(student_id, old_password,
                                         new_password)
        return jsonify(student.data), 404 if student.data.get('error') else 200
    else:  # 如果未通过验证
        return jsonify(transform_errors(form.errors)), 404
def admin_insert_teacher():
    authority = check_authority('admin', 'default')
    if authority.get('error'):
        return jsonify(authority), 404
    form = AdminInsertTeacherForm(request.args)
    if form.validate():
        teacher_name = form.teacher_name.data
        sex = form.sex.data
        birth_year = form.birth_year.data
        inserter = TeacherInserter(teacher_name, sex, birth_year)
        return jsonify(
            inserter.data), 404 if inserter.data.get('error') else 200
    else:
        return jsonify(transform_errors(form.errors)), 404
示例#17
0
def admin_delete_major_course():
    authority = check_authority('admin', 'default')
    if authority.get('error'):
        return jsonify(authority), 404
    form = AdminMajorCourseForm(request.args)
    if form.validate():
        major_id = form.major_id.data
        course_id = form.course_id.data
        delete_major_courses = MajorCourseDeleter(major_id, course_id)
        return jsonify(
            delete_major_courses.data), 404 if delete_major_courses.data.get(
                'error') else 200
    else:
        return jsonify(transform_errors(form.errors)), 404
示例#18
0
def admin_insert_major_course():
    authority = check_authority('admin', 'default')
    if authority.get('error'):
        return jsonify(authority), 404
    if request.method == 'GET':
        insert_major_courses = InsertMajorCourseReader()
        return jsonify(
            insert_major_courses.data), 404 if insert_major_courses.data.get(
                'error') else 200
    else:
        form = AdminMajorCourseForm(request.args)
        if form.validate():
            major_id = form.major_id.data
            course_id = form.course_id.data
            insert_major_courses = MajorCourseInserter(major_id, course_id)
            return jsonify(
                insert_major_courses.data
            ), 404 if insert_major_courses.data.get('error') else 200
        else:
            return jsonify(transform_errors(form.errors)), 404
示例#19
0
def admin_insert_course():
    authority = check_authority('admin', 'default')
    if authority.get('error'):
        return jsonify(authority), 404
    if request.method == 'GET':
        teachers = TeacherListReader()  # 获取可供选择的id列表
        return jsonify(
            teachers.data), 404 if teachers.data.get('error') else 200
    else:
        form = AdminInsertCourseForm(request.args)
        if form.validate():
            course_name = form.course_name.data
            year = form.year.data
            semester = form.semester.data
            teacher_id = form.teacher_id.data
            credit = form.credit.data
            inserter = CourseInserter(course_name, year, semester, teacher_id,
                                      credit)
            return jsonify(
                inserter.data), 404 if inserter.data.get('error') else 200
        else:
            return jsonify(transform_errors(form.errors)), 404