mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
feat: Sauvegarde des compétences d'un élève [#16]
This commit is contained in:
@ -17,7 +17,6 @@ import Subscriptions.util as util
|
||||
from Subscriptions.serializers import RegistrationFormSerializer, RegistrationSchoolFileTemplateSerializer, RegistrationParentFileTemplateSerializer
|
||||
from Subscriptions.pagination import CustomSubscriptionPagination
|
||||
from Subscriptions.models import (
|
||||
Student,
|
||||
Guardian,
|
||||
RegistrationForm,
|
||||
RegistrationSchoolFileTemplate,
|
||||
@ -26,7 +25,7 @@ from Subscriptions.models import (
|
||||
StudentCompetency
|
||||
)
|
||||
from Subscriptions.automate import updateStateMachine
|
||||
from Common.models import Competency
|
||||
from School.models import EstablishmentCompetency
|
||||
|
||||
from N3wtSchool import settings, bdd
|
||||
from django.db.models import Q
|
||||
@ -246,6 +245,7 @@ class RegisterFormWithIdView(APIView):
|
||||
"""
|
||||
|
||||
studentForm_data = request.data.get('data', '{}')
|
||||
|
||||
try:
|
||||
data = json.loads(studentForm_data)
|
||||
except json.JSONDecodeError:
|
||||
@ -306,13 +306,13 @@ class RegisterFormWithIdView(APIView):
|
||||
# L'école doit désormais valider le dossier d'inscription
|
||||
try:
|
||||
# Génération de la fiche d'inscription au format PDF
|
||||
base_dir = os.path.join(settings.MEDIA_ROOT, f"registration_files/dossier_rf_{registerForm.pk}")
|
||||
os.makedirs(base_dir, exist_ok=True)
|
||||
# base_dir = os.path.join(settings.MEDIA_ROOT, f"registration_files/dossier_rf_{registerForm.pk}")
|
||||
# os.makedirs(base_dir, exist_ok=True)
|
||||
|
||||
# Fichier PDF initial
|
||||
initial_pdf = f"{base_dir}/Inscription_{registerForm.student.last_name}_{registerForm.student.first_name}.pdf"
|
||||
registerForm.registration_file = util.rfToPDF(registerForm, initial_pdf)
|
||||
registerForm.save()
|
||||
# # Fichier PDF initial
|
||||
# initial_pdf = f"{base_dir}/Inscription_{registerForm.student.last_name}_{registerForm.student.first_name}.pdf"
|
||||
# registerForm.registration_file = util.rfToPDF(registerForm, initial_pdf)
|
||||
# registerForm.save()
|
||||
|
||||
# Mise à jour de l'automate
|
||||
# Vérification de la présence du fichier SEPA
|
||||
@ -376,7 +376,6 @@ class RegisterFormWithIdView(APIView):
|
||||
File(merged_pdf_content),
|
||||
save=True
|
||||
)
|
||||
|
||||
# Valorisation des StudentCompetency pour l'élève
|
||||
try:
|
||||
student = registerForm.student
|
||||
@ -384,15 +383,19 @@ class RegisterFormWithIdView(APIView):
|
||||
if student.level:
|
||||
cycle = student.level.cycle.number
|
||||
if cycle:
|
||||
competencies = Competency.objects.filter(
|
||||
category__domain__cycle=cycle
|
||||
).filter(
|
||||
Q(end_of_cycle=True) | Q(level=student.level.name)
|
||||
# Récupérer les EstablishmentCompetency de l'établissement et du cycle de l'élève
|
||||
establishment_competencies = EstablishmentCompetency.objects.filter(
|
||||
establishment=registerForm.establishment,
|
||||
custom_category__domain__cycle=cycle
|
||||
) | EstablishmentCompetency.objects.filter(
|
||||
establishment=registerForm.establishment,
|
||||
competency__category__domain__cycle=cycle
|
||||
)
|
||||
for comp in competencies:
|
||||
establishment_competencies = establishment_competencies.distinct()
|
||||
for ec in establishment_competencies:
|
||||
StudentCompetency.objects.get_or_create(
|
||||
student=student,
|
||||
competency=comp
|
||||
establishment_competency=ec
|
||||
)
|
||||
except Exception as e:
|
||||
logger.error(f"Erreur lors de la valorisation des StudentCompetency: {e}")
|
||||
|
||||
Reference in New Issue
Block a user