mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
feat: Ajout de la configuration des tarifs de l'école [#18]
This commit is contained in:
committed by
Luc SORIGNET
parent
147a70135d
commit
5a0e65bb75
@ -5,46 +5,41 @@ 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 .models import Teacher, Speciality, SchoolClass, Planning, Discount, TuitionFee, Fee
|
||||
from .serializers import TeacherSerializer, SpecialitySerializer, SchoolClassSerializer, PlanningSerializer, DiscountSerializer, TuitionFeeSerializer, FeeSerializer
|
||||
from N3wtSchool import bdd
|
||||
from N3wtSchool.bdd import delete_object, getAllObjects, getObject
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class SpecialitiesView(APIView):
|
||||
def get(self, request):
|
||||
specialitiesList=bdd.getAllObjects(Speciality)
|
||||
specialities_serializer=SpecialitySerializer(specialitiesList, many=True)
|
||||
|
||||
specialitiesList = getAllObjects(Speciality)
|
||||
specialities_serializer = SpecialitySerializer(specialitiesList, many=True)
|
||||
return JsonResponse(specialities_serializer.data, safe=False)
|
||||
|
||||
def post(self, request):
|
||||
specialities_data=JSONParser().parse(request)
|
||||
specialities_data = JSONParser().parse(request)
|
||||
all_valid = True
|
||||
for speciality_data in specialities_data:
|
||||
speciality_serializer = SpecialitySerializer(data=speciality_data)
|
||||
|
||||
if speciality_serializer.is_valid():
|
||||
speciality_serializer.save()
|
||||
else:
|
||||
all_valid = False
|
||||
break
|
||||
if all_valid:
|
||||
specialitiesList = bdd.getAllObjects(Speciality)
|
||||
specialitiesList = getAllObjects(Speciality)
|
||||
specialities_serializer = SpecialitySerializer(specialitiesList, many=True)
|
||||
|
||||
return JsonResponse(specialities_serializer.data, safe=False)
|
||||
|
||||
return JsonResponse(speciality_serializer.errors, safe=False)
|
||||
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class SpecialityView(APIView):
|
||||
def get (self, request, _id):
|
||||
speciality = bdd.getObject(_objectName=Speciality, _columnName='id', _value=_id)
|
||||
speciality_serializer=SpecialitySerializer(speciality)
|
||||
|
||||
def get(self, request, _id):
|
||||
speciality = getObject(_objectName=Speciality, _columnName='id', _value=_id)
|
||||
speciality_serializer = SpecialitySerializer(speciality)
|
||||
return JsonResponse(speciality_serializer.data, safe=False)
|
||||
|
||||
def post(self, request):
|
||||
@ -59,7 +54,7 @@ class SpecialityView(APIView):
|
||||
|
||||
def put(self, request, _id):
|
||||
speciality_data=JSONParser().parse(request)
|
||||
speciality = bdd.getObject(_objectName=Speciality, _columnName='id', _value=_id)
|
||||
speciality = getObject(_objectName=Speciality, _columnName='id', _value=_id)
|
||||
speciality_serializer = SpecialitySerializer(speciality, data=speciality_data)
|
||||
if speciality_serializer.is_valid():
|
||||
speciality_serializer.save()
|
||||
@ -68,11 +63,62 @@ class SpecialityView(APIView):
|
||||
return JsonResponse(speciality_serializer.errors, safe=False)
|
||||
|
||||
def delete(self, request, _id):
|
||||
return bdd.delete_object(Speciality, _id)
|
||||
return delete_object(Speciality, _id)
|
||||
|
||||
# Vues pour les réductions (Discount)
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class DiscountsView(APIView):
|
||||
def get(self, request):
|
||||
discountsList = Discount.objects.all()
|
||||
discounts_serializer = DiscountSerializer(discountsList, many=True)
|
||||
return JsonResponse(discounts_serializer.data, safe=False)
|
||||
|
||||
def post(self, request):
|
||||
discount_data = JSONParser().parse(request)
|
||||
discount_serializer = DiscountSerializer(data=discount_data)
|
||||
if discount_serializer.is_valid():
|
||||
discount_serializer.save()
|
||||
return JsonResponse(discount_serializer.data, safe=False, status=201)
|
||||
return JsonResponse(discount_serializer.errors, safe=False, status=400)
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class DiscountView(APIView):
|
||||
def get(self, request, _id):
|
||||
try:
|
||||
discount = Discount.objects.get(id=_id)
|
||||
discount_serializer = DiscountSerializer(discount)
|
||||
return JsonResponse(discount_serializer.data, safe=False)
|
||||
except Discount.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=404)
|
||||
|
||||
def post(self, request):
|
||||
discount_data = JSONParser().parse(request)
|
||||
discount_serializer = DiscountSerializer(data=discount_data)
|
||||
if discount_serializer.is_valid():
|
||||
discount_serializer.save()
|
||||
return JsonResponse(discount_serializer.data, safe=False, status=201)
|
||||
return JsonResponse(discount_serializer.errors, safe=False, status=400)
|
||||
|
||||
def put(self, request, _id):
|
||||
discount_data = JSONParser().parse(request)
|
||||
try:
|
||||
discount = Discount.objects.get(id=_id)
|
||||
except Discount.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=404)
|
||||
discount_serializer = DiscountSerializer(discount, data=discount_data, partial=True) # Utilisation de partial=True
|
||||
if discount_serializer.is_valid():
|
||||
discount_serializer.save()
|
||||
return JsonResponse(discount_serializer.data, safe=False)
|
||||
return JsonResponse(discount_serializer.errors, safe=False, status=400)
|
||||
|
||||
def delete(self, request, _id):
|
||||
return delete_object(Discount, _id)
|
||||
|
||||
class TeachersView(APIView):
|
||||
def get(self, request):
|
||||
teachersList=bdd.getAllObjects(Teacher)
|
||||
teachersList=getAllObjects(Teacher)
|
||||
teachers_serializer=TeacherSerializer(teachersList, many=True)
|
||||
|
||||
return JsonResponse(teachers_serializer.data, safe=False)
|
||||
@ -81,7 +127,7 @@ class TeachersView(APIView):
|
||||
@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 = getObject(_objectName=Teacher, _columnName='id', _value=_id)
|
||||
teacher_serializer=TeacherSerializer(teacher)
|
||||
|
||||
return JsonResponse(teacher_serializer.data, safe=False)
|
||||
@ -99,7 +145,7 @@ class TeacherView(APIView):
|
||||
|
||||
def put(self, request, _id):
|
||||
teacher_data=JSONParser().parse(request)
|
||||
teacher = bdd.getObject(_objectName=Teacher, _columnName='id', _value=_id)
|
||||
teacher = getObject(_objectName=Teacher, _columnName='id', _value=_id)
|
||||
teacher_serializer = TeacherSerializer(teacher, data=teacher_data)
|
||||
if teacher_serializer.is_valid():
|
||||
teacher_serializer.save()
|
||||
@ -108,13 +154,13 @@ class TeacherView(APIView):
|
||||
return JsonResponse(teacher_serializer.errors, safe=False)
|
||||
|
||||
def delete(self, request, _id):
|
||||
return bdd.delete_object(Teacher, _id, related_field='associated_profile')
|
||||
return delete_object(Teacher, _id, related_field='associated_profile')
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class ClassesView(APIView):
|
||||
def get(self, request):
|
||||
classesList=bdd.getAllObjects(SchoolClass)
|
||||
classesList=getAllObjects(SchoolClass)
|
||||
classes_serializer=SchoolClassSerializer(classesList, many=True)
|
||||
return JsonResponse(classes_serializer.data, safe=False)
|
||||
|
||||
@ -131,7 +177,7 @@ class ClassesView(APIView):
|
||||
break
|
||||
|
||||
if all_valid:
|
||||
classesList = bdd.getAllObjects(SchoolClass)
|
||||
classesList = getAllObjects(SchoolClass)
|
||||
classes_serializer = SchoolClassSerializer(classesList, many=True)
|
||||
|
||||
return JsonResponse(classes_serializer.data, safe=False)
|
||||
@ -142,7 +188,7 @@ class ClassesView(APIView):
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class ClasseView(APIView):
|
||||
def get (self, request, _id):
|
||||
schoolClass = bdd.getObject(_objectName=SchoolClass, _columnName='id', _value=_id)
|
||||
schoolClass = getObject(_objectName=SchoolClass, _columnName='id', _value=_id)
|
||||
classe_serializer=SchoolClassSerializer(schoolClass)
|
||||
|
||||
return JsonResponse(classe_serializer.data, safe=False)
|
||||
@ -159,7 +205,7 @@ class ClasseView(APIView):
|
||||
|
||||
def put(self, request, _id):
|
||||
classe_data=JSONParser().parse(request)
|
||||
schoolClass = bdd.getObject(_objectName=SchoolClass, _columnName='id', _value=_id)
|
||||
schoolClass = getObject(_objectName=SchoolClass, _columnName='id', _value=_id)
|
||||
classe_serializer = SchoolClassSerializer(schoolClass, data=classe_data)
|
||||
if classe_serializer.is_valid():
|
||||
classe_serializer.save()
|
||||
@ -168,14 +214,14 @@ class ClasseView(APIView):
|
||||
return JsonResponse(classe_serializer.errors, safe=False)
|
||||
|
||||
def delete(self, request, _id):
|
||||
return bdd.delete_object(SchoolClass, _id)
|
||||
return delete_object(SchoolClass, _id)
|
||||
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class PlanningsView(APIView):
|
||||
def get(self, request):
|
||||
schedulesList=bdd.getAllObjects(Planning)
|
||||
schedulesList=getAllObjects(Planning)
|
||||
schedules_serializer=PlanningSerializer(schedulesList, many=True)
|
||||
return JsonResponse(schedules_serializer.data, safe=False)
|
||||
|
||||
@ -183,7 +229,7 @@ class PlanningsView(APIView):
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class PlanningView(APIView):
|
||||
def get (self, request, _id):
|
||||
planning = bdd.getObject(_objectName=Planning, _columnName='classe__id', _value=_id)
|
||||
planning = getObject(_objectName=Planning, _columnName='classe__id', _value=_id)
|
||||
planning_serializer=PlanningSerializer(planning)
|
||||
|
||||
return JsonResponse(planning_serializer.data, safe=False)
|
||||
@ -215,3 +261,98 @@ class PlanningView(APIView):
|
||||
return JsonResponse(planning_serializer.data, safe=False)
|
||||
|
||||
return JsonResponse(planning_serializer.errors, safe=False)
|
||||
|
||||
|
||||
# Vues pour les frais (Fee)
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class FeesView(APIView):
|
||||
def get(self, request):
|
||||
feesList = Fee.objects.all()
|
||||
fees_serializer = FeeSerializer(feesList, many=True)
|
||||
return JsonResponse(fees_serializer.data, safe=False)
|
||||
|
||||
def post(self, request):
|
||||
fee_data = JSONParser().parse(request)
|
||||
fee_serializer = FeeSerializer(data=fee_data)
|
||||
if fee_serializer.is_valid():
|
||||
fee_serializer.save()
|
||||
return JsonResponse(fee_serializer.data, safe=False, status=201)
|
||||
return JsonResponse(fee_serializer.errors, safe=False, status=400)
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class FeeView(APIView):
|
||||
def get(self, request, _id):
|
||||
try:
|
||||
fee = Fee.objects.get(id=_id)
|
||||
fee_serializer = FeeSerializer(fee)
|
||||
return JsonResponse(fee_serializer.data, safe=False)
|
||||
except Fee.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=404)
|
||||
|
||||
def post(self, request):
|
||||
fee_data = JSONParser().parse(request)
|
||||
fee_serializer = FeeSerializer(data=fee_data)
|
||||
if fee_serializer.is_valid():
|
||||
fee_serializer.save()
|
||||
return JsonResponse(fee_serializer.data, safe=False, status=201)
|
||||
return JsonResponse(fee_serializer.errors, safe=False, status=400)
|
||||
|
||||
def put(self, request, _id):
|
||||
fee_data = JSONParser().parse(request)
|
||||
try:
|
||||
fee = Fee.objects.get(id=_id)
|
||||
except Fee.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=404)
|
||||
fee_serializer = FeeSerializer(fee, data=fee_data, partial=True) # Utilisation de partial=True
|
||||
if fee_serializer.is_valid():
|
||||
fee_serializer.save()
|
||||
return JsonResponse(fee_serializer.data, safe=False)
|
||||
return JsonResponse(fee_serializer.errors, safe=False, status=400)
|
||||
|
||||
def delete(self, request, _id):
|
||||
return delete_object(Fee, _id)
|
||||
|
||||
# Vues pour les frais de scolarité (TuitionFee)
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class TuitionFeesView(APIView):
|
||||
def get(self, request):
|
||||
tuitionFeesList = TuitionFee.objects.all()
|
||||
tuitionFees_serializer = TuitionFeeSerializer(tuitionFeesList, many=True)
|
||||
return JsonResponse(tuitionFees_serializer.data, safe=False)
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class TuitionFeeView(APIView):
|
||||
def get(self, request, _id):
|
||||
try:
|
||||
tuitionFee = TuitionFee.objects.get(id=_id)
|
||||
tuitionFee_serializer = TuitionFeeSerializer(tuitionFee)
|
||||
return JsonResponse(tuitionFee_serializer.data, safe=False)
|
||||
except TuitionFee.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=404)
|
||||
|
||||
def post(self, request):
|
||||
tuitionFee_data = JSONParser().parse(request)
|
||||
tuitionFee_serializer = TuitionFeeSerializer(data=tuitionFee_data)
|
||||
if tuitionFee_serializer.is_valid():
|
||||
tuitionFee_serializer.save()
|
||||
return JsonResponse(tuitionFee_serializer.data, safe=False, status=201)
|
||||
return JsonResponse(tuitionFee_serializer.errors, safe=False, status=400)
|
||||
|
||||
def put(self, request, _id):
|
||||
tuitionFee_data = JSONParser().parse(request)
|
||||
try:
|
||||
tuitionFee = TuitionFee.objects.get(id=_id)
|
||||
except TuitionFee.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=404)
|
||||
tuitionFee_serializer = TuitionFeeSerializer(tuitionFee, data=tuitionFee_data, partial=True) # Utilisation de partial=True
|
||||
if tuitionFee_serializer.is_valid():
|
||||
tuitionFee_serializer.save()
|
||||
return JsonResponse(tuitionFee_serializer.data, safe=False)
|
||||
return JsonResponse(tuitionFee_serializer.errors, safe=False, status=400)
|
||||
|
||||
def delete(self, request, _id):
|
||||
return delete_object(TuitionFee, _id)
|
||||
Reference in New Issue
Block a user