Beispiel #1
0
def search_courses(request, keyword):
    user = request.user
    if request.user.is_authenticated:
        uname = user.uname
        course = course_manager.search_courses(keyword, uname)
        return success_json_response({'courses': course})
    return error_json_response("User not logged in")
Beispiel #2
0
def add_enroll_request_by_uname_and_code(request, code):
    user = request.user
    if request.user.is_authenticated:
        uname = user.uname
        student_manager.add_enroll_request_by_uname_and_code(uname, code)
        return success_json_response({})
    return error_json_response("User not logged in")
Beispiel #3
0
def calculate_final_grade(request, code, a, b, c, d, e, f):
    if float(a) + float(b) + float(c) + float(d) + float(e) + float(f) != 100:
        return error_json_response({'error': 'Sum not equal to 1'})
    else:
        amount = student_manager.retrieve_complete_amount(code)
        amount = amount[0]['count(*)']
        print(amount)
        a = math.ceil(amount * float(a) / 100.0)
        b = math.ceil(amount * float(b) / 100.0)
        c = math.ceil(amount * float(c) / 100.0)
        d = math.ceil(amount * float(d) / 100.0)
        e = math.ceil(amount * float(e) / 100.0)
        f = math.ceil(amount * float(f) / 100.0)

        enrolls = student_manager.calculate_final_grade(
            code, a, a + b, a + b + c, a + b + c + d, a + b + c + d + e,
            a + b + c + d + e + f)

        for enroll in enrolls:
            student_manager.update_final_grade(enroll['uname'], enroll['code'],
                                               enroll['final_result'])

        students = student_manager.get_students_by_coursecode_and_status(
            code, 'completed')

        return success_json_response({'students': students})
Beispiel #4
0
def add_reply(request):
    user = request.user
    if request.user.is_authenticated:
        uname = user.uname
        data = json.loads(request.body)
        post = post_manager.add_reply(data['code'], data['fid'], data['pid'], data['title'], data['content'], uname)
        return success_json_response({'reply': post})
    return error_json_response("User not logged in")
Beispiel #5
0
def get_tutorials_by_tA_and_course(request, code):
    user = request.user
    if request.user.is_authenticated:
        uname = user.uname
        tutorials = tutorial_manager.get_tutorials_by_tA_and_course(
            uname, code)
        return success_json_response({'tutorials': tutorials})
    return error_json_response("User not logged in")
Beispiel #6
0
def get_courses(request):
    user = request.user
    if request.user.is_authenticated:
        uname = user.uname
        puname = prof_manager.get_prof_by_username(uname)
        if len(puname) > 0:
            return get_courses_by_puname(request, uname)

        return success_json_response({'courses': course_manager.get_course_by_suname(uname)})
    return error_json_response("User not logged in")
Beispiel #7
0
def add_student_to_tut_by_uname_coursecode_groupnum(request, uname, code,
                                                    group_num):
    student = student_manager.add_student_to_tut_by_uname_coursecode_groupnum(
        uname, code, group_num)
    return success_json_response({'student': student})
Beispiel #8
0
def get_students_by_coursecode_and_groupnum(request, code, group_num):
    students = student_manager.get_students_by_coursecode_and_groupnum(
        code, group_num)
    return success_json_response({'students': students})
Beispiel #9
0
def mark_enroll_complete_by_uname_and_code(requst, code, uname):
    student_manager.mark_enroll_complete_by_uname_and_code(code, uname)
    return success_json_response({})
Beispiel #10
0
def update_testgrade_by_uname_and_code(request, uname, code, grade):
    student = student_manager.update_testgrade_by_uname_and_code(
        uname, code, grade)
    return success_json_response({'student': student})
Beispiel #11
0
def login_root(request):
    user = auth.authenticate(username="******", password="******")
    if user is not None:
        auth.login(request, user)
    return success_json_response({'user': {'username': user.uname}})
Beispiel #12
0
def reject_requests(request, uname, code):
    student = student_manager.reject_requests(uname, code)
    return success_json_response({'student': student})
Beispiel #13
0
def get_students_by_coursecode(request, code):
    students = student_manager.get_students_by_coursecode(code)
    return success_json_response({'students': students})
Beispiel #14
0
def get_tutorials_by_course_and_group(request, code, num):
    tutorials = tutorial_manager.get_tutorials_by_course_and_group(code, num)
    return success_json_response({'tutorials': tutorials})
Beispiel #15
0
def add_stu_to_attendance_by_uname_code_group_num(request, uname, code,
                                                  group_num, attend_week):
    attendance = tutorial_manager.add_stu_to_attendance_by_uname_code_group_num(
        uname, code, group_num, attend_week)
    return success_json_response({'attendance': attendance})
Beispiel #16
0
def get_profs_by_coursecode(request, code):
    profs = prof_manager.get_profs_by_coursecode(code)
    return success_json_response({'profs': profs})
Beispiel #17
0
def get_TAs_by_coursecode(request, code):
    TAs = TA_manager.get_TAs_by_coursecode(code)
    return success_json_response({'TAs': TAs})
Beispiel #18
0
def get_prof_by_username(request, username):
    profs = prof_manager.get_prof_by_username(username)
    return success_json_response({'profs': profs})
Beispiel #19
0
def logout(request):
    auth.logout(request)
    return success_json_response({'message': 'Successfully log out'})
Beispiel #20
0
def login(request):
    if request.user.is_authenticated:
        user = request.user
        # is_admin = user.is_staff or user.is_superuser
        prof = prof_manager.get_prof_by_username(user.uname)
        is_prof = len(prof) > 0
        ta = TA_manager.get_TA_by_username(user.uname)
        is_ta = len(ta) > 0
        is_admin = True
        return success_json_response({
            'user': {
                'username': request.user.uname,
                'name': request.user.name,
                'isAdmin': is_admin,
                'isProf': is_prof,
                'isTA': is_ta
            }
        })

    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']

            private_key = rsa.PrivateKey.load_pkcs1(
                ('-----BEGIN RSA PRIVATE KEY-----\n \
                MIICXAIBAAKBgQClKNC9Gyk0K2d3x1XnJhsNQOm4pqem0UmElIH6rvUSHmbx9R1S\n \
                HZSLqE7biTcYhkU8gYe0+fIBeExt/qW4L6IbEB3XG/Xv0rarK18vCNulkD43eDae\n \
                JZPOIdy3nItXiBIpNQxEu8MiOtqTIPeGIcueIOP0C3+HeIZFiKPSZMoteQIDAQAB\n \
                AoGBAIQQyCF/N4p87qar4bgNE3Kcpoe906+kCOqYKft/rX4Ii38M5p5EAwVN14jb\n \
                BxB4RaLlXNPNTcP5IvyNtIw8op1CZJZxdneTKjquH+cBYdZE5v/UpQfa1PP3o22b\n \
                0/jGtHyCGJzzZ/+DlCtgTBLJsK7e5mJPw8X9hvqR+kIPDoXRAkEA01CL26Ufr0PC\n \
                /gGMpOvI6iK8DDwBdE8ISrW+XkgixSnPBZcYrhKnLi3zvOg5yEMEBCqt9Wi/qorW\n \
                h4ZBqzVbVQJBAMgVq936/15lwJeSv6Z7Ssm7iVsLETr7xFt9m8CT3+FykrtNBZQx\n \
                rOm/daLfyTjXNsv0EaePVF6xCfyuQ7698ZUCQBeqsb9L4xySDki8i6/86GewtDb6\n \
                kX8hSuBzMnsEwUAryo/puE3msOqvItlJeQ9A0jZVQV52+OB05EoRc1FljHECQCDT\n \
                bV79zuetyesUKF0n3R07p01Ig4spww0/jk4J9LEIGwqfmEq326Z9ws716A1rQZI0\n \
                eLEE0tK2OO07qeGhSAECQEXbD/vOhPYzpME56uyev9hNBm61k4Uc4JDpq6yz81OB\n \
                +NMBbLi1tT4RBVxJKPD38CFKR0umqzVRygAl8PuOECY=\n \
                -----END RSA PRIVATE KEY-----').encode())

            try:
                password = rsa.decrypt(base64.b64decode(password), private_key)
            except DecryptionError:
                return error_json_response('Wrong password. Please try again.')

            user = auth.authenticate(username=username, password=password)

            if user is not None:  # and user.is_active:
                auth.login(request, user)
                # is_admin = user.is_staff or user.is_superuser
                prof = prof_manager.get_prof_by_username(user.uname)
                is_prof = len(prof) > 0
                ta = TA_manager.get_TA_by_username(user.uname)
                is_ta = len(ta) > 0
                is_admin = True
                return success_json_response({
                    'user': {
                        'username': request.user.uname,
                        'name': request.user.name,
                        'isAdmin': is_admin,
                        'isProf': is_prof,
                        'isTA': is_ta
                    }
                })
            else:
                return error_json_response('Wrong password. Please try again.')
        else:
            return error_json_response('Invalid username')

    return error_json_response('User not logged in.')
Beispiel #21
0
def get_students_noattend_by_coursecode(request, code):
    students = student_manager.get_student_enrolledbutnotattend_by_coursecode(
        code)
    return success_json_response({'students': students})
Beispiel #22
0
def add_TA_to_tut_by_uname_code_group_num(request, uname, code, group_num):
    TA = TA_manager.add_TA_to_tut_by_uname_code_group_num(
        uname, code, group_num)
    return success_json_response({'TA': TA})
Beispiel #23
0
def approve_requests(request, uname, code):
    student = student_manager.approve_requests(uname, code)
    return success_json_response({'student': student})
Beispiel #24
0
def retrieve_attendance_by_uname_code_group_num(request, uname, code,
                                                group_num):
    attendances = tutorial_manager.retrieve_attendance_by_uname_code_group_num(
        uname, code, group_num)
    return success_json_response({'attendances': attendances})
Beispiel #25
0
def add_ta_by_uname_coursecode_group(request, uname, code):
    ta = student_manager.add_ta_by_uname_coursecode_group(uname, code)
    return success_json_response({'ta': ta})
Beispiel #26
0
def get_tutorials_by_student(request, username):
    tutorials = tutorial_manager.get_tutorials_by_student(username)
    return success_json_response({'tutorials': tutorials})
Beispiel #27
0
def get_students_by_coursecode_and_status(request, code, status):
    students = student_manager.get_students_by_coursecode_and_status(
        code, status)
    return success_json_response({'students': students})
Beispiel #28
0
def get_TAs_notincurtut_by_code_group_num(request, code, group_num):
    TAs = TA_manager.get_TAs_notincurtut_by_code_group_num(code, group_num)
    return success_json_response({'TAs': TAs})
Beispiel #29
0
def get_tutorials_by_coursecode(request, code):
    tutorial = tutorial_manager.get_tutorials_by_coursecode(code)
    return success_json_response({'tutorials': tutorial})
Beispiel #30
0
def get_TAs_by_coursecode_and_groupnum(request, code, group_num):
    TAs = TA_manager.get_TAs_by_coursecode_and_groupnum(code, group_num)
    return success_json_response({'TAs': TAs})