def __edit_if_post_method(request, student_id, context): if request.method == 'POST': try: student = __edit_student_attribute_request(request, student_id) service_controller.student_management_service().edit(student_id, student) context['saved'] = 'success' return student except Exception as e: print('This Student was not registered') raise e
def delete_student(request, student_id): if request.user.has_perm('lms_app.delete_student'): try: service_controller.student_management_service().delete(student_id) return redirect('admin_details') except Student.DoesNotExist as e: print('This student does not exist!') raise e else: context={ 'message': 'You are not authorised' } return render(request, 'error_message.html', context)
def pending_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) sittings = service_controller.sitting_management_service( ).list_of_sitting_for_student_assessment(student_id) enrollments = service_controller.enrollment_management_service( ).list_enrollment_for_student(student_id) assessment_listing: ListAssessmentDto() = [] if sittings == []: serializer = PendingAssessments(assessments, many=True) json_data = serializer.data return Response(json_data) else: for assessment in assessments: for sitting in sittings: if assessment.id != sitting.assessment_id and assessment.status == True: assessment_listing.append(assessment) serializer = PendingAssessments(assessment_listing, many=True) json_data = serializer.data return Response(json_data)
def edit_student(request): if request.user.has_perm('lms_app.change_student'): l_as_list = [] for g in request.user.groups.all(): l_as_list.append(g.name) try: user_id = request.user.id student = service_controller.student_management_service().details(user_id) student_id = student.id except Student.DoesNotExist as e: print('You are not registered yet!') raise e context = { 'student': student, 'l_as_list': l_as_list, 'student_id': student_id, 'presently': 'User Profile', } edited_student = __edit_if_post_method(request, student_id, context) if edited_student is not None: context['student'] = edited_student messages.add_message(request, messages.SUCCESS, 'Successfully updated.') return redirect('edit_student') return render(request, 'student/edit_profile.html', context) else: context={ 'message': 'You are not authorised' } return render(request, 'error_message.html', context)
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)
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)
def student_profile(request): if request.user.has_perm('lms_app.view_student'): l_as_list = [] for g in request.user.groups.all(): l_as_list.append(g.name) username = request.user.username last_login = request.user.last_login user_id = request.user.id student = service_controller.student_management_service().details(user_id) student_id = student.id current_period = datetime.now() today_date = current_period.date() today_time = current_period.time() context = { 'student': student, 'username': username, 'l_as_list': l_as_list, 'presently': 'Dashboard', 'last_login': last_login, 'today_date': today_date, 'today_time': today_time, } return render(request, 'student/student_dashboard.html', context) else: context={ 'message': 'You are not authorised' } return render(request, 'error_message.html', context)
def list_enrollment_for_student(request): if request.user.has_perm('lms_app.view_enrollment'): 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 student = service_controller.student_management_service().details(user_id) student_id = student.id enrollments = service_controller.enrollment_management_service().list_enrollment_for_student(student_id) enrollment_len = len(enrollments) context = { 'username': username, 'l_as_list': l_as_list, 'enrollments': enrollments, 'enrollment_len': enrollment_len, 'student_id': student_id, 'presently': 'Courses', } return render(request, 'student/student_courses.html', context) else: context={ 'message': 'You are not authorised' } return render(request, 'error_message.html', context)
def __create_if_post_method(request, context): if request.method == 'POST': try: student = __set_student_attribute_request(request) password = student.password confirm_password = student.confirm_password if password == confirm_password: student.registration_number = str(uuid.uuid4()).replace('-', '')[0:10].upper() service_controller.student_management_service().register(student) context['saved'] = 'success' return student else: context['saved'] = 'fail' except Exception as e: print('This Student was not registered') raise e
def __set_enrollment_attribute_request(request: HttpRequest): initiate_enrollment_dto = InitiateEnrollmentDto() user_id = request.user.id student = service_controller.student_management_service().details(user_id) student_id = student.id initiate_enrollment_dto.student_id = student_id initiate_enrollment_dto.date_enrolled = datetime.date.today() return initiate_enrollment_dto
def total_enrollments(request): if request.method == "GET": user_id = request.user.id student = service_controller.student_management_service().details(user_id) student_id = student.id enrollments = service_controller.enrollment_management_service().list_enrollment_for_student(student_id) serializer = Enrollments(enrollments, many=True) json_data = serializer.data return Response(json_data)
def new_sitting(request, assessment_id): if request.user.has_perm('lms_app.add_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 student_id = service_controller.student_management_service().details( user_id=user_id).id assessment = service_controller.assessment_management_service( ).details(assessment_id) questions = service_controller.question_management_service( ).list_for_assessment(assessment_id) sitting_question_list = [] sitting_answer_list = [] i = 1 list_qns = [] for question in questions: if assessment_id == question.assessment_id: sitting_question_list.append(question.id) list_qns.append(i) sitting_answer_list.append(question.answer) i = i + 1 question_count = len(questions) paginator = Paginator(questions, 1) page_number = request.GET.get('page') page_obj = paginator.get_page(page_number) context = { 'username': username, 'assessment': assessment, 'assessment_id': assessment_id, 'question': questions, 'sitting_question_list': sitting_question_list, 'l_as_list': l_as_list, 'question_count': question_count, 'list_qns': list_qns, 'questions': page_obj, 'qns_page': page_number, } sitting = __new_sitting_method(request, sitting_answer_list, sitting_question_list, student_id, assessment_id, context) if request.method == 'POST': sitting_id = sitting.id return redirect('grade_test', sitting_id) return render(request, 'api_question.html', context) else: context = {'message': 'You are not authorised'} return render(request, 'error_message.html', context)
def student_details_for_admin(request, student_id): if request.user.has_perm('lms_app.view_student'): l_as_list = [] for g in request.user.groups.all(): l_as_list.append(g.name) username = request.user.username student_ = Student.objects.get(id=student_id) student_id = student_.id user_id = student_.user.id student = service_controller.student_management_service().details(user_id) enrollments = service_controller.enrollment_management_service().list_enrollment_for_student(student_id) enrollment_len = len(enrollments) # Getting all Assessments for Student assessments = service_controller.assessment_management_service().list_assessment_for_student(student_id) assessment_len = len(assessments) # Getting all sittings and attempted assessments by Student sittings = service_controller.sitting_management_service().list_of_sitting_for_student_assessment(student_id) sitting_len = len(sittings) sitting_list = [] for sitting in sittings: for assessment in assessments: if sitting.assessment_id == assessment.id: sitting_list.append(sitting.assessment_id) context = { 'student': student, 'enrollments': enrollments, 'enrollment_len': enrollment_len, 'sitting_len': sitting_len, 'sitting_list': sitting_list, 'assessments': assessments, 'assessment_len': assessment_len, 'username': username, 'sittings': sittings, 'l_as_list': l_as_list, } return render(request, 'student/student_profile.html', context) else: context={ 'message': 'You are not authorised' } return render(request, 'error_message.html', context)
def list_student(request): if request.user.has_perm('lms_app.view_student'): l_as_list = [] for g in request.user.groups.all(): l_as_list.append(g.name) username = request.user.username students = service_controller.student_management_service().list() context = { 'students': students, 'username': username, 'l_as_list': l_as_list, } return render(request, 'student/list_student.html', context) else: context={ 'message': 'You are not authorised' } return render(request, 'error_message.html', context)
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)
def todo_list(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 student = service_controller.student_management_service().details(user_id) student_id = student.id context = { 'username': username, 'student_id': student_id, 'presently': 'To-Do List', 'l_as_list': l_as_list, } return render(request, 'student/todo_assessments.html', context) else: context = { 'message': 'You are not authorised' } return render(request, 'error_message.html', context)
def list_assessments_for_students(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 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_len = len(assessments) sittings = service_controller.sitting_management_service( ).list_of_sitting_for_student_assessment(student_id) sitting_list = [] for sitting in sittings: for assessment in assessments: if sitting.assessment_id == assessment.id: sitting_list.append(sitting.assessment_id) context = { 'username': username, 'assessments': assessments, 'student_id': student_id, 'presently': 'Assessments', 'sitting_list': sitting_list, 'assessment_len': assessment_len, 'l_as_list': l_as_list, } return render(request, 'student/student_assessments.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_all_students_api(request): if request.method == "GET": students = service_controller.student_management_service().list() serializer = Students(students, 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)