mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
refactor: Mise à jour de la doc swagger / URL
This commit is contained in:
@ -87,6 +87,7 @@ class PlanningSerializer(serializers.ModelSerializer):
|
||||
class SchoolClassSerializer(serializers.ModelSerializer):
|
||||
updated_date_formatted = serializers.SerializerMethodField()
|
||||
teachers = serializers.PrimaryKeyRelatedField(queryset=Teacher.objects.all(), many=True, required=False)
|
||||
establishment = serializers.PrimaryKeyRelatedField(queryset=Establishment.objects.all(), required=False)
|
||||
teachers_details = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
@ -105,9 +106,10 @@ class SchoolClassSerializer(serializers.ModelSerializer):
|
||||
teaching_language=validated_data.get('teaching_language', ''),
|
||||
school_year=validated_data.get('school_year', ''),
|
||||
levels=levels_data,
|
||||
type=validated_data.get('type', 1), # Added here
|
||||
time_range=validated_data.get('time_range', ['08:30', '17:30']), # Added here
|
||||
opening_days=validated_data.get('opening_days', [1, 2, 4, 5]) # Added here
|
||||
type=validated_data.get('type', 1),
|
||||
time_range=validated_data.get('time_range', ['08:30', '17:30']),
|
||||
opening_days=validated_data.get('opening_days', [1, 2, 4, 5]),
|
||||
establishment=validated_data.get('establishment', None)
|
||||
)
|
||||
|
||||
school_class.teachers.set(teachers_data)
|
||||
@ -132,9 +134,10 @@ class SchoolClassSerializer(serializers.ModelSerializer):
|
||||
instance.teaching_language = validated_data.get('teaching_language', instance.teaching_language)
|
||||
instance.school_year = validated_data.get('school_year', instance.school_year)
|
||||
instance.levels = levels_data
|
||||
instance.type = validated_data.get('type', instance.type) # Added here
|
||||
instance.time_range = validated_data.get('time_range', instance.time_range) # Added here
|
||||
instance.opening_days = validated_data.get('opening_days', instance.opening_days) # Added here
|
||||
instance.type = validated_data.get('type', instance.type)
|
||||
instance.time_range = validated_data.get('time_range', instance.time_range)
|
||||
instance.opening_days = validated_data.get('opening_days', instance.opening_days)
|
||||
instance.establishment = validated_data.get('establishment', instance.establishment)
|
||||
|
||||
instance.save()
|
||||
instance.teachers.set(teachers_data)
|
||||
@ -169,6 +172,7 @@ class SchoolClassSerializer(serializers.ModelSerializer):
|
||||
|
||||
class DiscountSerializer(serializers.ModelSerializer):
|
||||
updated_at_formatted = serializers.SerializerMethodField()
|
||||
establishment = serializers.PrimaryKeyRelatedField(queryset=Establishment.objects.all(), required=False)
|
||||
class Meta:
|
||||
model = Discount
|
||||
fields = '__all__'
|
||||
@ -181,6 +185,7 @@ class DiscountSerializer(serializers.ModelSerializer):
|
||||
|
||||
class FeeSerializer(serializers.ModelSerializer):
|
||||
updated_at_formatted = serializers.SerializerMethodField()
|
||||
establishment = serializers.PrimaryKeyRelatedField(queryset=Establishment.objects.all(), required=False)
|
||||
|
||||
class Meta:
|
||||
model = Fee
|
||||
|
||||
@ -1,61 +1,51 @@
|
||||
from django.urls import path, re_path
|
||||
|
||||
from School.views import (
|
||||
TeachersView,
|
||||
TeacherView,
|
||||
SpecialitiesView,
|
||||
SpecialityView,
|
||||
ClassesView,
|
||||
ClasseView,
|
||||
PlanningsView,
|
||||
PlanningView,
|
||||
FeesView,
|
||||
FeeView,
|
||||
DiscountsView,
|
||||
DiscountView,
|
||||
PaymentPlansView,
|
||||
PaymentPlanView,
|
||||
PaymentModesView,
|
||||
PaymentModeView,
|
||||
EstablishmentsView,
|
||||
EstablishmentView
|
||||
from .views import (
|
||||
TeacherListCreateView,
|
||||
TeacherDetailView,
|
||||
SpecialityListCreateView,
|
||||
SpecialityDetailView,
|
||||
SchoolClassListCreateView,
|
||||
SchoolClassDetailView,
|
||||
PlanningListCreateView,
|
||||
PlanningDetailView,
|
||||
FeeListCreateView,
|
||||
FeeDetailView,
|
||||
DiscountListCreateView,
|
||||
DiscountDetailView,
|
||||
PaymentPlanListCreateView,
|
||||
PaymentPlanDetailView,
|
||||
PaymentModeListCreateView,
|
||||
PaymentModeDetailView,
|
||||
EstablishmentListCreateView,
|
||||
EstablishmentDetailView
|
||||
)
|
||||
|
||||
urlpatterns = [
|
||||
re_path(r'^specialities$', SpecialitiesView.as_view(), name="specialities"),
|
||||
re_path(r'^speciality$', SpecialityView.as_view(), name="speciality"),
|
||||
re_path(r'^speciality/([0-9]+)$', SpecialityView.as_view(), name="speciality"),
|
||||
re_path(r'^specialities$', SpecialityListCreateView.as_view(), name="speciality_list_create"),
|
||||
re_path(r'^specialities/(?P<id>[0-9]+)$', SpecialityDetailView.as_view(), name="speciality_detail"),
|
||||
|
||||
re_path(r'^teachers$', TeachersView.as_view(), name="teachers"),
|
||||
re_path(r'^teacher$', TeacherView.as_view(), name="teacher"),
|
||||
re_path(r'^teacher/([0-9]+)$', TeacherView.as_view(), name="teacher"),
|
||||
re_path(r'^teachers$', TeacherListCreateView.as_view(), name="teacher_list_create"),
|
||||
re_path(r'^teachers/(?P<id>[0-9]+)', TeacherDetailView.as_view(), name="teacher_detail"),
|
||||
|
||||
re_path(r'^schoolClasses$', ClassesView.as_view(), name="schoolClasses"),
|
||||
re_path(r'^schoolClass$', ClasseView.as_view(), name="schoolClass"),
|
||||
re_path(r'^schoolClass/([0-9]+)$', ClasseView.as_view(), name="schoolClass"),
|
||||
re_path(r'^schoolClasses$', SchoolClassListCreateView.as_view(), name="school_class_list_create"),
|
||||
re_path(r'^schoolClasses/(?P<id>[0-9]+)', SchoolClassDetailView.as_view(), name="school_class_detail"),
|
||||
|
||||
re_path(r'^plannings$', PlanningsView.as_view(), name="plannings"),
|
||||
re_path(r'^planning$', PlanningView.as_view(), name="planning"),
|
||||
re_path(r'^planning/([0-9]+)$', PlanningView.as_view(), name="planning"),
|
||||
re_path(r'^plannings$', PlanningListCreateView.as_view(), name="planninglist_create"),
|
||||
re_path(r'^plannings/(?P<id>[0-9]+)$', PlanningDetailView.as_view(), name="planning_detail"),
|
||||
|
||||
re_path(r'^fees/(?P<_filter>[a-zA-z]+)$', FeesView.as_view(), name="fees"),
|
||||
re_path(r'^fee$', FeeView.as_view(), name="fee"),
|
||||
re_path(r'^fee/([0-9]+)$', FeeView.as_view(), name="fee"),
|
||||
re_path(r'^fees$', FeeListCreateView.as_view(), name="fee_list_create"),
|
||||
re_path(r'^fees/(?P<id>[0-9]+)$', FeeDetailView.as_view(), name="fee_detail"),
|
||||
|
||||
re_path(r'^discounts/(?P<_filter>[a-zA-z]+)$$', DiscountsView.as_view(), name="discounts"),
|
||||
re_path(r'^discount$', DiscountView.as_view(), name="discount"),
|
||||
re_path(r'^discount/([0-9]+)$', DiscountView.as_view(), name="discount"),
|
||||
re_path(r'^discounts$', DiscountListCreateView.as_view(), name="discount_list_create"),
|
||||
re_path(r'^discounts/(?P<id>[0-9]+)$', DiscountDetailView.as_view(), name="discount_detail"),
|
||||
|
||||
re_path(r'^paymentPlans/(?P<_filter>[a-zA-z]+)$', PaymentPlansView.as_view(), name="paymentPlans"),
|
||||
re_path(r'^paymentPlan$', PaymentPlanView.as_view(), name="paymentPlan"),
|
||||
re_path(r'^paymentPlan/([0-9]+)$', PaymentPlanView.as_view(), name="paymentPlan"),
|
||||
re_path(r'^paymentPlans$', PaymentPlanListCreateView.as_view(), name="payment_plan_list_create"),
|
||||
re_path(r'^paymentPlans/(?P<id>[0-9]+)$', PaymentPlanDetailView.as_view(), name="payment_plan_detail"),
|
||||
|
||||
re_path(r'^paymentModes/(?P<_filter>[a-zA-z]+)$', PaymentModesView.as_view(), name="paymentModes"),
|
||||
re_path(r'^paymentMode$', PaymentModeView.as_view(), name="paymentMode"),
|
||||
re_path(r'^paymentMode/([0-9]+)$', PaymentModeView.as_view(), name="paymentMode"),
|
||||
|
||||
re_path(r'^establishments$', EstablishmentsView.as_view(), name="establishments"),
|
||||
re_path(r'^establishment$', EstablishmentView.as_view(), name='establishment'),
|
||||
re_path(r'^establishment/([0-9]+)$', EstablishmentView.as_view(), name='establishment')
|
||||
re_path(r'^paymentModes$', PaymentModeListCreateView.as_view(), name="payment_mode_list_create"),
|
||||
re_path(r'^paymentModes/(?P<id>[0-9]+)$', PaymentModeDetailView.as_view(), name="payment_mode_detail"),
|
||||
|
||||
re_path(r'^establishments$', EstablishmentListCreateView.as_view(), name='establishment_list_create'),
|
||||
re_path(r'^establishments/(?P<id>[0-9]+)$', EstablishmentDetailView.as_view(), name="establishment_detail"),
|
||||
]
|
||||
@ -3,58 +3,60 @@ 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 django.core.exceptions import ObjectDoesNotExist
|
||||
from .models import Teacher, Speciality, SchoolClass, Planning, Discount, Fee, PaymentPlan, PaymentMode, Establishment
|
||||
from .serializers import TeacherSerializer, SpecialitySerializer, SchoolClassSerializer, PlanningSerializer, DiscountSerializer, FeeSerializer, PaymentPlanSerializer, PaymentModeSerializer, EstablishmentSerializer
|
||||
from N3wtSchool import bdd
|
||||
from rest_framework import status
|
||||
from .models import (
|
||||
Teacher,
|
||||
Speciality,
|
||||
SchoolClass,
|
||||
Planning,
|
||||
Discount,
|
||||
Fee,
|
||||
PaymentPlan,
|
||||
PaymentMode,
|
||||
Establishment
|
||||
)
|
||||
from .serializers import (
|
||||
TeacherSerializer,
|
||||
SpecialitySerializer,
|
||||
SchoolClassSerializer,
|
||||
PlanningSerializer,
|
||||
DiscountSerializer,
|
||||
FeeSerializer,
|
||||
PaymentPlanSerializer,
|
||||
PaymentModeSerializer,
|
||||
EstablishmentSerializer
|
||||
)
|
||||
from N3wtSchool.bdd import delete_object, getAllObjects, getObject
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class SpecialitiesView(APIView):
|
||||
class SpecialityListCreateView(APIView):
|
||||
def get(self, request):
|
||||
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)
|
||||
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 = 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 = getObject(_objectName=Speciality, _columnName='id', _value=_id)
|
||||
speciality_serializer = SpecialitySerializer(speciality)
|
||||
return JsonResponse(speciality_serializer.data, safe=False)
|
||||
|
||||
def post(self, request):
|
||||
speciality_data=JSONParser().parse(request)
|
||||
speciality_serializer = SpecialitySerializer(data=speciality_data)
|
||||
|
||||
if speciality_serializer.is_valid():
|
||||
speciality_serializer.save()
|
||||
return JsonResponse(speciality_serializer.data, safe=False, status=201)
|
||||
return JsonResponse(speciality_serializer.data, safe=False, status=status.HTTP_201_CREATED)
|
||||
|
||||
return JsonResponse(speciality_serializer.errors, safe=False, status=400)
|
||||
return JsonResponse(speciality_serializer.errors, safe=False, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def put(self, request, _id):
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class SpecialityDetailView(APIView):
|
||||
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 put(self, request, id):
|
||||
speciality_data=JSONParser().parse(request)
|
||||
speciality = 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()
|
||||
@ -62,25 +64,18 @@ class SpecialityView(APIView):
|
||||
|
||||
return JsonResponse(speciality_serializer.errors, safe=False)
|
||||
|
||||
def delete(self, request, _id):
|
||||
return delete_object(Speciality, _id)
|
||||
def delete(self, request, id):
|
||||
return delete_object(Speciality, id)
|
||||
|
||||
class TeachersView(APIView):
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class TeacherListCreateView(APIView):
|
||||
def get(self, request):
|
||||
teachersList=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 = 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)
|
||||
@ -92,9 +87,18 @@ class TeacherView(APIView):
|
||||
|
||||
return JsonResponse(teacher_serializer.errors, safe=False)
|
||||
|
||||
def put(self, request, _id):
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class TeacherDetailView(APIView):
|
||||
def get (self, request, id):
|
||||
teacher = getObject(_objectName=Teacher, _columnName='id', _value=id)
|
||||
teacher_serializer=TeacherSerializer(teacher)
|
||||
|
||||
return JsonResponse(teacher_serializer.data, safe=False)
|
||||
|
||||
def put(self, request, id):
|
||||
teacher_data=JSONParser().parse(request)
|
||||
teacher = 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()
|
||||
@ -102,46 +106,17 @@ class TeacherView(APIView):
|
||||
|
||||
return JsonResponse(teacher_serializer.errors, safe=False)
|
||||
|
||||
def delete(self, request, _id):
|
||||
return delete_object(Teacher, _id, related_field='associated_profile')
|
||||
def delete(self, request, id):
|
||||
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):
|
||||
class SchoolClassListCreateView(APIView):
|
||||
def get(self, request):
|
||||
classesList=getAllObjects(SchoolClass)
|
||||
classes_serializer=SchoolClassSerializer(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 = SchoolClassSerializer(data=classe_data)
|
||||
|
||||
if classe_serializer.is_valid():
|
||||
classe_serializer.save()
|
||||
else:
|
||||
all_valid = False
|
||||
break
|
||||
|
||||
if all_valid:
|
||||
classesList = getAllObjects(SchoolClass)
|
||||
classes_serializer = SchoolClassSerializer(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):
|
||||
schoolClass = getObject(_objectName=SchoolClass, _columnName='id', _value=_id)
|
||||
classe_serializer=SchoolClassSerializer(schoolClass)
|
||||
|
||||
return JsonResponse(classe_serializer.data, safe=False)
|
||||
|
||||
def post(self, request):
|
||||
classe_data=JSONParser().parse(request)
|
||||
classe_serializer = SchoolClassSerializer(data=classe_data)
|
||||
@ -152,9 +127,18 @@ class ClasseView(APIView):
|
||||
|
||||
return JsonResponse(classe_serializer.errors, safe=False)
|
||||
|
||||
def put(self, request, _id):
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class SchoolClassDetailView(APIView):
|
||||
def get (self, request, id):
|
||||
schoolClass = getObject(_objectName=SchoolClass, _columnName='id', _value=id)
|
||||
classe_serializer=SchoolClassSerializer(schoolClass)
|
||||
|
||||
return JsonResponse(classe_serializer.data, safe=False)
|
||||
|
||||
def put(self, request, id):
|
||||
classe_data=JSONParser().parse(request)
|
||||
schoolClass = 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()
|
||||
@ -162,27 +146,17 @@ class ClasseView(APIView):
|
||||
|
||||
return JsonResponse(classe_serializer.errors, safe=False)
|
||||
|
||||
def delete(self, request, _id):
|
||||
return delete_object(SchoolClass, _id)
|
||||
|
||||
def delete(self, request, id):
|
||||
return delete_object(SchoolClass, id)
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class PlanningsView(APIView):
|
||||
class PlanningListCreateView(APIView):
|
||||
def get(self, request):
|
||||
schedulesList=getAllObjects(Planning)
|
||||
schedules_serializer=PlanningSerializer(schedulesList, many=True)
|
||||
return JsonResponse(schedules_serializer.data, safe=False)
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class PlanningView(APIView):
|
||||
def get (self, request, _id):
|
||||
planning = getObject(_objectName=Planning, _columnName='classe__id', _value=_id)
|
||||
planning_serializer=PlanningSerializer(planning)
|
||||
|
||||
return JsonResponse(planning_serializer.data, safe=False)
|
||||
|
||||
def post(self, request):
|
||||
planning_data=JSONParser().parse(request)
|
||||
planning_serializer = PlanningSerializer(data=planning_data)
|
||||
@ -193,15 +167,24 @@ class PlanningView(APIView):
|
||||
|
||||
return JsonResponse(planning_serializer.errors, safe=False)
|
||||
|
||||
def put(self, request, _id):
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class PlanningDetailView(APIView):
|
||||
def get (self, request, id):
|
||||
planning = getObject(_objectName=Planning, _columnName='classe_id', _value=id)
|
||||
planning_serializer=PlanningSerializer(planning)
|
||||
|
||||
return JsonResponse(planning_serializer.data, safe=False)
|
||||
|
||||
def put(self, request, id):
|
||||
planning_data = JSONParser().parse(request)
|
||||
|
||||
try:
|
||||
planning = Planning.objects.get(id=_id)
|
||||
planning = Planning.objects.get(id=id)
|
||||
except Planning.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=404)
|
||||
return JsonResponse({'error': 'No object found'}, status=status.HTTP_404_NOT_FOUND)
|
||||
except Planning.MultipleObjectsReturned:
|
||||
return JsonResponse({'error': 'Multiple objects found'}, status=400)
|
||||
return JsonResponse({'error': 'Multiple objects found'}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
planning_serializer = PlanningSerializer(planning, data=planning_data)
|
||||
|
||||
@ -210,236 +193,228 @@ class PlanningView(APIView):
|
||||
return JsonResponse(planning_serializer.data, safe=False)
|
||||
|
||||
return JsonResponse(planning_serializer.errors, safe=False)
|
||||
|
||||
|
||||
# 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, _filter, *args, **kwargs):
|
||||
|
||||
if _filter not in ['registration', 'tuition']:
|
||||
return JsonResponse({"error": "Invalid type parameter. Must be 'registration' or 'tuition'."}, safe=False, status=400)
|
||||
|
||||
discount_type_value = 0 if _filter == 'registration' else 1
|
||||
discounts = Discount.objects.filter(type=discount_type_value)
|
||||
discounts_serializer = DiscountSerializer(discounts, many=True)
|
||||
|
||||
return JsonResponse(discounts_serializer.data, safe=False, status=200)
|
||||
|
||||
def delete(self, request, id):
|
||||
return delete_object(Planning, id)
|
||||
|
||||
@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)
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class FeesView(APIView):
|
||||
def get(self, request, _filter, *args, **kwargs):
|
||||
|
||||
if _filter not in ['registration', 'tuition']:
|
||||
return JsonResponse({"error": "Invalid type parameter. Must be 'registration' or 'tuition'."}, safe=False, status=400)
|
||||
|
||||
fee_type_value = 0 if _filter == 'registration' else 1
|
||||
class FeeListCreateView(APIView):
|
||||
def get(self, request, *args, **kwargs):
|
||||
filter = request.GET.get('filter', '').strip()
|
||||
fee_type_value = 0 if filter == 'registration' else 1
|
||||
fees = Fee.objects.filter(type=fee_type_value)
|
||||
fee_serializer = FeeSerializer(fees, many=True)
|
||||
|
||||
return JsonResponse(fee_serializer.data, safe=False, status=200)
|
||||
|
||||
@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)
|
||||
return JsonResponse(fee_serializer.data, safe=False, status=status.HTTP_200_OK)
|
||||
|
||||
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)
|
||||
return JsonResponse(fee_serializer.data, safe=False, status=status.HTTP_201_CREATED)
|
||||
return JsonResponse(fee_serializer.errors, safe=False, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def put(self, request, _id):
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class FeeDetailView(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=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
def put(self, request, id):
|
||||
fee_data = JSONParser().parse(request)
|
||||
try:
|
||||
fee = Fee.objects.get(id=_id)
|
||||
fee = Fee.objects.get(id=id)
|
||||
except Fee.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=404)
|
||||
return JsonResponse({'error': 'No object found'}, status=status.HTTP_404_NOT_FOUND)
|
||||
fee_serializer = FeeSerializer(fee, data=fee_data, 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)
|
||||
return JsonResponse(fee_serializer.errors, safe=False, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def delete(self, request, _id):
|
||||
return delete_object(Fee, _id)
|
||||
def delete(self, request, id):
|
||||
return delete_object(Fee, id)
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class PaymentPlansView(APIView):
|
||||
def get(self, request, _filter, *args, **kwargs):
|
||||
class DiscountListCreateView(APIView):
|
||||
def get(self, request, *args, **kwargs):
|
||||
filter = request.GET.get('filter', '').strip()
|
||||
discount_type_value = 0 if filter == 'registration' else 1
|
||||
discounts = Discount.objects.filter(type=discount_type_value)
|
||||
discounts_serializer = DiscountSerializer(discounts, many=True)
|
||||
|
||||
return JsonResponse(discounts_serializer.data, safe=False, status=status.HTTP_200_OK)
|
||||
|
||||
if _filter not in ['registration', 'tuition']:
|
||||
return JsonResponse({"error": "Invalid type parameter. Must be 'registration' or 'tuition'."}, safe=False, status=400)
|
||||
|
||||
type_value = 0 if _filter == 'registration' else 1
|
||||
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=status.HTTP_201_CREATED)
|
||||
return JsonResponse(discount_serializer.errors, safe=False, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class DiscountDetailView(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=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
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=status.HTTP_404_NOT_FOUND)
|
||||
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=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def delete(self, request, id):
|
||||
return delete_object(Discount, id)
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class PaymentPlanListCreateView(APIView):
|
||||
def get(self, request, *args, **kwargs):
|
||||
filter = request.GET.get('filter', '').strip()
|
||||
type_value = 0 if filter == 'registration' else 1
|
||||
paymentPlans = PaymentPlan.objects.filter(type=type_value)
|
||||
payment_plans_serializer = PaymentPlanSerializer(paymentPlans, many=True)
|
||||
|
||||
return JsonResponse(payment_plans_serializer.data, safe=False, status=200)
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class PaymentPlanView(APIView):
|
||||
def get(self, request, _id):
|
||||
try:
|
||||
payment_plan = PaymentPlan.objects.get(id=_id)
|
||||
payment_plan_serializer = PaymentPlanSerializer(payment_plan)
|
||||
return JsonResponse(payment_plan_serializer.data, safe=False)
|
||||
except PaymentPlan.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=404)
|
||||
return JsonResponse(payment_plans_serializer.data, safe=False, status=status.HTTP_200_OK)
|
||||
|
||||
def post(self, request):
|
||||
payment_plan_data = JSONParser().parse(request)
|
||||
payment_plan_serializer = PaymentPlanSerializer(data=payment_plan_data)
|
||||
if payment_plan_serializer.is_valid():
|
||||
payment_plan_serializer.save()
|
||||
return JsonResponse(payment_plan_serializer.data, safe=False, status=201)
|
||||
return JsonResponse(payment_plan_serializer.errors, safe=False, status=400)
|
||||
return JsonResponse(payment_plan_serializer.data, safe=False, status=status.HTTP_201_CREATED)
|
||||
return JsonResponse(payment_plan_serializer.errors, safe=False, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def put(self, request, _id):
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class PaymentPlanDetailView(APIView):
|
||||
def get(self, request, id):
|
||||
try:
|
||||
payment_plan = PaymentPlan.objects.get(id=id)
|
||||
payment_plan_serializer = PaymentPlanSerializer(payment_plan)
|
||||
return JsonResponse(payment_plan_serializer.data, safe=False)
|
||||
except PaymentPlan.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
def put(self, request, id):
|
||||
payment_plan_data = JSONParser().parse(request)
|
||||
try:
|
||||
payment_plan = PaymentPlan.objects.get(id=_id)
|
||||
payment_plan = PaymentPlan.objects.get(id=id)
|
||||
except PaymentPlan.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=404)
|
||||
return JsonResponse({'error': 'No object found'}, status=status.HTTP_404_NOT_FOUND)
|
||||
payment_plan_serializer = PaymentPlanSerializer(payment_plan, data=payment_plan_data, partial=True)
|
||||
if payment_plan_serializer.is_valid():
|
||||
payment_plan_serializer.save()
|
||||
return JsonResponse(payment_plan_serializer.data, safe=False)
|
||||
return JsonResponse(payment_plan_serializer.errors, safe=False, status=400)
|
||||
return JsonResponse(payment_plan_serializer.errors, safe=False, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def delete(self, request, _id):
|
||||
return delete_object(PaymentPlan, _id)
|
||||
def delete(self, request, id):
|
||||
return delete_object(PaymentPlan, id)
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class PaymentModesView(APIView):
|
||||
def get(self, request, _filter, *args, **kwargs):
|
||||
|
||||
if _filter not in ['registration', 'tuition']:
|
||||
return JsonResponse({"error": "Invalid type parameter. Must be 'registration' or 'tuition'."}, safe=False, status=400)
|
||||
|
||||
type_value = 0 if _filter == 'registration' else 1
|
||||
class PaymentModeListCreateView(APIView):
|
||||
def get(self, request):
|
||||
filter = request.GET.get('filter', '').strip()
|
||||
type_value = 0 if filter == 'registration' else 1
|
||||
paymentModes = PaymentMode.objects.filter(type=type_value)
|
||||
payment_modes_serializer = PaymentModeSerializer(paymentModes, many=True)
|
||||
|
||||
return JsonResponse(payment_modes_serializer.data, safe=False, status=200)
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class PaymentModeView(APIView):
|
||||
def get(self, request, _id):
|
||||
try:
|
||||
payment_mode = PaymentMode.objects.get(id=_id)
|
||||
payment_mode_serializer = PaymentModeSerializer(payment_mode)
|
||||
return JsonResponse(payment_mode_serializer.data, safe=False)
|
||||
except PaymentMode.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=404)
|
||||
return JsonResponse(payment_modes_serializer.data, safe=False, status=status.HTTP_200_OK)
|
||||
|
||||
def post(self, request):
|
||||
payment_mode_data = JSONParser().parse(request)
|
||||
payment_mode_serializer = PaymentModeSerializer(data=payment_mode_data)
|
||||
if payment_mode_serializer.is_valid():
|
||||
payment_mode_serializer.save()
|
||||
return JsonResponse(payment_mode_serializer.data, safe=False, status=201)
|
||||
return JsonResponse(payment_mode_serializer.errors, safe=False, status=400)
|
||||
return JsonResponse(payment_mode_serializer.data, safe=False, status=status.HTTP_201_CREATED)
|
||||
return JsonResponse(payment_mode_serializer.errors, safe=False, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def put(self, request, _id):
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class PaymentModeDetailView(APIView):
|
||||
def get(self, request, id):
|
||||
try:
|
||||
payment_mode = PaymentMode.objects.get(id=id)
|
||||
payment_mode_serializer = PaymentModeSerializer(payment_mode)
|
||||
return JsonResponse(payment_mode_serializer.data, safe=False)
|
||||
except PaymentMode.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
def put(self, request, id):
|
||||
payment_mode_data = JSONParser().parse(request)
|
||||
try:
|
||||
payment_mode = PaymentMode.objects.get(id=_id)
|
||||
payment_mode = PaymentMode.objects.get(id=id)
|
||||
except PaymentMode.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=404)
|
||||
return JsonResponse({'error': 'No object found'}, status=status.HTTP_404_NOT_FOUND)
|
||||
payment_mode_serializer = PaymentModeSerializer(payment_mode, data=payment_mode_data, partial=True)
|
||||
if payment_mode_serializer.is_valid():
|
||||
payment_mode_serializer.save()
|
||||
return JsonResponse(payment_mode_serializer.data, safe=False)
|
||||
return JsonResponse(payment_mode_serializer.errors, safe=False, status=400)
|
||||
return JsonResponse(payment_mode_serializer.errors, safe=False, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def delete(self, request, id):
|
||||
return delete_object(PaymentMode, id)
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class EstablishmentsView(APIView):
|
||||
def get(self, request):
|
||||
class EstablishmentListCreateView(APIView):
|
||||
def get(self, request):
|
||||
establishments=getAllObjects(Establishment)
|
||||
establishments_serializer=EstablishmentSerializer(establishments, many=True)
|
||||
return JsonResponse(establishments_serializer.data, safe=False, status=200)
|
||||
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class EstablishmentView(APIView):
|
||||
def get(self, request, _id):
|
||||
try:
|
||||
establishment = Establishment.objects.get(id=_id)
|
||||
establishment_serializer = EstablishmentSerializer(establishment)
|
||||
return JsonResponse(establishment_serializer.data, safe=False)
|
||||
except Establishment.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=404)
|
||||
return JsonResponse(establishments_serializer.data, safe=False, status=status.HTTP_200_OK)
|
||||
|
||||
def post(self, request):
|
||||
establishment_data = JSONParser().parse(request)
|
||||
establishment_serializer = EstablishmentSerializer(data=establishment_data)
|
||||
if establishment_serializer.is_valid():
|
||||
establishment_serializer.save()
|
||||
return JsonResponse(establishment_serializer.data, safe=False, status=201)
|
||||
return JsonResponse(establishment_serializer.errors, safe=False, status=400)
|
||||
return JsonResponse(establishment_serializer.data, safe=False, status=status.HTTP_201_CREATED)
|
||||
return JsonResponse(establishment_serializer.errors, safe=False, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def put(self, request, _id):
|
||||
@method_decorator(csrf_protect, name='dispatch')
|
||||
@method_decorator(ensure_csrf_cookie, name='dispatch')
|
||||
class EstablishmentDetailView(APIView):
|
||||
def get(self, request, id=None):
|
||||
try:
|
||||
establishment = Establishment.objects.get(id=id)
|
||||
establishment_serializer = EstablishmentSerializer(establishment)
|
||||
return JsonResponse(establishment_serializer.data, safe=False)
|
||||
except Establishment.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
def put(self, request, id):
|
||||
establishment_data = JSONParser().parse(request)
|
||||
try:
|
||||
establishment = Establishment.objects.get(id=_id)
|
||||
establishment = Establishment.objects.get(id=id)
|
||||
except Establishment.DoesNotExist:
|
||||
return JsonResponse({'error': 'No object found'}, status=404)
|
||||
return JsonResponse({'error': 'No object found'}, status=status.HTTP_404_NOT_FOUND)
|
||||
establishment_serializer = EstablishmentSerializer(establishment, data=establishment_data, partial=True)
|
||||
if establishment_serializer.is_valid():
|
||||
establishment_serializer.save()
|
||||
return JsonResponse(establishment_serializer.data, safe=False)
|
||||
return JsonResponse(establishment_serializer.errors, safe=False, status=400)
|
||||
return JsonResponse(establishment_serializer.errors, safe=False, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def delete(self, request, _id):
|
||||
return delete_object(Establishment, _id)
|
||||
def delete(self, request, id):
|
||||
return delete_object(Establishment, id)
|
||||
Reference in New Issue
Block a user