def home(request): applicant = mdl.applicant.find_by_user(request.user) same_addresses = True person_contact_address = mdl.person_address.find_by_person_type(applicant, 'CONTACT') if person_contact_address: same_addresses = False if applicant: if applicant.language: user_language = applicant.language translation.activate(user_language) request.session[translation.LANGUAGE_SESSION_KEY] = user_language applications = mdl.application.find_by_user(request.user) person_legal_address = mdl.person_address.find_by_person_type(applicant, 'LEGAL') person_contact_address = mdl.person_address.find_by_person_type(applicant, 'CONTACT') if applications: applicant_form = ApplicantForm() return render(request, "applications.html", {'applications': applications, 'applicant': applicant, 'applicant_form': applicant_form, 'person_legal_address': person_legal_address, 'person_contact_address': person_contact_address, "tab_active": -1}) else: assimilation_criteria = assimilation_criteria_enum.ASSIMILATION_CRITERIA_CHOICES applicant_assimilation_criteria = mdl.applicant_assimilation_criteria.find_by_applicant(applicant.id) return render(request, "admission_home.html", { 'applications': applications, 'applicant': applicant, 'tab_active': navigation.PROFILE_TAB, 'first': True, 'countries': mdl_ref.country.find_all(), 'main_status': 0, 'picture': get_picture_id(request.user), 'id_document': get_id_document(request.user), 'person_legal_address': person_legal_address, 'person_contact_address': person_contact_address, 'assimilation_criteria': assimilation_criteria, 'applicant_assimilation_criteria': applicant_assimilation_criteria, 'assimilation_basic_documents': assimilation_criteria_view.find_assimilation_basic_documents(), 'assimilation_documents_existing': get_assimilation_documents_existing(request.user), 'same_addresses': same_addresses}) else: return profile(request)
def profile(request, application_id=None, message_success=None): message_info = None application = None assimilation_case = False if application_id: application = mdl.application.find_by_id(application_id) if request.method == 'POST': applicant_form = ApplicantForm(data=request.POST) applicant = mdl.applicant.find_by_user(request.user) person_legal_address = mdl.person_address.find_by_person_type( applicant, 'LEGAL') if person_legal_address is None: person_legal_address = mdl.person_address.PersonAddress() person_legal_address.person = applicant person_legal_address.type = 'LEGAL' if request.POST['last_name']: applicant.user.last_name = request.POST['last_name'] else: applicant.user.last_name = None if request.POST['first_name']: applicant.user.first_name = request.POST['first_name'] else: applicant.user.first_name = None if request.POST['middle_name']: applicant.middle_name = request.POST['middle_name'] else: applicant.middle_name = None if request.POST['birth_date']: try: applicant.birth_date = datetime.strptime( request.POST['birth_date'], '%d/%m/%Y') except ValueError: applicant.birth_date = None applicant_form.errors[ 'birth_date'] = "La date encodée('%s') semble incorrecte " % request.POST[ 'birth_date'] else: applicant.birth_date = None if request.POST['birth_place']: applicant.birth_place = request.POST['birth_place'] else: applicant.birth_place = None if request.POST.get('birth_country'): birth_country_id = request.POST['birth_country'] if birth_country_id and int(birth_country_id) >= 0: birth_country = mdl_ref.country.find_by_id(birth_country_id) else: birth_country = None applicant.birth_country = birth_country else: applicant.birth_country = None if request.POST.get('gender'): applicant.gender = request.POST['gender'] else: applicant.gender = None if request.POST['civil_status']: applicant.civil_status = request.POST['civil_status'] else: applicant.civil_status = None if request.POST['number_children']: applicant.number_children = request.POST['number_children'] else: applicant.number_children = None if request.POST['spouse_name']: applicant.spouse_name = request.POST['spouse_name'] else: applicant.spouse_name = None if request.POST.get( 'nationality') and not request.POST.get('nationality') == "-1": country_id = request.POST['nationality'] if country_id and int(country_id) >= 0: country = mdl_ref.country.find_by_id(country_id) else: country = None if country: if not country.european_union: assimilation_case = True applicant.nationality = country else: applicant.nationality = None if request.POST['national_id']: applicant.national_id = request.POST['national_id'] else: applicant.national_id = None if request.POST['id_card_number']: applicant.id_card_number = request.POST['id_card_number'] else: applicant.id_card_number = None if request.POST['passport_number']: applicant.passport_number = request.POST['passport_number'] else: applicant.passport_number = None if request.POST['legal_adr_street']: person_legal_address.street = request.POST['legal_adr_street'] else: person_legal_address.street = '' if request.POST['legal_adr_number']: person_legal_address.number = request.POST['legal_adr_number'] else: person_legal_address.number = '' if request.POST['legal_adr_complement']: person_legal_address.complement = request.POST[ 'legal_adr_complement'] else: person_legal_address.complement = None if request.POST['legal_adr_postal_code']: person_legal_address.postal_code = request.POST[ 'legal_adr_postal_code'] else: person_legal_address.postal_code = '' if request.POST['legal_adr_city']: person_legal_address.city = request.POST['legal_adr_city'] else: person_legal_address.city = '' if request.POST.get('legal_adr_country') and not request.POST.get( 'legal_adr_country') == "-1": country_id = request.POST['legal_adr_country'] country = None if country_id and int(country_id) >= 0: country = mdl_ref.country.find_by_id(country_id) person_legal_address.country = country else: applicant_form.errors['legal_adr_country'] = _('mandatory_field') if request.POST.get('same_contact_legal_addr') == "false": person_contact_address = mdl.person_address.find_by_person_type( applicant, 'CONTACT') if person_contact_address is None: person_contact_address = mdl.person_address.PersonAddress() person_contact_address.person = applicant person_contact_address.type = 'CONTACT' if request.POST['contact_adr_street']: person_contact_address.street = request.POST[ 'contact_adr_street'] else: person_contact_address.street = None if request.POST['contact_adr_number']: person_contact_address.number = request.POST[ 'contact_adr_number'] else: person_contact_address.number = None if request.POST['contact_adr_complement']: person_contact_address.complement = request.POST[ 'contact_adr_complement'] else: person_contact_address.complement = None if request.POST['contact_adr_postal_code']: person_contact_address.postal_code = request.POST[ 'contact_adr_postal_code'] else: person_contact_address.postal_code = None if request.POST['contact_adr_city']: person_contact_address.city = request.POST['contact_adr_city'] else: person_contact_address.city = None if request.POST['contact_adr_country']: country_id = request.POST['contact_adr_country'] country = None if country_id and int(country_id) >= 0: country = mdl_ref.country.find_by_id(country_id) if country: person_contact_address.country = country else: person_contact_address.country = None same_addresses = False person_contact_address.save() else: same_addresses = True person_contact_address = mdl.person_address.find_by_person_type( applicant, 'CONTACT') if person_contact_address: person_contact_address.delete() person_contact_address = None if request.POST['phone_mobile']: applicant.phone_mobile = request.POST['phone_mobile'] if request.POST['phone']: applicant.phone = request.POST['phone'] else: applicant.phone = None if request.POST['previous_enrollment'] == "true": if request.POST['registration_id']: applicant.registration_id = request.POST['registration_id'] else: applicant.registration_id = None if request.POST['last_academic_year']: applicant.last_academic_year = request.POST[ 'last_academic_year'] else: applicant.last_academic_year = None previous_enrollment = True else: applicant.registration_id = None applicant.last_academic_year = None previous_enrollment = False if assimilation_case: # verify if it exists one record per criteria default_criteria_list = assimilation_criteria_enum.ASSIMILATION_CRITERIA_CHOICES for criteria in default_criteria_list: crit = criteria[0] existing_crit = mdl.applicant_assimilation_criteria.find_first( applicant, crit) if existing_crit is None: applicant_assimilation_criteria = \ mdl.applicant_assimilation_criteria.ApplicantAssimilationCriteria() applicant_assimilation_criteria.criteria = crit applicant_assimilation_criteria.applicant = applicant applicant_assimilation_criteria.additional_criteria = None applicant_assimilation_criteria.selected = None applicant_assimilation_criteria.save() if application: application_assimilation_criteria = mdl.application_assimilation_criteria.find_first( application, crit) if application_assimilation_criteria is None: application_assimilation_criteria = \ mdl.application_assimilation_criteria.ApplicationAssimilationCriteria() application_assimilation_criteria.criteria = crit application_assimilation_criteria.application = application application_assimilation_criteria.additional_criteria = None application_assimilation_criteria.selected = None application_assimilation_criteria.save() for key in request.POST: if key[0:len(RADIO_NAME_ASSIMILATION_CRITERIA )] == RADIO_NAME_ASSIMILATION_CRITERIA: criteria_id = key[len(RADIO_NAME_ASSIMILATION_CRITERIA):] criteria_ref = assimilation_criteria_enum.find(criteria_id) criteria = criteria_ref[0] applicant_assimilation_criteria = mdl.applicant_assimilation_criteria.find_first( applicant, criteria) if applicant_assimilation_criteria is None: applicant_assimilation_criteria = mdl.applicant_assimilation_criteria\ .ApplicantAssimilationCriteria() applicant_assimilation_criteria.criteria = criteria applicant_assimilation_criteria.applicant = applicant if request.POST[key] == "true": if criteria: assimilation_basic_documents = assimilation_criteria_view.\ find_list_assimilation_basic_documents() list_document_type_needed = assimilation_criteria_view.\ get_list_documents_descriptions(criteria) list_document_type_needed.append( document_type.ID_CARD) if criteria == assimilation_criteria_enum.CRITERIA_5: if request.POST.get( "criteria_5" ) == assimilation_criteria_enum.CRITERIA_1: list_document_type_needed.extend([ document_type.RESIDENT_LONG_DURATION, document_type.ID_FOREIGN_UNLIMITED ]) if request.POST.get( "criteria_5" ) == assimilation_criteria_enum.CRITERIA_2: list_document_type_needed.extend([ document_type.ATTACHMENT_26, document_type.REFUGEE_CARD, document_type.FAMILY_COMPOSITION, document_type.BIRTH_CERTIFICATE, document_type.REFUGEE_CARD, document_type.RESIDENT_CERTIFICATE, document_type. FOREIGN_INSCRIPTION_CERTIFICATE, document_type. SUBSIDIARY_PROTECTION_DECISION, document_type.RESIDENCE_PERMIT, document_type.STATELESS_CERTIFICATE ]) if request.POST.get( "criteria_5" ) == assimilation_criteria_enum.CRITERIA_3: list_document_type_needed.extend([ document_type.FAMILY_COMPOSITION, document_type.PAYCHECK_1, document_type.PAYCHECK_2, document_type.PAYCHECK_3, document_type.PAYCHECK_4, document_type.PAYCHECK_5, document_type.PAYCHECK_6, document_type.RESIDENT_CERTIFICATE, document_type.ID_CARD ]) if request.POST.get( "criteria_5" ) == assimilation_criteria_enum.CRITERIA_4: list_document_type_needed.extend( [document_type.CPAS]) for basic_doc_description in assimilation_basic_documents: if basic_doc_description not in list_document_type_needed: app_doc_files = mdl.applicant_document_file.\ find_by_applicant_and_description(applicant, basic_doc_description) for app_doc_file in app_doc_files: # delete unnecessary documents app_doc_file.document_file.delete() applicant_assimilation_criteria.additional_criteria = \ define_additional_criteria(request.POST.get("criteria_5")) applicant_assimilation_criteria.selected = True applicant_assimilation_criteria.save() # Update/create application_assimilation_criteria if application: application_assimilation_criteria = mdl.application_assimilation_criteria.\ find_first(application, criteria) application_assimilation_criteria.criteria = criteria if applicant_assimilation_criteria.additional_criteria: application_assimilation_criteria.additional_criteria = \ applicant_assimilation_criteria.additional_criteria application_assimilation_criteria.selected = True application_assimilation_criteria.save() if request.POST[key] == "false": applicant_assimilation_criteria.selected = False applicant_assimilation_criteria.save() # Update/create application_assimilation_criteria if application: application_assimilation_criteria = mdl.application_assimilation_criteria.\ find_first(application, criteria) application_assimilation_criteria.criteria = criteria if applicant_assimilation_criteria.additional_criteria: application_assimilation_criteria.additional_criteria = \ applicant_assimilation_criteria.additional_criteria application_assimilation_criteria.selected = False application_assimilation_criteria.save() else: # cleanup the database if needed delete_previous_criteria(applicant, application) message_success = None if person_contact_address: person_contact_address.save() person_legal_address.save() applicant.user.save() if application: application.application_type = mdl.application.define_application_type( application.coverage_access_degree, request.user) application.save() request.user = applicant.user # Otherwise it was not refreshed while going back to home page applicant.save() message_info = _('msg_info_saved') following_tab = navigation.get_following_tab(request, 'profile', application) if following_tab: return following_tab else: applicant = mdl.applicant.find_by_user(request.user) applicant_form = ApplicantForm() if applicant: person_contact_address = mdl.person_address.find_by_person_type( applicant, 'CONTACT') same_addresses = True if person_contact_address: same_addresses = False previous_enrollment = False if applicant.registration_id or applicant.last_academic_year: previous_enrollment = True else: return HttpResponseRedirect('/admission/logout') countries = mdl_ref.country.find_all() props = mdl.properties.find_by_key('INSTITUTION') if props: institution_name = props.value else: institution_name = None assimilation_criteria = assimilation_criteria_enum.ASSIMILATION_CRITERIA_CHOICES applicant_assimilation_criteria = mdl.applicant_assimilation_criteria.find_by_applicant( applicant.id) # validated are not ready yet, to be achieved in another issue - Leila person_legal_address = mdl.person_address.find_by_person_type( applicant, 'LEGAL') person_contact_address = mdl.person_address.find_by_person_type( applicant, 'CONTACT') document_formset = UploadDocumentFileForm() data = { 'applicant': applicant, 'applicant_form': applicant_form, 'countries': countries, 'assimilation_criteria': assimilation_criteria, 'applicant_assimilation_criteria': applicant_assimilation_criteria, 'person_legal_address': person_legal_address, 'person_contact_address': person_contact_address, 'same_addresses': same_addresses, 'previous_enrollment': previous_enrollment, 'institution': institution_name, 'message_success': message_success, 'tab_active': navigation.PROFILE_TAB, 'application': application, 'applications': mdl.application.find_by_user(request.user), 'picture': get_picture_id(request.user), 'id_document': get_id_document(request.user), 'assimilation_basic_documents': assimilation_criteria_view.find_assimilation_basic_documents(), 'assimilation_documents_existing': get_assimilation_documents_existing(request.user), 'document_formset': document_formset, 'message_info': message_info } data.update( demande_validation.get_validation_status(application, applicant)) return render(request, "admission_home.html", data)
def profile(request, application_id=None, message_success=None): message_info = None application = None assimilation_case = False if application_id: application = mdl.application.find_by_id(application_id) if request.method == 'POST': applicant_form = ApplicantForm(data=request.POST) applicant = mdl.applicant.find_by_user(request.user) person_legal_address = mdl.person_address.find_by_person_type(applicant, 'LEGAL') if person_legal_address is None: person_legal_address = mdl.person_address.PersonAddress() person_legal_address.person = applicant person_legal_address.type = 'LEGAL' if request.POST['last_name']: applicant.user.last_name = request.POST['last_name'] else: applicant.user.last_name = None if request.POST['first_name']: applicant.user.first_name = request.POST['first_name'] else: applicant.user.first_name = None if request.POST['middle_name']: applicant.middle_name = request.POST['middle_name'] else: applicant.middle_name = None if request.POST['birth_date']: try: applicant.birth_date = datetime.strptime(request.POST['birth_date'], '%d/%m/%Y') except ValueError: applicant.birth_date = None applicant_form.errors['birth_date'] = "La date encodée('%s') semble incorrecte " % request.POST[ 'birth_date'] else: applicant.birth_date = None if request.POST['birth_place']: applicant.birth_place = request.POST['birth_place'] else: applicant.birth_place = None if request.POST.get('birth_country'): birth_country_id = request.POST['birth_country'] if birth_country_id and int(birth_country_id) >= 0: birth_country = mdl_ref.country.find_by_id(birth_country_id) else: birth_country = None applicant.birth_country = birth_country else: applicant.birth_country = None if request.POST.get('gender'): applicant.gender = request.POST['gender'] else: applicant.gender = None if request.POST['civil_status']: applicant.civil_status = request.POST['civil_status'] else: applicant.civil_status = None if request.POST['number_children']: applicant.number_children = request.POST['number_children'] else: applicant.number_children = None if request.POST['spouse_name']: applicant.spouse_name = request.POST['spouse_name'] else: applicant.spouse_name = None if request.POST.get('nationality') and not request.POST.get('nationality') == "-1": country_id = request.POST['nationality'] if country_id and int(country_id) >= 0: country = mdl_ref.country.find_by_id(country_id) else: country = None if country: if not country.european_union: assimilation_case = True applicant.nationality = country else: applicant.nationality = None if request.POST['national_id']: applicant.national_id = request.POST['national_id'] else: applicant.national_id = None if request.POST['id_card_number']: applicant.id_card_number = request.POST['id_card_number'] else: applicant.id_card_number = None if request.POST['passport_number']: applicant.passport_number = request.POST['passport_number'] else: applicant.passport_number = None if request.POST['legal_adr_street']: person_legal_address.street = request.POST['legal_adr_street'] else: person_legal_address.street = '' if request.POST['legal_adr_number']: person_legal_address.number = request.POST['legal_adr_number'] else: person_legal_address.number = '' if request.POST['legal_adr_complement']: person_legal_address.complement = request.POST['legal_adr_complement'] else: person_legal_address.complement = None if request.POST['legal_adr_postal_code']: person_legal_address.postal_code = request.POST['legal_adr_postal_code'] else: person_legal_address.postal_code = '' if request.POST['legal_adr_city']: person_legal_address.city = request.POST['legal_adr_city'] else: person_legal_address.city = '' if request.POST.get('legal_adr_country') and not request.POST.get('legal_adr_country') == "-1": country_id = request.POST['legal_adr_country'] country = None if country_id and int(country_id) >= 0: country = mdl_ref.country.find_by_id(country_id) person_legal_address.country = country else: applicant_form.errors['legal_adr_country'] = _('mandatory_field') if request.POST.get('same_contact_legal_addr') == "false": person_contact_address = mdl.person_address.find_by_person_type(applicant, 'CONTACT') if person_contact_address is None: person_contact_address = mdl.person_address.PersonAddress() person_contact_address.person = applicant person_contact_address.type = 'CONTACT' if request.POST['contact_adr_street']: person_contact_address.street = request.POST['contact_adr_street'] else: person_contact_address.street = None if request.POST['contact_adr_number']: person_contact_address.number = request.POST['contact_adr_number'] else: person_contact_address.number = None if request.POST['contact_adr_complement']: person_contact_address.complement = request.POST['contact_adr_complement'] else: person_contact_address.complement = None if request.POST['contact_adr_postal_code']: person_contact_address.postal_code = request.POST['contact_adr_postal_code'] else: person_contact_address.postal_code = None if request.POST['contact_adr_city']: person_contact_address.city = request.POST['contact_adr_city'] else: person_contact_address.city = None if request.POST['contact_adr_country']: country_id = request.POST['contact_adr_country'] country = None if country_id and int(country_id) >= 0: country = mdl_ref.country.find_by_id(country_id) if country: person_contact_address.country = country else: person_contact_address.country = None same_addresses = False person_contact_address.save() else: same_addresses = True person_contact_address = mdl.person_address.find_by_person_type(applicant, 'CONTACT') if person_contact_address: person_contact_address.delete() person_contact_address = None if request.POST['phone_mobile']: applicant.phone_mobile = request.POST['phone_mobile'] if request.POST['phone']: applicant.phone = request.POST['phone'] else: applicant.phone = None if request.POST['previous_enrollment'] == "true": if request.POST['registration_id']: applicant.registration_id = request.POST['registration_id'] else: applicant.registration_id = None if request.POST['last_academic_year']: applicant.last_academic_year = request.POST['last_academic_year'] else: applicant.last_academic_year = None previous_enrollment = True else: applicant.registration_id = None applicant.last_academic_year = None previous_enrollment = False if assimilation_case: # verify if it exists one record per criteria default_criteria_list = assimilation_criteria_enum.ASSIMILATION_CRITERIA_CHOICES for criteria in default_criteria_list: crit = criteria[0] existing_crit = mdl.applicant_assimilation_criteria.find_first(applicant, crit) if existing_crit is None: applicant_assimilation_criteria = \ mdl.applicant_assimilation_criteria.ApplicantAssimilationCriteria() applicant_assimilation_criteria.criteria = crit applicant_assimilation_criteria.applicant = applicant applicant_assimilation_criteria.additional_criteria = None applicant_assimilation_criteria.selected = None applicant_assimilation_criteria.save() if application: application_assimilation_criteria = mdl.application_assimilation_criteria.find_first(application, crit) if application_assimilation_criteria is None: application_assimilation_criteria = \ mdl.application_assimilation_criteria.ApplicationAssimilationCriteria() application_assimilation_criteria.criteria = crit application_assimilation_criteria.application = application application_assimilation_criteria.additional_criteria = None application_assimilation_criteria.selected = None application_assimilation_criteria.save() for key in request.POST: if key[0:len(RADIO_NAME_ASSIMILATION_CRITERIA)] == RADIO_NAME_ASSIMILATION_CRITERIA: criteria_id = key[len(RADIO_NAME_ASSIMILATION_CRITERIA):] criteria_ref = assimilation_criteria_enum.find(criteria_id) criteria = criteria_ref[0] applicant_assimilation_criteria = mdl.applicant_assimilation_criteria.find_first(applicant, criteria) if applicant_assimilation_criteria is None: applicant_assimilation_criteria = mdl.applicant_assimilation_criteria\ .ApplicantAssimilationCriteria() applicant_assimilation_criteria.criteria = criteria applicant_assimilation_criteria.applicant = applicant if request.POST[key] == "true": if criteria: assimilation_basic_documents = assimilation_criteria_view.\ find_list_assimilation_basic_documents() list_document_type_needed = assimilation_criteria_view.\ get_list_documents_descriptions(criteria) list_document_type_needed.append(document_type.ID_CARD) if criteria == assimilation_criteria_enum.CRITERIA_5: if request.POST.get("criteria_5") == assimilation_criteria_enum.CRITERIA_1: list_document_type_needed.extend([document_type.RESIDENT_LONG_DURATION, document_type.ID_FOREIGN_UNLIMITED]) if request.POST.get("criteria_5") == assimilation_criteria_enum.CRITERIA_2: list_document_type_needed.extend([ document_type.ATTACHMENT_26, document_type.REFUGEE_CARD, document_type.FAMILY_COMPOSITION, document_type.BIRTH_CERTIFICATE, document_type.REFUGEE_CARD, document_type.RESIDENT_CERTIFICATE, document_type.FOREIGN_INSCRIPTION_CERTIFICATE, document_type.SUBSIDIARY_PROTECTION_DECISION, document_type.RESIDENCE_PERMIT, document_type.STATELESS_CERTIFICATE]) if request.POST.get("criteria_5") == assimilation_criteria_enum.CRITERIA_3: list_document_type_needed.extend([document_type.FAMILY_COMPOSITION, document_type.PAYCHECK_1, document_type.PAYCHECK_2, document_type.PAYCHECK_3, document_type.PAYCHECK_4, document_type.PAYCHECK_5, document_type.PAYCHECK_6, document_type.RESIDENT_CERTIFICATE, document_type.ID_CARD]) if request.POST.get("criteria_5") == assimilation_criteria_enum.CRITERIA_4: list_document_type_needed.extend([document_type.CPAS]) for basic_doc_description in assimilation_basic_documents: if basic_doc_description not in list_document_type_needed: app_doc_files = mdl.applicant_document_file.\ find_by_applicant_and_description(applicant, basic_doc_description) for app_doc_file in app_doc_files: # delete unnecessary documents app_doc_file.document_file.delete() applicant_assimilation_criteria.additional_criteria = \ define_additional_criteria(request.POST.get("criteria_5")) applicant_assimilation_criteria.selected = True applicant_assimilation_criteria.save() # Update/create application_assimilation_criteria if application: application_assimilation_criteria = mdl.application_assimilation_criteria.\ find_first(application, criteria) application_assimilation_criteria.criteria = criteria if applicant_assimilation_criteria.additional_criteria: application_assimilation_criteria.additional_criteria = \ applicant_assimilation_criteria.additional_criteria application_assimilation_criteria.selected = True application_assimilation_criteria.save() if request.POST[key] == "false": applicant_assimilation_criteria.selected = False applicant_assimilation_criteria.save() # Update/create application_assimilation_criteria if application: application_assimilation_criteria = mdl.application_assimilation_criteria.\ find_first(application, criteria) application_assimilation_criteria.criteria = criteria if applicant_assimilation_criteria.additional_criteria: application_assimilation_criteria.additional_criteria = \ applicant_assimilation_criteria.additional_criteria application_assimilation_criteria.selected = False application_assimilation_criteria.save() else: # cleanup the database if needed delete_previous_criteria(applicant, application) message_success = None if person_contact_address: person_contact_address.save() person_legal_address.save() applicant.user.save() if application: application.application_type = mdl.application.define_application_type(application.coverage_access_degree, request.user) application.save() request.user = applicant.user # Otherwise it was not refreshed while going back to home page applicant.save() message_info = _('msg_info_saved') following_tab = navigation.get_following_tab(request, 'profile', application) if following_tab: return following_tab else: applicant = mdl.applicant.find_by_user(request.user) applicant_form = ApplicantForm() if applicant: person_contact_address = mdl.person_address.find_by_person_type(applicant, 'CONTACT') same_addresses = True if person_contact_address: same_addresses = False previous_enrollment = False if applicant.registration_id or applicant.last_academic_year: previous_enrollment = True else: return HttpResponseRedirect('/admission/logout') countries = mdl_ref.country.find_all() props = mdl.properties.find_by_key('INSTITUTION') if props: institution_name = props.value else: institution_name = None assimilation_criteria = assimilation_criteria_enum.ASSIMILATION_CRITERIA_CHOICES applicant_assimilation_criteria = mdl.applicant_assimilation_criteria.find_by_applicant(applicant.id) # validated are not ready yet, to be achieved in another issue - Leila person_legal_address = mdl.person_address.find_by_person_type(applicant, 'LEGAL') person_contact_address = mdl.person_address.find_by_person_type(applicant, 'CONTACT') document_formset = UploadDocumentFileForm() data = { 'applicant': applicant, 'applicant_form': applicant_form, 'countries': countries, 'assimilation_criteria': assimilation_criteria, 'applicant_assimilation_criteria': applicant_assimilation_criteria, 'person_legal_address': person_legal_address, 'person_contact_address': person_contact_address, 'same_addresses': same_addresses, 'previous_enrollment': previous_enrollment, 'institution': institution_name, 'message_success': message_success, 'tab_active': navigation.PROFILE_TAB, 'application': application, 'applications': mdl.application.find_by_user(request.user), 'picture': get_picture_id(request.user), 'id_document': get_id_document(request.user), 'assimilation_basic_documents': assimilation_criteria_view.find_assimilation_basic_documents(), 'assimilation_documents_existing': get_assimilation_documents_existing(request.user), 'document_formset': document_formset, 'message_info': message_info} data.update(demande_validation.get_validation_status(application, applicant)) return render(request, "admission_home.html", data)