def build_scores_sheet_attachment(list_exam_enrollments): name = "%s.pdf" % _('score(s) saved') mimetype = "application/pdf" content = paper_sheet.build_pdf( score_encoding_sheet.scores_sheet_data(list_exam_enrollments, tutor=None)) return (name, content, mimetype)
def get_json_data_scores_sheets(tutor_global_id): try: if isinstance(tutor_global_id, bytes): tutor_global_id = tutor_global_id.decode('utf-8') person = mdl.person.find_by_global_id(tutor_global_id) tutor = mdl.tutor.find_by_person(person) number_session = mdl.session_exam_calendar.find_session_exam_number() academic_yr = mdl.academic_year.current_academic_year() if tutor: exam_enrollments = list( mdl.exam_enrollment.find_for_score_encodings( number_session, tutor=tutor, academic_year=academic_yr)) return score_encoding_sheet.scores_sheet_data(exam_enrollments, tutor=tutor) else: return {} except (PsycopOperationalError, PsycopInterfaceError, DjangoOperationalError, DjangoInterfaceError): queue_exception_logger.error( 'Postgres Error during get_json_data_scores_sheets on global_id {} => retried' .format(tutor_global_id)) trace = traceback.format_exc() queue_exception_logger.error(trace) return get_json_data_scores_sheets(tutor_global_id) except Exception: logger.warning( '(Not PostgresError) during get_json_data_scores_sheets on global_id {}' .format(tutor_global_id)) trace = traceback.format_exc() logger.error(trace) return {} finally: close_old_connections()
def test_scores_sheet_deadline(self): exam_enrollments = ExamEnrollment.objects.all() data_computed = score_encoding_sheet.scores_sheet_data(exam_enrollments) # Check the deadline for enrolled/not enrolled students for enrollment in data_computed['learning_unit_years'][0]['programs'][0]['enrollments']: if enrollment['registration_id'] in (self.student_1.registration_id, self.student_2.registration_id, self.student_3.registration_id): self.assertEqual(enrollment['deadline'], self.deadline.strftime(str(_('date_format')))) else: self.assertEqual(enrollment['deadline'], '')
def notes_printing(request, learning_unit_year_id=None, tutor_id=None, offer_id=None): is_program_manager = mdl.program_manager.is_program_manager(request.user) scores_list_encoded = score_encoding_list.get_scores_encoding_list( user=request.user, learning_unit_year_id=learning_unit_year_id, tutor_id=tutor_id, offer_year_id=offer_id ) tutor = mdl.tutor.find_by_user(request.user) if not is_program_manager else None sheet_data = score_encoding_sheet.scores_sheet_data(scores_list_encoded.enrollments, tutor=tutor) return paper_sheet.print_notes(sheet_data)
def test_scores_sheet_data_no_decimal_scores(self): # Get all exam enrollments exam_enrollments = ExamEnrollment.objects.all() data_computed = score_encoding_sheet.scores_sheet_data(exam_enrollments) # Should be a dictionary self.assertIsInstance(data_computed, dict) # Publication date should be today self.assertEqual(data_computed['publication_date'], timezone.now().strftime("%-d/%-m/%Y")) self.assertEqual(len(data_computed['learning_unit_years']), 1) self.assertFalse(data_computed['learning_unit_years'][0]['decimal_scores']) # Check the score responsible and the address score_responsible = data_computed['learning_unit_years'][0]['scores_responsible'] self.assertEqual(score_responsible['first_name'], "Thomas") self.assertEqual(score_responsible['last_name'], "Durant") self.assertEqual(score_responsible['address']['city'], "Louvain-la-neuve")