mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
refactor: Partie "School"
This commit is contained in:
@ -4,59 +4,11 @@ from django.utils.decorators import method_decorator
|
||||
from rest_framework.parsers import JSONParser
|
||||
from rest_framework.views import APIView
|
||||
from django.core.cache import cache
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from .models import Teacher, Speciality, SchoolClass, Planning
|
||||
from .serializers import TeacherSerializer, SpecialitySerializer, SchoolClassSerializer, PlanningSerializer
|
||||
from N3wtSchool import bdd
|
||||
|
||||
class TeachersView(APIView):
|
||||
def get(self, request):
|
||||
teachersList=bdd.getAllObjects(Teacher)
|
||||
teachers_serializer=TeacherSerializer(teachersList, many=True)
|
||||
|
||||
return JsonResponse(teachers_serializer.data, safe=False)
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class EnseignantView(APIView):
|
||||
def get (self, request, _id):
|
||||
teacher = bdd.getObject(_objectName=Teacher, _columnName='id', _value=_id)
|
||||
teacher_serializer=TeacherSerializer(teacher)
|
||||
|
||||
return JsonResponse(teacher_serializer.data, safe=False)
|
||||
|
||||
def post(self, request):
|
||||
teacher_data=JSONParser().parse(request)
|
||||
teacher_serializer = TeacherSerializer(data=teacher_data)
|
||||
|
||||
if teacher_serializer.is_valid():
|
||||
teacher_serializer.save()
|
||||
|
||||
return JsonResponse(teacher_serializer.data, safe=False)
|
||||
|
||||
return JsonResponse(teacher_serializer.errors, safe=False)
|
||||
|
||||
def put(self, request, _id):
|
||||
teacher_data=JSONParser().parse(request)
|
||||
teacher = bdd.getObject(_objectName=Teacher, _columnName='id', _value=_id)
|
||||
teacher_serializer = TeacherSerializer(teacher, data=teacher_data)
|
||||
if teacher_serializer.is_valid():
|
||||
teacher_serializer.save()
|
||||
return JsonResponse(teacher_serializer.data, safe=False)
|
||||
|
||||
return JsonResponse(teacher_serializer.errors, safe=False)
|
||||
|
||||
def delete(self, request, _id):
|
||||
teacher = bdd.getObject(_objectName=Teacher, _columnName='id', _value=_id)
|
||||
if teacher is not None:
|
||||
if teacher.profilAssocie:
|
||||
print('Suppression du profil associé')
|
||||
teacher.profilAssocie.delete()
|
||||
teacher.delete()
|
||||
return JsonResponse({'message': 'La suppression de l\'teacher a été effectuée avec succès'}, safe=False)
|
||||
else:
|
||||
return JsonResponse({'erreur': 'L\'teacher n\'a pas été trouvé'}, safe=False)
|
||||
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class SpecialitiesView(APIView):
|
||||
@ -116,11 +68,47 @@ class SpecialityView(APIView):
|
||||
return JsonResponse(speciality_serializer.errors, safe=False)
|
||||
|
||||
def delete(self, request, _id):
|
||||
speciality = bdd.getObject(_objectName=Speciality, _columnName='id', _value=_id)
|
||||
if speciality != None:
|
||||
speciality.delete()
|
||||
|
||||
return JsonResponse("La suppression de la spécialité a été effectuée avec succès", safe=False)
|
||||
return bdd.delete_object(Speciality, _id)
|
||||
|
||||
class TeachersView(APIView):
|
||||
def get(self, request):
|
||||
teachersList=bdd.getAllObjects(Teacher)
|
||||
teachers_serializer=TeacherSerializer(teachersList, many=True)
|
||||
|
||||
return JsonResponse(teachers_serializer.data, safe=False)
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class TeacherView(APIView):
|
||||
def get (self, request, _id):
|
||||
teacher = bdd.getObject(_objectName=Teacher, _columnName='id', _value=_id)
|
||||
teacher_serializer=TeacherSerializer(teacher)
|
||||
|
||||
return JsonResponse(teacher_serializer.data, safe=False)
|
||||
|
||||
def post(self, request):
|
||||
teacher_data=JSONParser().parse(request)
|
||||
teacher_serializer = TeacherSerializer(data=teacher_data)
|
||||
|
||||
if teacher_serializer.is_valid():
|
||||
teacher_serializer.save()
|
||||
|
||||
return JsonResponse(teacher_serializer.data, safe=False)
|
||||
|
||||
return JsonResponse(teacher_serializer.errors, safe=False)
|
||||
|
||||
def put(self, request, _id):
|
||||
teacher_data=JSONParser().parse(request)
|
||||
teacher = bdd.getObject(_objectName=Teacher, _columnName='id', _value=_id)
|
||||
teacher_serializer = TeacherSerializer(teacher, data=teacher_data)
|
||||
if teacher_serializer.is_valid():
|
||||
teacher_serializer.save()
|
||||
return JsonResponse(teacher_serializer.data, safe=False)
|
||||
|
||||
return JsonResponse(teacher_serializer.errors, safe=False)
|
||||
|
||||
def delete(self, request, _id):
|
||||
return bdd.delete_object(Teacher, _id, related_field='associated_profile')
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
@ -180,23 +168,7 @@ class ClasseView(APIView):
|
||||
return JsonResponse(classe_serializer.errors, safe=False)
|
||||
|
||||
def delete(self, request, _id):
|
||||
schoolClass = bdd.getObject(_objectName=SchoolClass, _columnName='id', _value=_id)
|
||||
if schoolClass is not None:
|
||||
# Supprimer les plannings associés à la schoolClass
|
||||
for planning in schoolClass.plannings.all():
|
||||
print(f'Planning à supprimer : {planning}')
|
||||
planning.delete()
|
||||
|
||||
# Retirer la schoolClass des élèves associés
|
||||
for eleve in schoolClass.eleves.all():
|
||||
print(f'Student à retirer de la schoolClass : {eleve}')
|
||||
eleve.classeAssociee = None
|
||||
eleve.save()
|
||||
|
||||
# Supprimer la schoolClass
|
||||
schoolClass.delete()
|
||||
|
||||
return JsonResponse("La suppression de la schoolClass a été effectuée avec succès", safe=False)
|
||||
return bdd.delete_object(SchoolClass, _id)
|
||||
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
|
||||
Reference in New Issue
Block a user