from django.http.response import JsonResponse from django.views.decorators.csrf import ensure_csrf_cookie, csrf_protect 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 .models import Enseignant, Specialite, Classe from .serializers import EnseignantSerializer, SpecialiteSerializer, ClasseSerializer from N3wtSchool import bdd class EnseignantsView(APIView): def get(self, request): enseignantsList=bdd.getAllObjects(Enseignant) enseignants_serializer=EnseignantSerializer(enseignantsList, many=True) return JsonResponse(enseignants_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): enseignant = bdd.getObject(_objectName=Enseignant, _columnName='id', _value=_id) enseignant_serializer=EnseignantSerializer(enseignant) return JsonResponse(enseignant_serializer.data, safe=False) def post(self, request): enseignant_data=JSONParser().parse(request) enseignant_serializer = EnseignantSerializer(data=enseignant_data) if enseignant_serializer.is_valid(): enseignant_serializer.save() return JsonResponse(enseignant_serializer.data, safe=False) return JsonResponse(enseignant_serializer.errors, safe=False) def put(self, request, _id): enseignant_data=JSONParser().parse(request) enseignant = bdd.getObject(_objectName=Enseignant, _columnName='id', _value=_id) enseignant_serializer = EnseignantSerializer(enseignant, data=enseignant_data) if enseignant_serializer.is_valid(): enseignant_serializer.save() return JsonResponse(enseignant_serializer.data, safe=False) return JsonResponse(enseignant_serializer.errors, safe=False) def delete(self, request, _id): enseignant = bdd.getObject(_objectName=Enseignant, _columnName='id', _value=_id) if enseignant != None: enseignant.delete() return JsonResponse("La suppression de la spécialité a été effectuée avec succès", safe=False) @method_decorator(csrf_protect, name='dispatch') @method_decorator(ensure_csrf_cookie, name='dispatch') class SpecialitesView(APIView): def get(self, request): specialitesList=bdd.getAllObjects(Specialite) specialites_serializer=SpecialiteSerializer(specialitesList, many=True) return JsonResponse(specialites_serializer.data, safe=False) def post(self, request): specialites_data=JSONParser().parse(request) all_valid = True for specialite_data in specialites_data: specialite_serializer = SpecialiteSerializer(data=specialite_data) if specialite_serializer.is_valid(): specialite_serializer.save() else: all_valid = False break if all_valid: specialitesList = bdd.getAllObjects(Specialite) specialites_serializer = SpecialiteSerializer(specialitesList, many=True) return JsonResponse(specialite_serializer.errors, safe=False) @method_decorator(csrf_protect, name='dispatch') @method_decorator(ensure_csrf_cookie, name='dispatch') class SpecialiteView(APIView): def get (self, request, _id): specialite = bdd.getObject(_objectName=Specialite, _columnName='id', _value=_id) specialite_serializer=SpecialiteSerializer(specialite) return JsonResponse(specialite_serializer.data, safe=False) def post(self, request): specialite_data=JSONParser().parse(request) specialite_serializer = SpecialiteSerializer(data=specialite_data) if specialite_serializer.is_valid(): specialite_serializer.save() return JsonResponse(specialite_serializer.data, safe=False) return JsonResponse(specialite_serializer.errors, safe=False) def put(self, request, _id): specialite_data=JSONParser().parse(request) specialite = bdd.getObject(_objectName=Specialite, _columnName='id', _value=_id) specialite_serializer = SpecialiteSerializer(specialite, data=specialite_data) if specialite_serializer.is_valid(): specialite_serializer.save() return JsonResponse(specialite_serializer.data, safe=False) return JsonResponse(specialite_serializer.errors, safe=False) def delete(self, request, _id): specialite = bdd.getObject(_objectName=Specialite, _columnName='id', _value=_id) if specialite != None: specialite.delete() return JsonResponse("La suppression de la spécialité a été effectuée avec succès", safe=False) @method_decorator(csrf_protect, name='dispatch') @method_decorator(ensure_csrf_cookie, name='dispatch') class ClassesView(APIView): def get(self, request): classesList=bdd.getAllObjects(Classe) classes_serializer=ClasseSerializer(classesList, many=True) return JsonResponse(classes_serializer.data, safe=False) def post(self, request): all_valid = True classes_data=JSONParser().parse(request) for classe_data in classes_data: classe_serializer = ClasseSerializer(data=classe_data) if classe_serializer.is_valid(): classe_serializer.save() else: all_valid = False break if all_valid: classesList = bdd.getAllObjects(Classe) classes_serializer = ClasseSerializer(classesList, many=True) return JsonResponse(classes_serializer.data, safe=False) return JsonResponse(classe_serializer.errors, safe=False) @method_decorator(csrf_protect, name='dispatch') @method_decorator(ensure_csrf_cookie, name='dispatch') class ClasseView(APIView): def get (self, request, _id): classe = bdd.getObject(_objectName=Classe, _columnName='id', _value=_id) classe_serializer=ClasseSerializer(classe) return JsonResponse(classe_serializer.data, safe=False) def post(self, request): classe_data=JSONParser().parse(request) classe_serializer = ClasseSerializer(data=classe_data) if classe_serializer.is_valid(): classe_serializer.save() return JsonResponse(classe_serializer.data, safe=False) return JsonResponse(classe_serializer.errors, safe=False) def put(self, request, _id): classe_data=JSONParser().parse(request) classe = bdd.getObject(_objectName=Classe, _columnName='id', _value=_id) classe_serializer = ClasseSerializer(classe, data=classe_data) if classe_serializer.is_valid(): classe_serializer.save() return JsonResponse(classe_serializer.data, safe=False) return JsonResponse(classe_serializer.errors, safe=False) def delete(self, request, _id): classe = bdd.getObject(_objectName=Classe, _columnName='id', _value=_id) if classe != None: classe.delete() return JsonResponse("La suppression de la classe a été effectuée avec succès", safe=False)