コード例 #1
0
ファイル: app.py プロジェクト: flaviaalexandra11/BD2-Project
def get_teacher_profile(teacher_id):
    print(teacher_id)
    if not is_logged_in(teacher_id):
        return {'status': 'not logged in'}, 403
    profile = exec_mysql('CALL get_teacher_profile(%s)', teacher_id)[0]
    print(profile)
    return create_dict_from_lists(get_teacher_profile_header, profile), 200
コード例 #2
0
ファイル: app.py プロジェクト: flaviaalexandra11/BD2-Project
def get_student_grades(teacher_id, class_id):
    print(teacher_id)
    print(class_id)
    payload = request.get_json()
    print(payload)
    if not is_logged_in(teacher_id):
        return {'status': 'not logged in'}, 403

    teacher_subject = exec_mysql('SELECT get_subject_by_tuid(%s)',
                                 teacher_id)[0][0]
    print(teacher_subject)

    add_examination = exec_mysql(
        'CALL add_examination(%s, %s, %s, %s, %s, %s, %s)', (
            payload['user_id'],
            teacher_id,
            teacher_subject,
            payload['examination_type'],
            payload['score'],
            payload['student_feedback'],
            payload['parent_feedback'],
        ))
    # print(add_examination)
    grades = exec_mysql('CALL get_grades_by_stud_uid(%s, %s)',
                        (payload['user_id'], teacher_id))
    grades = [
        create_dict_from_lists(get_grades_by_stud_uid_header, g)
        for g in grades
    ]
    print(grades)
    return {'grades': grades}, 200
コード例 #3
0
ファイル: app.py プロジェクト: flaviaalexandra11/BD2-Project
def get_students_of_class(teacher_id, class_id):
    print(teacher_id)
    print(class_id)
    if not is_logged_in(teacher_id):
        return {'status': 'not logged in'}, 403

    students = exec_mysql('CALL get_stud_by_class_id(%s)', class_id)
    # print(students)
    students = {
        'students': [
            create_dict_from_lists(get_stud_by_class_id_header, s)
            for s in students
        ]
    }
    # print(students)
    return students, 200
コード例 #4
0
ファイル: app.py プロジェクト: flaviaalexandra11/BD2-Project
def get_parents_of_class(teacher_id, class_id):
    print(teacher_id)
    print(class_id)
    if not is_logged_in(teacher_id):
        return {'status': 'not logged in'}, 403

    parents = exec_mysql('CALL get_parents_by_class_id(%s)', class_id)
    print(parents)
    parents = {
        'parents': [
            create_dict_from_lists(get_parents_by_class_id_header, p)
            for p in parents
        ]
    }

    return parents, 200
コード例 #5
0
ファイル: app.py プロジェクト: flaviaalexandra11/BD2-Project
def update_teacher_profile(teacher_id):
    print(teacher_id)
    payload = request.get_json()
    print(payload)
    print("AAAAAA")
    if not is_logged_in(teacher_id):
        return {'status': 'not logged in'}, 403
    update = exec_mysql('CALL update_teacher_profile(%s, %s, %s, %s, %s)', (
        teacher_id,
        payload['first_name'],
        payload['last_name'],
        payload['email'],
        payload['phone_number'],
    ))
    if len(update) == 0:
        return {'status': 'OK'}, 200
    return {'status': 'ooops, something went wrong'}, 500
コード例 #6
0
ファイル: app.py プロジェクト: flaviaalexandra11/BD2-Project
def get_class_by_teacher_id(teacher_id):
    print(teacher_id)
    if not is_logged_in(teacher_id):
        return {'status': 'not logged in'}, 403
    classes = {'classes': []}
    db_classes = exec_mysql('CALL get_classes_by_teacher(%s)', teacher_id)
    print(db_classes)
    for c in db_classes:
        db_class = create_dict_from_lists(get_classes_by_teacher_header, c)
        # print(db_class)
        spec_name = exec_mysql('SELECT get_class_spec_id(%s)',
                               db_class['class_id'])[0][0]
        # print(spec_name)
        teacher = exec_mysql('CALL get_teacher_profile(%s)',
                             db_class['class_master_id'])[0]
        # print(teacher)
        db_class['specialization_name'] = spec_name
        db_class['master'] = create_dict_from_lists(get_teacher_profile_header,
                                                    teacher)
        classes['classes'].append(db_class)

    return classes, 200
コード例 #7
0
ファイル: app.py プロジェクト: flaviaalexandra11/BD2-Project
def get_student_from_class_grades(teacher_id, class_id):
    print(teacher_id)
    print(class_id)
    if not is_logged_in(teacher_id):
        return {'status': 'not logged in'}, 403

    students = exec_mysql('CALL get_stud_by_class_id(%s)', class_id)

    students = {
        'students': [
            create_dict_from_lists(get_stud_by_class_id_header, s)
            for s in students
        ]
    }
    for s in students['students']:
        del s['email']
        grades = exec_mysql('CALL get_grades_by_stud_uid(%s, %s)',
                            (s['user_id'], teacher_id))
        s['grades'] = [
            create_dict_from_lists(get_grades_by_stud_uid_header, g)
            for g in grades
        ]

        # works if teacher teaches just one subject
        # to change in next version
        teacher_subject = exec_mysql('SELECT get_subject_by_tuid(%s)',
                                     teacher_id)[0][0]
        mean = exec_mysql('CALL compute_average(%s, %s, %s, %s)',
                          (class_id, teacher_id, teacher_subject, 1))
        mean = exec_mysql('CALL get_mean_grade_by_stud_uid(%s, %s)',
                          (s['user_id'], teacher_id))[0][0]
        # print(mean)
        s['mean'] = mean
    # print(students)

    return students, 200