feat: Configuration et gestion du planning [#2]

This commit is contained in:
N3WT DE COMPET
2025-01-11 19:37:29 +01:00
parent 3c27133cdb
commit 830d9a48c0
26 changed files with 1163 additions and 1071 deletions

View File

@ -181,15 +181,24 @@ class ClasseView(APIView):
def delete(self, request, _id):
classe = bdd.getObject(_objectName=Classe, _columnName='id', _value=_id)
if classe != None:
if classe is not None:
# Supprimer les plannings associés à la classe
for planning in classe.plannings.all():
print(f'Planning à supprimer : {planning}')
planning.delete()
# Retirer la classe des élèves associés
for eleve in classe.eleves.all():
print(f'eleve a retirer la classe : {eleve}')
print(f'Eleve à retirer de la classe : {eleve}')
eleve.classeAssociee = None
eleve.save()
# Supprimer la classe
classe.delete()
return JsonResponse("La suppression de la classe a été effectuée avec succès", safe=False)
@method_decorator(csrf_protect, name='dispatch')
@method_decorator(ensure_csrf_cookie, name='dispatch')
class PlanningsView(APIView):
@ -218,8 +227,15 @@ class PlanningView(APIView):
return JsonResponse(planning_serializer.errors, safe=False)
def put(self, request, _id):
planning_data=JSONParser().parse(request)
planning = bdd.getObject(_objectName=Planning, _columnName='classe__id', _value=_id)
planning_data = JSONParser().parse(request)
try:
planning = Planning.objects.get(id=_id)
except Planning.DoesNotExist:
return JsonResponse({'error': 'No object found'}, status=404)
except Planning.MultipleObjectsReturned:
return JsonResponse({'error': 'Multiple objects found'}, status=400)
planning_serializer = PlanningSerializer(planning, data=planning_data)
if planning_serializer.is_valid():