From 56c223f3cc0498b4a6619d68f0185c36482c4ec9 Mon Sep 17 00:00:00 2001 From: N3WT DE COMPET Date: Tue, 20 May 2025 18:50:19 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20On=20ne=20peut=20s=C3=A9lectionner=20que?= =?UTF-8?q?=20les=20=C3=A9l=C3=A8ves=20inscrits=20[#16]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Back-End/Subscriptions/views/student_views.py | 11 +++++++++-- Front-End/src/app/[locale]/admin/grades/page.js | 2 +- Front-End/src/app/actions/subscriptionAction.js | 14 ++++++++++---- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/Back-End/Subscriptions/views/student_views.py b/Back-End/Subscriptions/views/student_views.py index 3f11974..0db929e 100644 --- a/Back-End/Subscriptions/views/student_views.py +++ b/Back-End/Subscriptions/views/student_views.py @@ -59,11 +59,18 @@ class StudentListView(APIView): # Récupération de la liste des élèves inscrits ou en cours d'inscriptions def get(self, request): establishment_id = request.GET.get('establishment_id', None) + status_filter = request.GET.get('status', None) # Nouveau filtre optionnel + 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) + students_qs = Student.objects.filter(registrationform__establishment_id=establishment_id) + + if status_filter: + students_qs = students_qs.filter(registrationform__status=status_filter) + + students_qs = students_qs.distinct() + students_serializer = StudentByRFCreationSerializer(students_qs, many=True) return JsonResponse(students_serializer.data, safe=False) diff --git a/Front-End/src/app/[locale]/admin/grades/page.js b/Front-End/src/app/[locale]/admin/grades/page.js index efa3c27..a833527 100644 --- a/Front-End/src/app/[locale]/admin/grades/page.js +++ b/Front-End/src/app/[locale]/admin/grades/page.js @@ -104,7 +104,7 @@ export default function Page() { useEffect(() => { if (selectedEstablishmentId) { - fetchStudents(selectedEstablishmentId) + fetchStudents(selectedEstablishmentId, null, 5) .then((studentsData) => { setStudents(studentsData); }) diff --git a/Front-End/src/app/actions/subscriptionAction.js b/Front-End/src/app/actions/subscriptionAction.js index 7da95ed..29414aa 100644 --- a/Front-End/src/app/actions/subscriptionAction.js +++ b/Front-End/src/app/actions/subscriptionAction.js @@ -128,10 +128,16 @@ export const archiveRegisterForm = (id) => { .catch(errorHandler); }; -export const fetchStudents = (establishment, id = null) => { - const url = id - ? `${BE_SUBSCRIPTION_STUDENTS_URL}/${id}` - : `${BE_SUBSCRIPTION_STUDENTS_URL}?establishment_id=${establishment}`; +export const fetchStudents = (establishment, id = null, status = null) => { + let url; + if (id) { + url = `${BE_SUBSCRIPTION_STUDENTS_URL}/${id}`; + } else { + url = `${BE_SUBSCRIPTION_STUDENTS_URL}?establishment_id=${establishment}`; + if (status) { + url += `&status=${status}`; + } + } const request = new Request(url, { method: 'GET', headers: {