def save(self, commit=True): if hasattr(self.instance, 'learning_unit_year'): # When we save a creation_proposal, we do not need to save the initial_data if self.instance.type != ProposalType.CREATION.name and not self.instance.initial_data: self.instance.initial_data = copy_learning_unit_data( get_by_id(self.instance.learning_unit_year.id)) return super().save(commit)
def tutoring_learning_unit_save(request): tutoring_learning_unit_year_id = request.POST.get( 'tutoring_learning_unit_year_id') mandate_id = request.POST.get('mandate_id') learning_unit_year_id = request.POST.get('learning_unit_year_id') if tutoring_learning_unit_year_id: current_tutoring_learning_unit = mdl.tutoring_learning_unit_year.find_by_id( tutoring_learning_unit_year_id) else: current_tutoring_learning_unit = None form = TutoringLearningUnitForm(data=request.POST, instance=current_tutoring_learning_unit) if form.is_valid(): this_mandate = assistant_mandate.find_mandate_by_id(mandate_id) current_tutoring_learning_unit = form.save(commit=False) if not learning_unit_year_id: msg = _("must_enter_learning_unit_year") form.add_error(None, msg) else: this_learning_unit_year = learning_unit_year.get_by_id( learning_unit_year_id) current_tutoring_learning_unit.learning_unit_year = this_learning_unit_year current_tutoring_learning_unit.mandate = this_mandate current_tutoring_learning_unit.save() return HttpResponseRedirect(reverse('mandate_learning_units')) return render(request, "tutoring_learning_unit_year.html", { 'form': form, 'mandate_id': mandate_id })
def get_scores_encoding_list(user, **kwargs): current_academic_year = academic_year.current_academic_year() current_number_session = session_exam_calendar.find_session_exam_number() is_program_manager = program_manager.is_program_manager(user) learning_unit_year_id = kwargs.get('learning_unit_year_id') offer_year_id = kwargs.get('offer_year_id') tutor_id = kwargs.get('tutor_id') enrollments_ids = kwargs.get('enrollments_ids') justification = kwargs.get('justification') only_enrolled = _need_to_filter_students_enrolled_to_exam( justification, kwargs) if is_program_manager: professor = tutor.find_by_id(tutor_id) if tutor_id else None offers_year = [offer_year.find_by_id(offer_year_id)] if offer_year_id else \ list(offer_year.find_by_user(user, academic_yr=current_academic_year)) enrollments = exam_enrollment.find_for_score_encodings( academic_year=current_academic_year, session_exam_number=current_number_session, learning_unit_year_id=learning_unit_year_id, tutor=professor, offers_year=offers_year, registration_id=kwargs.get('registration_id'), student_last_name=kwargs.get('student_last_name'), student_first_name=kwargs.get('student_first_name'), justification=justification, only_enrolled=only_enrolled, ) else: professor = tutor.find_by_user(user) enrollments = exam_enrollment.find_for_score_encodings( academic_year=current_academic_year, session_exam_number=current_number_session, learning_unit_year_id=learning_unit_year_id, tutor=professor, only_enrolled=only_enrolled) # Want a subset of exam enrollment list if enrollments_ids: enrollments = enrollments.filter(id__in=enrollments_ids) # Append deadline/deadline_tutor for each exam enrollments enrollments = _append_session_exam_deadline(list(enrollments)) enrollments = sort_encodings(enrollments) return ScoresEncodingList( **{ 'academic_year': current_academic_year, 'number_session': current_number_session, 'learning_unit_year': learning_unit_year.get_by_id(learning_unit_year_id ) if learning_unit_year_id else None, 'enrollments': enrollments })
def get_scores_encoding_list(user, **kwargs): current_academic_year = academic_year.current_academic_year() current_number_session = session_exam_calendar.find_session_exam_number() is_program_manager = program_manager.is_program_manager(user) learning_unit_year_id = kwargs.get('learning_unit_year_id') offer_year_id = kwargs.get('offer_year_id') tutor_id = kwargs.get('tutor_id') enrollments_ids = kwargs.get('enrollments_ids') justification = kwargs.get('justification') only_enrolled = _need_to_filter_students_enrolled_to_exam(justification, kwargs) if is_program_manager: professor = tutor.find_by_id(tutor_id) if tutor_id else None offers_year = [offer_year.find_by_id(offer_year_id)] if offer_year_id else \ list(offer_year.find_by_user(user, academic_yr=current_academic_year)) enrollments = exam_enrollment.find_for_score_encodings( academic_year=current_academic_year, session_exam_number=current_number_session, learning_unit_year_id=learning_unit_year_id, tutor=professor, offers_year=offers_year, registration_id=kwargs.get('registration_id'), student_last_name=kwargs.get('student_last_name'), student_first_name=kwargs.get('student_first_name'), justification=justification, only_enrolled=only_enrolled, ) else: professor = tutor.find_by_user(user) enrollments = exam_enrollment.find_for_score_encodings( academic_year=current_academic_year, session_exam_number=current_number_session, learning_unit_year_id=learning_unit_year_id, tutor=professor, only_enrolled=only_enrolled ) # Want a subset of exam enrollment list if enrollments_ids: enrollments = enrollments.filter(id__in=enrollments_ids) # Append deadline/deadline_tutor for each exam enrollments enrollments = _append_session_exam_deadline(list(enrollments)) enrollments = sort_encodings(enrollments) return ScoresEncodingList(**{ 'academic_year': current_academic_year, 'number_session': current_number_session, 'learning_unit_year': learning_unit_year.get_by_id(learning_unit_year_id) if learning_unit_year_id else None, 'enrollments': enrollments })
def _get_data_from_initial_data(initial_data): learning_unit_yr = get_by_id(initial_data.get('learning_unit_year')['id']) requirement_entity = find_by_id(initial_data.get('entities')['REQUIREMENT_ENTITY']) allocation_entity = find_by_id(initial_data.get('entities')['ALLOCATION_ENTITY']) add1_requirement_entity = find_by_id(initial_data.get('entities')['ADDITIONAL_REQUIREMENT_ENTITY_1']) add2_requirement_entity = find_by_id(initial_data.get('entities')['ADDITIONAL_REQUIREMENT_ENTITY_2']) campus = find_campus_by_id(initial_data.get('learning_unit_year')['campus']) organization = get_organization_from_learning_unit_year(learning_unit_yr) language = find_language_by_id(initial_data.get('learning_unit_year')['language']) lu_initial = initial_data.get('learning_unit', None) luy_initial = initial_data.get('learning_unit_year', None) lcy_initial = initial_data.get('learning_container_year', None) data = [ str(_('Initial data')), luy_initial['acronym'], learning_unit_yr.academic_year.name, dict(LearningContainerYearType.choices())[lcy_initial['container_type']] if lcy_initial['container_type'] else '-', translate_status(luy_initial['status']), learning_unit_yr.get_subtype_display(), get_translation(luy_initial['internship_subtype']), volume_format(luy_initial['credits']), language.name if language else EMPTY_VALUE, dict(PERIODICITY_TYPES)[luy_initial['periodicity']] if luy_initial['periodicity'] else BLANK_VALUE, get_translation(luy_initial['quadrimester']), get_translation(luy_initial['session']), get_representing_string(lcy_initial['common_title']), get_representing_string(luy_initial['specific_title']), get_representing_string(lcy_initial['common_title_english']), get_representing_string(luy_initial['specific_title_english']), requirement_entity.most_recent_acronym if requirement_entity else BLANK_VALUE, allocation_entity.most_recent_acronym if allocation_entity else BLANK_VALUE, add1_requirement_entity.most_recent_acronym if add1_requirement_entity else BLANK_VALUE, add2_requirement_entity.most_recent_acronym if add2_requirement_entity else BLANK_VALUE, _('Yes') if luy_initial['professional_integration'] else _('No'), organization.name if organization else BLANK_VALUE, campus if campus else BLANK_VALUE, get_representing_string(lu_initial['faculty_remark']), get_representing_string(lu_initial['other_remark']), _('Yes') if lcy_initial.get('team') else _('No'), _('Yes') if lcy_initial.get('is_vacant') else _('No'), dict(vacant_declaration_type.DECLARATION_TYPE)[lcy_initial.get('type_declaration_vacant')] if lcy_initial.get( 'type_declaration_vacant') else BLANK_VALUE, dict(attribution_procedure.ATTRIBUTION_PROCEDURES)[luy_initial.get('attribution_procedure')] if luy_initial.get( 'attribution_procedure') else BLANK_VALUE, ] return _get_data_from_components_initial_data(data, initial_data)
def save(self): trans_text = self._get_or_create_translated_text() start_luy = learning_unit_year.get_by_id(trans_text.reference) reference_ids = [start_luy.id] if is_pedagogy_data_must_be_postponed(start_luy): reference_ids += [luy.id for luy in start_luy.find_gt_learning_units_year()] for reference_id in reference_ids: if trans_text.text_label.label in CMS_LABEL_PEDAGOGY_FR_ONLY: # In case of FR only CMS field, also save text to corresponding EN field languages = [language[0] for language in settings.LANGUAGES] else: languages = [trans_text.language] self._update_or_create_translated_texts(languages, reference_id, trans_text)
def tutoring_learning_unit_save(request): tutoring_learning_unit_year_id = request.POST.get('tutoring_learning_unit_year_id') mandate_id = request.POST.get('mandate_id') learning_unit_year_id = request.POST.get('learning_unit_year_id') if tutoring_learning_unit_year_id: current_tutoring_learning_unit = mdl.tutoring_learning_unit_year.find_by_id(tutoring_learning_unit_year_id) else: current_tutoring_learning_unit = None form = TutoringLearningUnitForm(data=request.POST, instance=current_tutoring_learning_unit) if form.is_valid(): this_mandate = assistant_mandate.find_mandate_by_id(mandate_id) current_tutoring_learning_unit = form.save(commit=False) if not learning_unit_year_id: msg = _("must_enter_learning_unit_year") form.add_error(None, msg) else: this_learning_unit_year = learning_unit_year.get_by_id(learning_unit_year_id) current_tutoring_learning_unit.learning_unit_year = this_learning_unit_year current_tutoring_learning_unit.mandate = this_mandate current_tutoring_learning_unit.save() return HttpResponseRedirect(reverse('mandate_learning_units')) return render(request, "tutoring_learning_unit_year.html", {'form': form, 'mandate_id': mandate_id})
def search_by_learning_unit_year_pk_this_academic_year(learning_unit_year_pk): a_learning_unit_year = learning_unit_year.get_by_id(learning_unit_year_pk) attributions = Attribution.objects.filter( learning_unit_year=a_learning_unit_year, learning_unit_year__academic_year=current_academic_year()) return attributions
def _get_volumes_from_db(learning_unit_year_id): luy = learning_unit_year.get_by_id(learning_unit_year_id) return learning_unit_year_with_context.get_with_context( learning_container_year_id=luy.learning_container_year)
def _get_data_from_initial_data(initial_data): learning_unit_yr = get_by_id(initial_data.get('learning_unit_year')['id']) requirement_entity = find_by_id( initial_data.get('entities')['REQUIREMENT_ENTITY']) allocation_entity = find_by_id( initial_data.get('entities')['ALLOCATION_ENTITY']) add1_requirement_entity = find_by_id( initial_data.get('entities')['ADDITIONAL_REQUIREMENT_ENTITY_1']) add2_requirement_entity = find_by_id( initial_data.get('entities')['ADDITIONAL_REQUIREMENT_ENTITY_2']) campus = find_campus_by_id( initial_data.get('learning_unit_year')['campus']) organization = get_organization_from_learning_unit_year(learning_unit_yr) language = find_language_by_id( initial_data.get('learning_unit_year')['language']) lu_initial = initial_data.get('learning_unit', None) luy_initial = initial_data.get('learning_unit_year', None) lcy_initial = initial_data.get('learning_container_year', None) data = [ str(_('Initial data')), luy_initial['acronym'], learning_unit_yr.academic_year.name, dict( LearningContainerYearType.choices())[lcy_initial['container_type']] if lcy_initial['container_type'] else '-', translate_status(luy_initial['status']), learning_unit_yr.get_subtype_display(), get_translation(luy_initial['internship_subtype']), volume_format(luy_initial['credits']), language.name if language else EMPTY_VALUE, dict(PERIODICITY_TYPES)[luy_initial['periodicity']] if luy_initial['periodicity'] else BLANK_VALUE, get_translation(luy_initial['quadrimester']), get_translation(luy_initial['session']), get_representing_string(lcy_initial['common_title']), get_representing_string(luy_initial['specific_title']), get_representing_string(lcy_initial['common_title_english']), get_representing_string(luy_initial['specific_title_english']), requirement_entity.most_recent_acronym if requirement_entity else BLANK_VALUE, allocation_entity.most_recent_acronym if allocation_entity else BLANK_VALUE, add1_requirement_entity.most_recent_acronym if add1_requirement_entity else BLANK_VALUE, add2_requirement_entity.most_recent_acronym if add2_requirement_entity else BLANK_VALUE, _('Yes') if luy_initial['professional_integration'] else _('No'), organization.name if organization else BLANK_VALUE, campus if campus else BLANK_VALUE, get_representing_string(lu_initial['faculty_remark']), get_representing_string(lu_initial['other_remark']), _('Yes') if lcy_initial.get('team') else _('No'), _('Yes') if lcy_initial.get('is_vacant') else _('No'), dict(vacant_declaration_type.DECLARATION_TYPE)[lcy_initial.get( 'type_declaration_vacant')] if lcy_initial.get('type_declaration_vacant') else BLANK_VALUE, dict(attribution_procedure.ATTRIBUTION_PROCEDURES)[luy_initial.get( 'attribution_procedure')] if luy_initial.get('attribution_procedure') else BLANK_VALUE, ] return _get_data_from_components_initial_data(data, initial_data)
def _get_data_from_initial_data(initial_data, proposal_comparison=False): luy_initial = initial_data.get('learning_unit_year', {}) lcy_initial = initial_data.get('learning_container_year', {}) lu_initial = initial_data.get('learning_unit', {}) if luy_initial.get('id'): learning_unit_yr = get_by_id(luy_initial.get('id')) else: learning_unit_yr = None requirement_entity = find_by_id(lcy_initial.get('requirement_entity')) allocation_entity = find_by_id(lcy_initial.get('allocation_entity')) add1_requirement_entity = find_by_id(lcy_initial.get('additional_entity_1')) add2_requirement_entity = find_by_id(lcy_initial.get('additional_entity_2')) campus = find_campus_by_id(luy_initial.get('campus')) organization = None if learning_unit_yr: organization = get_organization_from_learning_unit_year(learning_unit_yr) language = find_language_by_id(luy_initial.get('language')) if proposal_comparison: academic_year = _format_academic_year(learning_unit_yr.academic_year.name, find_academic_year_by_id(lu_initial.get('end_year')) if lu_initial.get('end_year') else None) else: academic_year = learning_unit_yr.academic_year.name data = [ str(_('Initial data')), luy_initial.get('acronym', ''), academic_year, dict(LearningContainerYearType.choices())[lcy_initial.get('container_type')] if lcy_initial.get('container_type') else BLANK_VALUE, translate_status(luy_initial.get('status')), learning_unit_yr.get_subtype_display() if learning_unit_yr and learning_unit_yr.get_subtype_display() else BLANK_VALUE, get_translation(luy_initial.get('internship_subtype')), volume_format(Decimal(luy_initial['credits'])) if luy_initial.get('credits') else BLANK_VALUE, language.name if language else BLANK_VALUE, dict(PERIODICITY_TYPES)[luy_initial['periodicity']] if luy_initial.get('periodicity') else BLANK_VALUE, get_translation(luy_initial.get('quadrimester')), get_translation(luy_initial.get('session')), get_representing_string(lcy_initial.get('common_title')), get_representing_string(luy_initial.get('specific_title')), get_representing_string(lcy_initial.get('common_title_english')), get_representing_string(luy_initial.get('specific_title_english')), requirement_entity.most_recent_acronym if requirement_entity else BLANK_VALUE, allocation_entity.most_recent_acronym if allocation_entity else BLANK_VALUE, add1_requirement_entity.most_recent_acronym if add1_requirement_entity else BLANK_VALUE, add2_requirement_entity.most_recent_acronym if add2_requirement_entity else BLANK_VALUE, _('Yes') if luy_initial.get('professional_integration') else _('No'), organization.name if organization else BLANK_VALUE, campus if campus else BLANK_VALUE, get_representing_string(lu_initial.get('faculty_remark')), get_representing_string(lu_initial.get('other_remark')), _('Yes') if lcy_initial.get('team') else _('No'), _('Yes') if lcy_initial.get('is_vacant') else _('No'), dict(vacant_declaration_type.DECLARATION_TYPE)[lcy_initial.get('type_declaration_vacant')] if lcy_initial.get( 'type_declaration_vacant') else BLANK_VALUE, dict(attribution_procedure.ATTRIBUTION_PROCEDURES)[luy_initial.get('attribution_procedure')] if luy_initial.get( 'attribution_procedure') else BLANK_VALUE, ] return _get_data_from_components_initial_data(data, initial_data)