feat: Gestion de la validation du dossier d'inscription

This commit is contained in:
N3WT DE COMPET
2025-04-27 16:34:41 +02:00
parent ada2a44c3e
commit b23264c0d4
8 changed files with 236 additions and 220 deletions

View File

@ -274,33 +274,11 @@ class RegisterFormWithIdView(APIView):
updateStateMachine(registerForm, 'EVENT_SIGNATURE')
except Exception as e:
return JsonResponse({'error': str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
elif _status == RegistrationForm.RegistrationFormStatus.RF_VALIDATED:
updateStateMachine(registerForm, 'EVENT_VALIDATE')
elif _status == RegistrationForm.RegistrationFormStatus.RF_SENT:
if registerForm.status == RegistrationForm.RegistrationFormStatus.RF_UNDER_REVIEW:
updateStateMachine(registerForm, 'EVENT_REFUSE')
util.delete_registration_files(registerForm)
elif _status == RegistrationForm.RegistrationFormStatus.RF_SEPA_SENT:
# Vérifier si le paramètre fusion est activé via l'URL
fusion = studentForm_data.get('fusion', False)
if fusion:
# Fusion des documents
# Récupération des fichiers d'inscription
fileNames = RegistrationSchoolFileTemplate.get_files_from_rf(registerForm.pk)
if registerForm.registration_file:
fileNames.insert(0, registerForm.registration_file.path)
# Création du fichier PDF Fusionné
merged_pdf_content = util.merge_files_pdf(fileNames)
# Mise à jour du champ registration_file avec le fichier fusionné
registerForm.registration_file.save(
f"dossier_complet.pdf",
File(merged_pdf_content),
save=True
)
# Sauvegarde du mandat SEPA
student = registerForm.student
guardian = student.getMainGuardian()
@ -314,6 +292,42 @@ class RegisterFormWithIdView(APIView):
# Le parent a rempli le dossier d'inscription en sélectionnant "Prélèvement par Mandat SEPA"
# L'école doit désormais envoyer le mandat SEPA pour poursuivre l'inscription
updateStateMachine(registerForm, 'EVENT_WAITING_FOR_SEPA')
elif _status == RegistrationForm.RegistrationFormStatus.RF_VALIDATED:
# Vérifier si le paramètre fusion est activé via l'URL
fusion = studentForm_data.get('fusion', False)
if fusion:
# Fusion des documents
# Récupération des fichiers schoolFileTemplates
school_file_paths = RegistrationSchoolFileTemplate.get_files_from_rf(registerForm.pk)
# Récupération des fichiers parentFileTemplates
parent_file_templates = RegistrationParentFileTemplate.get_files_from_rf(registerForm.pk)
# Initialisation de la liste des fichiers à fusionner
fileNames = []
# Ajout du fichier registration_file en première position
if registerForm.registration_file:
fileNames.append(registerForm.registration_file.path)
# Ajout des fichiers schoolFileTemplates
fileNames.extend(school_file_paths)
# Ajout des fichiers parentFileTemplates
fileNames.extend(parent_file_templates)
# Création du fichier PDF fusionné
merged_pdf_content = util.merge_files_pdf(fileNames)
# Mise à jour du champ registration_file avec le fichier fusionné
registerForm.fusion_file.save(
f"dossier_complet.pdf",
File(merged_pdf_content),
save=True
)
updateStateMachine(registerForm, 'EVENT_VALIDATE')
# Retourner les données mises à jour
return JsonResponse(studentForm_serializer.data, safe=False)