From 5bbbcb9dc1f688cd68f47f8f7629aa03678ba582 Mon Sep 17 00:00:00 2001 From: N3WT DE COMPET Date: Sat, 4 Apr 2026 22:25:25 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20Emploi=20du=20temps=20pour=20les=20class?= =?UTF-8?q?es=20de=20l'ann=C3=A9e=20scolaire=20en=20cours?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Back-End/Planning/views.py | 10 +++++++++- .../src/app/[locale]/admin/structure/page.js | 18 +++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/Back-End/Planning/views.py b/Back-End/Planning/views.py index 18bf551..272977b 100644 --- a/Back-End/Planning/views.py +++ b/Back-End/Planning/views.py @@ -9,6 +9,7 @@ from .models import Planning, Events, RecursionType from .serializers import PlanningSerializer, EventsSerializer from N3wtSchool import bdd +from Subscriptions.util import getCurrentSchoolYear class PlanningView(APIView): @@ -17,6 +18,7 @@ class PlanningView(APIView): def get(self, request): establishment_id = request.GET.get('establishment_id', None) planning_mode = request.GET.get('planning_mode', None) + current_school_year = getCurrentSchoolYear() plannings = bdd.getAllObjects(Planning) @@ -25,7 +27,10 @@ class PlanningView(APIView): # Filtrer en fonction du planning_mode if planning_mode == "classSchedule": - plannings = plannings.filter(school_class__isnull=False) + plannings = plannings.filter( + school_class__isnull=False, + school_class__school_year=current_school_year, + ) elif planning_mode == "planning": plannings = plannings.filter(school_class__isnull=True) @@ -79,6 +84,7 @@ class EventsView(APIView): def get(self, request): establishment_id = request.GET.get('establishment_id', None) planning_mode = request.GET.get('planning_mode', None) + current_school_year = getCurrentSchoolYear() filterParams = {} plannings=[] events = Events.objects.all() @@ -86,6 +92,8 @@ class EventsView(APIView): filterParams['establishment'] = establishment_id if planning_mode is not None: filterParams['school_class__isnull'] = (planning_mode!="classSchedule") + if planning_mode == "classSchedule": + filterParams['school_class__school_year'] = current_school_year if filterParams: plannings = Planning.objects.filter(**filterParams) events = Events.objects.filter(planning__in=plannings) diff --git a/Front-End/src/app/[locale]/admin/structure/page.js b/Front-End/src/app/[locale]/admin/structure/page.js index c9d6b72..0c49399 100644 --- a/Front-End/src/app/[locale]/admin/structure/page.js +++ b/Front-End/src/app/[locale]/admin/structure/page.js @@ -1,5 +1,6 @@ 'use client'; import React, { useState, useEffect } from 'react'; +import { getCurrentSchoolYear } from '@/utils/Date'; import StructureManagement from '@/components/Structure/Configuration/StructureManagement'; import ScheduleManagement from '@/components/Structure/Planning/ScheduleManagement'; @@ -54,6 +55,17 @@ export default function Page() { const csrfToken = useCsrfToken(); const { selectedEstablishmentId, profileRole } = useEstablishment(); + const currentSchoolYear = getCurrentSchoolYear(); + + const scheduleClasses = classes.filter( + (classe) => classe?.school_year === currentSchoolYear + ); + const scheduleSpecialities = specialities.filter( + (speciality) => speciality?.school_year === currentSchoolYear + ); + const scheduleTeachers = teachers.filter( + (teacher) => teacher?.school_year === currentSchoolYear + ); useEffect(() => { if (selectedEstablishmentId) { @@ -299,9 +311,9 @@ export default function Page() {