def exam_enrollment_form(request, offer_year_id): try: stud = student.find_by_user(request.user) except MultipleObjectsReturned: return dash_main_view.show_multiple_registration_id_error(request) off_year = offer_year.find_by_id(offer_year_id) if request.method == 'POST': return _process_exam_enrollment_form_submission(off_year, request, stud) else: return _get_exam_enrollment_form(off_year, request, stud)
def home(request): try: student = student_mdl.find_by_user(request.user) except MultipleObjectsReturned: logger.exception('User {} returned multiple students.'.format(request.user.username)) return dash_main_view.show_multiple_registration_id_error(request) if student: json_message = _make_registration_json_message(student.registration_id) attestation_statuses_json_dict = student_attestation_status.fetch_json_attestation_statuses(json_message) else: attestation_statuses_json_dict = None data = _make_attestation_data(attestation_statuses_json_dict, student) return layout.render(request, "attestation_home_student.html", data)
def display_result_for_specific_student_performance(request, pk): """ Display the student result for a particular year and program. """ try: stud = student.find_by_user(request.user) except MultipleObjectsReturned: return dash_main_view.show_multiple_registration_id_error(request) stud_perf = mdl_performance.student_performance.find_actual_by_pk(pk) if not check_right_access(stud_perf, stud): raise PermissionDenied perf_data = __get_performance_data(stud_perf) return layout.render(request, "performance_result_student.html", perf_data)
def navigation(request, navigate_direct_to_form): try: stud = mdl_base.student.find_by_user(request.user) except MultipleObjectsReturned: return dash_main_view.show_multiple_registration_id_error(request) current_academic_year = mdl_base.academic_year.starting_academic_year() student_programs = _get_student_programs(stud, current_academic_year) if student_programs: if navigate_direct_to_form and len(student_programs) == 1: return _get_exam_enrollment_form(student_programs[0], request, stud) else: return layout.render(request, 'offer_choice.html', {'programs': student_programs, 'student': stud}) else: messages.add_message(request, messages.WARNING, _('no_offer_enrollment_found').format(current_academic_year)) return response.HttpResponseRedirect(reverse('dashboard_home'))
def display_results_by_acronym_and_year(request, acronym, academic_year): """ Display the reslt for a students , filter by acronym """ try: stud = student.find_by_user(request.user) except MultipleObjectsReturned: return dash_main_view.show_multiple_registration_id_error(request) cleaned_acronym = _clean_acronym(acronym) stud_perf = mdl_performance.student_performance.find_actual_by_student_and_offer_year( stud.registration_id, academic_year, cleaned_acronym) if not check_right_access(stud_perf, stud): raise PermissionDenied perf_data = __get_performance_data(stud_perf) return layout.render(request, "performance_result_student.html", perf_data)
def download_attestation(request, academic_year, attestation_type): try: student = student_mdl.find_by_user(request.user) except MultipleObjectsReturned: logger.exception('User {} returned multiple students.'.format(request.user.username)) return dash_main_view.show_multiple_registration_id_error(request) attestation_pdf = student_attestation.fetch_student_attestation(student.person.global_id, academic_year, attestation_type, request.user) if attestation_pdf: return _make_pdf_attestation(attestation_pdf, attestation_type) else: messages.add_message(request, messages.ERROR, _('error_fetching_attestation')) return home(request)
def view_performance_home(request): """ Display the academic programs of the student. """ try: stud = student.find_by_user(request.user) except MultipleObjectsReturned: return dash_main_view.show_multiple_registration_id_error(request) list_student_programs = None if stud: list_student_programs = get_student_programs_list(stud) data = { "student": stud, "programs": list_student_programs, "registration_states_to_show": offer_registration_state.STATES_TO_SHOW_ON_PAGE } return layout.render(request, "performance_home_student.html", data)