def delete_appointment(request, appointment_id): if request.user.has_perm('lms_app.delete_appointment'): try: service_controller.appointment_management_service().delete( appointment_id) return redirect('list_tutor') except Appointment.DoesNotExist as e: print('This appointment does not exist!') return Http404 else: context = {'message': 'You are not authorised'} return render(request, 'error_message.html', context)
def create_assessment(request): if request.user.has_perm('lms_app.add_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 = Tutor.objects.get(user_id=user_id) tutors_id = tutor.id appointments = service_controller.appointment_management_service( ).list() course_list: List[ListCourseDto] = [] for appointment in appointments: if tutors_id == appointment.tutors_id: course = ListCourseDto() course.course_id = appointment.course_id course.course_title = appointment.course_title course_list.append(course) context = { 'username': username, 'course_list': course_list, 'l_as_list': l_as_list, } __initiate_assessment_method(request, context) if request.method == 'POST': return redirect('list_assessment') return render(request, 'assessment/create_assessment.html', context) else: context = {'message': 'You are not authorised'} return render(request, 'error_message.html', context)
def list_appointment_for_tutor(request): if request.user.has_perm('lms_app.view_appointment'): 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 = service_controller.tutor_management_service().details(user_id) tutor_id = tutor.id appointments = service_controller.appointment_management_service( ).list_appoint_for_tutor(tutor_id) appointment_len = len(appointments) context = { 'l_as_list': l_as_list, 'username': username, 'appointments': appointments, 'appointment_len': appointment_len, 'tutor_id': tutor_id, } return render(request, 'tutor/tutor_courses.html', context) else: context = {'message': 'You are not authorised'} return render(request, 'error_message.html', context)
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)
def __initiate_appointment_method(request, course_id, tutor_id, apply_id, context): try: appointment = __set_appointment_attribute_request(request) appointment.tutors_id = tutor_id appointment.course_id = course_id tutor_id = appointment.tutors_id if Appointment.objects.filter(course_id=course_id, tutors_id=tutor_id).exists(): context['saved'] = 'failed' context[ 'message'] = 'The tutor has already been appointed for the chosen course. Please select another course!' return 0 else: service_controller.appointment_management_service().register( appointment) context['saved'] = 'success' return 1 except Exception as e: print('This Course-Appointment could not be completed') raise e
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)
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)
def list_appointments(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) appointments = service_controller.appointment_management_service( ).list() context = { 'l_as_list': l_as_list, 'username': username, 'appointments': appointments, } return render(request, 'appointment/list_appointment.html', context) else: context = {'message': 'You are not authorised'} return render(request, 'error_message.html', context)
def list_tutor_for_appointment(request, course_id): 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) course = service_controller.course_management_service().details( course_id) appointments = service_controller.appointment_management_service( ).list_tutor_for_course_appointed(course_id) context = { 'l_as_list': l_as_list, 'username': username, 'appointments': appointments, 'course': course, } return render(request, 'appointment/list_appointment.html', context) else: context = {'message': 'You are not authorised'} return render(request, 'error_message.html', context)
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)
def list_appointments_api(request): appointments = service_controller.appointment_management_service().list() serializer = Appointments(appointments, many=True) json_data = serializer.data return Response(json_data)
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)