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: {