mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
feat: Utilisation de l'établissement en variable de session / gestion de
la page des inscriptions en fonction de l'établissement / mise à jour du mock_data à l'init
This commit is contained in:
@ -39,6 +39,7 @@ class RegisterFormView(APIView):
|
||||
openapi.Parameter('filter', openapi.IN_QUERY, description="filtre", type=openapi.TYPE_STRING, enum=['pending', 'archived', 'subscribed'], required=True),
|
||||
openapi.Parameter('search', openapi.IN_QUERY, description="search", type=openapi.TYPE_STRING, required=False),
|
||||
openapi.Parameter('page_size', openapi.IN_QUERY, description="limite de page lors de la pagination", type=openapi.TYPE_INTEGER, required=False),
|
||||
openapi.Parameter('establishment_id', openapi.IN_QUERY, description="ID de l'établissement", type=openapi.TYPE_INTEGER, required=True),
|
||||
],
|
||||
responses={200: RegistrationFormSerializer(many=True)},
|
||||
operation_description="Récupère les dossier d'inscriptions en fonction du filtre passé.",
|
||||
@ -78,6 +79,7 @@ class RegisterFormView(APIView):
|
||||
filter = request.GET.get('filter', '').strip()
|
||||
search = request.GET.get('search', '').strip()
|
||||
page_size = request.GET.get('page_size', None)
|
||||
establishment_id = request.GET.get('establishment_id', None)
|
||||
|
||||
# Gestion du page_size
|
||||
if page_size is not None:
|
||||
@ -88,7 +90,7 @@ class RegisterFormView(APIView):
|
||||
|
||||
# Définir le cache_key en fonction du filtre
|
||||
page_number = request.GET.get('page', 1)
|
||||
cache_key = f'N3WT_ficheInscriptions_{filter}_page_{page_number}_search_{search if filter == "pending" else ""}'
|
||||
cache_key = f'N3WT_ficheInscriptions_{establishment_id}_{filter}_page_{page_number}_search_{search if filter == "pending" else ""}'
|
||||
cached_page = cache.get(cache_key)
|
||||
if cached_page:
|
||||
return JsonResponse(cached_page, safe=False)
|
||||
@ -105,6 +107,10 @@ class RegisterFormView(APIView):
|
||||
else:
|
||||
registerForms_List = None
|
||||
|
||||
if registerForms_List:
|
||||
print(f'filtrate sur lestablishment : {establishment_id}')
|
||||
registerForms_List = registerForms_List.filter(establishment=establishment_id)
|
||||
|
||||
if not registerForms_List:
|
||||
return JsonResponse({'error': 'aucune donnée trouvée', 'count': 0}, safe=False)
|
||||
|
||||
|
||||
@ -46,11 +46,23 @@ class StudentListView(APIView):
|
||||
operation_description="Retourne la liste de tous les élèves inscrits ou en cours d'inscription",
|
||||
responses={
|
||||
200: openapi.Response('Liste des élèves', StudentByRFCreationSerializer(many=True))
|
||||
}
|
||||
},
|
||||
manual_parameters=[
|
||||
openapi.Parameter(
|
||||
'establishment_id', openapi.IN_QUERY,
|
||||
description="ID de l'établissement",
|
||||
type=openapi.TYPE_INTEGER,
|
||||
required=True
|
||||
)
|
||||
]
|
||||
)
|
||||
# Récupération de la liste des élèves inscrits ou en cours d'inscriptions
|
||||
def get(self, request):
|
||||
students = bdd.getAllObjects(_objectName=Student)
|
||||
establishment_id = request.GET.get('establishment_id', None)
|
||||
if establishment_id is None:
|
||||
return JsonResponse({'error': 'establishment_id est requis'}, safe=False, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
students = Student.objects.filter(registrationform__establishment_id=establishment_id)
|
||||
students_serializer = StudentByRFCreationSerializer(students, many=True)
|
||||
return JsonResponse(students_serializer.data, safe=False)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user