Ejemplo n.º 1
0
def __edit_if_post_method(request, tutor_id, context):
    if request.method == 'POST':
        try:
            tutor = __edit_tutor_attribute_request(request, tutor_id)
            service_controller.tutor_management_service().edit(tutor_id, tutor)
            context['saved'] = 'success'
            return tutor
        except Exception as e:
            print('This tutor was not registered')
            raise e
Ejemplo n.º 2
0
def delete_tutor(request, tutor_id):
    if request.user.has_perm('lms_app.delete_tutor'):
        try:
            service_controller.tutor_management_service().delete(tutor_id)
            return redirect('admin_details')
        except Tutor.DoesNotExist as e:
            print('This tutor does not exist!')
            raise e
    else:
        context = {'message': 'You are not authorised'}
        return render(request, 'error_message.html', context)
Ejemplo n.º 3
0
def edit_tutor(request):
    if request.user.has_perm('lms_app.change_tutor'):
        l_as_list = []
        for g in request.user.groups.all():
            l_as_list.append(g.name)

        username = request.user.username

        try:
            user_id = request.user.id
            tutor = service_controller.tutor_management_service().details(
                user_id)
            tutor_id = tutor.id
        except Tutor.DoesNotExist as e:
            print('You are not registered yet!')
            raise e

        context = {
            'tutor': tutor,
            'tutor_id': tutor_id,
            'l_as_list': l_as_list,
            'username': username,
        }

        edited_tutor = __edit_if_post_method(request, tutor_id, context)
        if edited_tutor is not None:
            context['tutor'] = edited_tutor
            return redirect('edit_tutor')
        return render(request, 'tutor/edit_tutor.html', context)
    else:
        context = {'message': 'You are not authorised'}
        return render(request, 'error_message.html', context)
Ejemplo n.º 4
0
def list_assessments_for_tutor(request):
    if request.user.has_perm('lms_app.view_assessment'):
        l_as_list = []
        for g in request.user.groups.all():
            l_as_list.append(g.name)
        username = request.user.username
        user_id = request.user.id
        tutor = service_controller.tutor_management_service().details(user_id)
        tutor_id = tutor.id
        assessments = service_controller.assessment_management_service(
        ).list_assessment_for_tutor(tutor_id)
        assessment_len = len(assessments)

        context = {
            'username': username,
            'assessments': assessments,
            'tutor_id': tutor_id,
            'presently': 'Assessments',
            'assessment_len': assessment_len,
            'l_as_list': l_as_list,
        }
        return render(request, 'tutor/tutor_assessments.html', context)
    else:
        context = {'message': 'You are not authorised'}
        return render(request, 'error_message.html', context)
Ejemplo n.º 5
0
def assessments_list(request):
    if request.method == 'GET':
        if request.user.student_set.exists():
            user_id = request.user.id
            student = service_controller.student_management_service().details(
                user_id)
            student_id = student.id
            assessments = service_controller.assessment_management_service(
            ).list_assessment_for_student(student_id)

            serializer = Assessments(assessments, many=True)
            json_data = serializer.data
            return Response(json_data)

        elif request.user.tutor_set.exists():
            user_id = request.user.id
            tutor = service_controller.tutor_management_service().details(
                user_id)
            tutor_id = tutor.id
            assessments = service_controller.assessment_management_service(
            ).list_assessment_for_tutor(tutor_id)
            serializer = Assessments(assessments, many=True)
            json_data = serializer.data
            return Response(json_data)
        else:
            assessments = service_controller.assessment_management_service(
            ).list()
            serializer = AdminAssessments(assessments, many=True)
            json_data = serializer.data
            return Response(json_data)
Ejemplo n.º 6
0
def apply_for_a_course(request, course_id):
    if request.user.has_perm('lms_app.add_apply'):

        l_as_list = []
        for g in request.user.groups.all():
            l_as_list.append(g.name)

        username = request.user.username
        user_id = request.user.id
        tutor_id = service_controller.tutor_management_service().details(user_id).id

        context = {
            'username': username,
            'l_as_list': l_as_list,
        }

        appoint = __create_if_post_method(request, course_id, tutor_id, context)
        if appoint == 1:
            __create_if_post_method(request, course_id, tutor_id, context)
            if request.method == 'POST':
                return redirect('tutor_dashboard')
        else:
            return render(request, 'enrollment/error_message.html', context)

    else:
        context = {
            'message': 'You are not authorised'
        }
        return render(request, 'error_message.html', context)
Ejemplo n.º 7
0
def active_assessments(request):
    if request.method == 'GET':
        if request.user.student_set.exists():
            user_id = request.user.id
            student = service_controller.student_management_service().details(
                user_id)
            student_id = student.id
            assessments = service_controller.assessment_management_service(
            ).list_assessment_for_student(student_id)
            assessment_listing: List = []
            for assessment in assessments:
                if assessment.status != 0:
                    assessment_listing.append(assessment)
            serializer = Assessments(assessment_listing, many=True)
            json_data = serializer.data
            return Response(json_data)

        elif request.user.tutor_set.exists():
            user_id = request.user.id
            tutor = service_controller.tutor_management_service().details(
                user_id)
            tutor_id = tutor.id
            assessments = service_controller.assessment_management_service(
            ).list_assessment_for_tutor(tutor_id)
            assessment_listing: List = []
            for assessment in assessments:
                if assessment.status != 0:
                    assessment_listing.append(assessment)
            serializer = Assessments(assessment_listing, many=True)
            json_data = serializer.data
            return Response(json_data)
Ejemplo n.º 8
0
def __create_if_post_method(request, context):
    if request.method == 'POST':
        try:
            tutor = __set_tutor_attribute_request(request)
            password = tutor.password
            confirm_password = tutor.confirm_password
            if password == confirm_password:
                tutor.registration_number = str(uuid.uuid4()).replace(
                    '-', '')[0:10].upper()
                service_controller.tutor_management_service().register(tutor)
                context['saved'] = 'success'
                return tutor
            else:
                context['saved'] = 'fail'
        except Exception as e:
            print('This Tutor was not registered')
            raise e
Ejemplo n.º 9
0
def courses_for_tutor(request):
    user_id = request.user.id
    tutor = service_controller.tutor_management_service().details(user_id)
    tutor_id = tutor.id
    appointments = service_controller.appointment_management_service(
    ).list_appoint_for_tutor(tutor_id)
    serializer = Appointments(appointments, many=True)
    json_data = serializer.data
    return Response(json_data)
Ejemplo n.º 10
0
def total_student_under_tutor(request):
    if request.method == 'GET':
        user_id = request.user.id
        tutor = service_controller.tutor_management_service().details(user_id=user_id)
        tutor_id = tutor.id
        enrollments = service_controller.enrollment_management_service().list()
        serializer = Enrollments(enrollments, many=True)
        json_data = serializer.data
        return Response(json_data)
Ejemplo n.º 11
0
def appointment_details(request):
    username = request.user.username

    l_as_list = []
    for g in request.user.groups.all():
        l_as_list.append(g.name)

    user_id = request.user.id
    tutor_id = service_controller.tutor_management_service().details(user_id)

    appointment = service_controller.appointment_management_service().details(
        tutor_id)
    context = {}
    return render(request, '', context)
Ejemplo n.º 12
0
def tutor_details_for_admin(request, tutor_id):
    if request.user.has_perm('lms_app.view_tutor'):
        l_as_list = []
        for g in request.user.groups.all():
            l_as_list.append(g.name)

        username = request.user.username
        tutor_ = Tutor.objects.get(id=tutor_id)
        tutor_id = tutor_.id

        user_id = tutor_.user.id
        tutor = service_controller.tutor_management_service().details(user_id)
        appointments = service_controller.appointment_management_service(
        ).list_appoint_for_tutor(tutor_id)
        appointment_len = len(appointments)
        assessments = service_controller.assessment_management_service(
        ).list_assessment_for_tutor(tutor_id)
        assessment_len = len(assessments)
        questions = service_controller.question_management_service(
        ).list_question_for_tutor(tutor_id)
        question_len = len(questions)

        sittings = service_controller.sitting_management_service().list()
        sitting_list = []

        for sitting in sittings:
            for assessment in assessments:
                if assessment.id == sitting.assessment_id:
                    sitting_list.append(sitting)

        sitting_len = len(sitting_list)

        context = {
            'tutor': tutor,
            'appointments': appointments,
            'assessments': assessments,
            'questions': questions,
            'sitting_list': sitting_list,
            'appointment_len': appointment_len,
            'assessment_len': assessment_len,
            'question_len': question_len,
            'sitting_len': sitting_len,
            'username': username,
            'l_as_list': l_as_list,
        }
        return render(request, 'tutor/tutor_profile.html', context)
    else:
        context = {'message': 'You are not authorised'}
        return render(request, 'error_message.html', context)
Ejemplo n.º 13
0
def list_tutors(request):
    if request.user.has_perm('lms_app.view_tutor'):
        l_as_list = []
        for g in request.user.groups.all():
            l_as_list.append(g.name)

        tutors = service_controller.tutor_management_service().list()
        context = {
            'tutors': tutors,
            'l_as_list': l_as_list,
        }
        return render(request, 'tutor/list_tutor.html', context)
    else:
        context = {'message': 'You are not authorised'}
        return render(request, 'error_message.html', context)
Ejemplo n.º 14
0
def tutor_questions(request):
    if request.method == 'GET':
        if request.user.tutor_set.exists():
            user_id = request.user.id
            tutor = service_controller.tutor_management_service().details(user_id)
            tutor_id = tutor.id
            questions = service_controller.question_management_service().list_question_for_tutor(tutor_id)
            serializer = TutorQuestionsSerializer(questions, many=True)
            json_data = serializer.data
            return Response(json_data)

        elif request.user.adminuser_set.exists():
            questions = service_controller.question_management_service().list()
            serializer = QuestionSerializer(questions, many=True)
            json_data = serializer.data
            return Response(json_data)
Ejemplo n.º 15
0
def list_of_late_submissions_for_tutors(request):
    if request.method == 'GET':
        user_id = request.user.id
        tutor = service_controller.tutor_management_service().details(user_id)
        tutor_id = tutor.id
        assessments = service_controller.assessment_management_service(
        ).list_assessment_for_tutor(tutor_id)
        sittings = service_controller.sitting_management_service().list()
        sitting_list: List = []

        for sitting in sittings:
            for assessment in assessments:
                if assessment.date_due <= sitting.date_submitted:
                    if assessment.time_due <= sitting.time_submitted:
                        sitting_list.append(sitting)

        serializer = Submissions(sitting_list, many=True)
        json_data = serializer.data
        return Response(json_data)
Ejemplo n.º 16
0
def submissions_for_tutors(request):
    if request.user.has_perm('lms_app.view_sitting'):
        l_as_list = []
        for g in request.user.groups.all():
            l_as_list.append(g.name)

        username = request.user.username
        user_id = request.user.id
        tutor = service_controller.tutor_management_service().details(user_id)
        tutor_id = tutor.id
        context = {
            'tutor': tutor,
            'tutor_id': tutor_id,
            'l_as_list': l_as_list,
            'username': username,
        }
        return render(request, 'tutor/tutor_submissions.html', context)
    else:
        context = {'message': 'You are not authorised'}
        return render(request, 'error_message.html', context)
Ejemplo n.º 17
0
def list_submissions(request):
    if request.method == "GET":
        if request.user.student_set.exists():
            user_id = request.user.id
            student = service_controller.student_management_service().details(
                user_id=user_id)
            student_id = student.id
            sitting_list: List = service_controller.sitting_management_service(
            ).list_of_sitting_for_student_assessment(student_id)
            serializer = Submissions(sitting_list, many=True)
            json_data = serializer.data
            return Response(json_data)

        elif request.user.tutor_set.exists():
            user_id = request.user.id
            tutor = service_controller.tutor_management_service().details(
                user_id)
            tutor_id = tutor.id
            assessments = service_controller.assessment_management_service(
            ).list_assessment_for_tutor(tutor_id)
            sittings = service_controller.sitting_management_service().list()
            sitting_list: List = []

            for sitting in sittings:
                for assessment in assessments:
                    if assessment.id == sitting.assessment_id:
                        sitting_list.append(sitting)

            serializer = Submissions(sitting_list, many=True)
            json_data = serializer.data
            return Response(json_data)

        elif request.user.adminuser_set.exists():
            user_id = request.user.id
            admin = service_controller.admin_management_service().details(
                user_id=user_id)
            admin_id = admin.id
            sittings = service_controller.sitting_management_service().list()
            serializer = Submissions(sittings, many=True)
            json_data = serializer.data
            return Response(json_data)
Ejemplo n.º 18
0
def tutor_profile(request):
    if request.user.has_perm('lms_app.view_tutor'):
        l_as_list = []
        for g in request.user.groups.all():
            l_as_list.append(g.name)
        user_id = request.user.id

        username = request.user.username
        last_login = request.user.last_login
        tutor = service_controller.tutor_management_service().details(user_id)
        tutor_id = tutor.id
        context = {
            'tutor': tutor,
            'tutor_id': tutor_id,
            'username': username,
            'last_login': last_login,
            'l_as_list': l_as_list,
        }
        return render(request, 'tutor/tutor_dashboard.html', context)
    else:
        context = {'message': 'You are not authorised'}
        return render(request, 'error_message.html', context)
Ejemplo n.º 19
0
def start_appointment(request):
    if request.user.is_superuser:
        username = request.user.username

        l_as_list = []
        for g in request.user.groups.all():
            l_as_list.append(g.name)

        applications = service_controller.apply_management_service().list()
        courses = service_controller.course_management_service().list()
        tutors = service_controller.tutor_management_service().list()

        context = {
            'username': username,
            'l_as_list': l_as_list,
            'applications': applications,
            'courses': courses,
            'tutors': tutors,
        }
        return render(request, 'appointment/initiate_appointment.html',
                      context)
    else:
        context = {'message': 'You are not authorised'}
        return render(request, 'error_message.html', context)
Ejemplo n.º 20
0
def admin_details(request):
    if request.user.is_superuser:
        l_as_list = []
        for g in request.user.groups.all():
            l_as_list.append(g.name)
        user_id = request.user.id
        username = request.user.username

        admin = service_controller.admin_management_service().details(user_id)

        tutors = service_controller.tutor_management_service().list()
        tutor_len = len(tutors)

        students = service_controller.student_management_service().list()
        student_len = len(students)

        courses = service_controller.course_management_service().list()
        course_len = len(courses)

        applications = service_controller.apply_management_service().list()
        application_len = len(applications)

        appointments = service_controller.appointment_management_service(
        ).list()
        appointment_len = len(appointments)

        assessments = service_controller.assessment_management_service().list()
        assessment_len = len(assessments)

        enrollments = service_controller.enrollment_management_service().list()
        enrollment_len = len(enrollments)

        questions = service_controller.question_management_service().list()
        question_len = len(questions)

        sittings = service_controller.sitting_management_service().list()
        sitting_len = len(sittings)

        context = {
            'admin': admin,
            'tutors': tutors,
            'students': students,
            'courses': courses,
            'applications': applications,
            'appointments': appointments,
            'assessments': assessments,
            'enrollments': enrollments,
            'questions': questions,
            'sittings': sittings,
            'tutor_len': tutor_len,
            'student_len': student_len,
            'course_len': course_len,
            'appointment_len': appointment_len,
            'application_len': application_len,
            'assessment_len': assessment_len,
            'enrollment_len': enrollment_len,
            'question_len': question_len,
            'sitting_len': sitting_len,
            'username': username,
            'l_as_list': l_as_list,
        }
        return render(request, 'admin/admin_profile.html', context)
    else:
        context = {'message': 'You are not authorised!'}
        return render(request, 'error_message.html', context)
Ejemplo n.º 21
0
def list_all_tutor_api(request):
    if request.method == "GET":
        tutors = service_controller.tutor_management_service().list()
        serializer = Tutors(tutors, many=True)
        json_data = serializer.data
        return Response(json_data)
Ejemplo n.º 22
0
def course_details(request, course_id):
    l_as_list = []
    for g in request.user.groups.all():
        l_as_list.append(g.name)

    username = request.user.username
    course = service_controller.course_management_service().details(
        course_id=course_id)
    tutor_list = []
    student_list = []
    apply_list = []
    students_for_course = service_controller.student_management_service(
    ).list_student_for_course(course_id)
    tutor_for_course = service_controller.appointment_management_service(
    ).list_tutor_for_course_appointed(course_id)

    if 'students' in l_as_list:
        user_id = request.user.id
        student_id = service_controller.student_management_service().details(
            user_id).id

        for student in students_for_course:
            if student_id == student.id:
                student_list.append(student_id)

        enrollments = service_controller.enrollment_management_service(
        ).list_enrollment_for_student(student_id)
        if len(enrollments) == 0:
            enrollment = 0
        else:
            for enroll in enrollments:
                if course_id == enroll.course_id:
                    enrollment = enroll.id
                else:
                    enrollment = 0

        tutor_id = 0

    elif 'tutors' in l_as_list:
        user_id = request.user.id
        tutor_id = service_controller.tutor_management_service().details(
            user_id).id
        applications = service_controller.apply_management_service().list()

        for tutor in tutor_for_course:
            if tutor_id == tutor.tutors_id:
                tutor_list.append(tutor_id)

        for application in applications:
            if tutor_id == application.tutor_id and course_id == application.course_id:
                apply_list.append(tutor_id)

        student_id = 0
        enrollment = 0

    elif 'admin' in l_as_list:
        enrollment = 0
        student_id = 0
        tutor_id = 0

    elif l_as_list == None:
        enrollment = 0
        student_id = 0
        tutor_id = 0

    context = {
        'username': username,
        'l_as_list': l_as_list,
        'course': course,
        'student_list': student_list,
        'apply_list': apply_list,
        'student_id': student_id,
        'tutor_list': tutor_list,
        'tutor_id': tutor_id,
        'enrollment': enrollment,
    }
    return render(request, 'course/course_details.html', context)