diff --git a/Back-End/Auth/views.py b/Back-End/Auth/views.py index 1e0a876..45a050b 100644 --- a/Back-End/Auth/views.py +++ b/Back-End/Auth/views.py @@ -223,7 +223,7 @@ def makeToken(user): """ try: # Récupérer tous les rôles de l'utilisateur actifs - roles = ProfileRole.objects.filter(profile=user, is_active=True).values('role_type', 'establishment__id', 'establishment__name', 'establishment__evaluation_frequency') + roles = ProfileRole.objects.filter(profile=user, is_active=True).values('role_type', 'establishment__id', 'establishment__name', 'establishment__evaluation_frequency', 'establishment__total_capacity') # Générer le JWT avec la bonne syntaxe datetime access_payload = { diff --git a/Front-End/src/app/[locale]/admin/grades/page.js b/Front-End/src/app/[locale]/admin/grades/page.js index 2dfc9e9..edba3b3 100644 --- a/Front-End/src/app/[locale]/admin/grades/page.js +++ b/Front-End/src/app/[locale]/admin/grades/page.js @@ -23,7 +23,7 @@ import { } from '@/app/actions/subscriptionAction'; import { useEstablishment } from '@/context/EstablishmentContext'; import { useClasses } from '@/context/ClassesContext'; -import { Award, BookOpen, FileText } from 'lucide-react'; +import { Award, FileText } from 'lucide-react'; import SectionHeader from '@/components/SectionHeader'; import GradesDomainBarChart from '@/components/Grades/GradesDomainBarChart'; import InputText from '@/components/InputText'; @@ -210,7 +210,7 @@ export default function Page() { return (
@@ -219,7 +219,7 @@ export default function Page() {
{/* Colonne gauche : InputText + bouton */}
-
+
- {/* Sélecteur de période */} - {formData.selectedStudent && ( +
setSelectedPeriod(Number(e.target.value))} - disabled={false} + disabled={!formData.selectedStudent} /> - )} -
+
+
{/* Colonne droite : Photo élève */} -
+
{formData.selectedStudent && (() => { const student = students.find( diff --git a/Front-End/src/app/[locale]/admin/page.js b/Front-End/src/app/[locale]/admin/page.js index 09697ad..47d4c51 100644 --- a/Front-End/src/app/[locale]/admin/page.js +++ b/Front-End/src/app/[locale]/admin/page.js @@ -38,7 +38,8 @@ export default function DashboardPage() { }); const [classes, setClasses] = useState([]); - const { selectedEstablishmentId } = useEstablishment(); + const { selectedEstablishmentId, selectedEstablishmentTotalCapacity } = + useEstablishment(); const { showNotification } = useNotification(); useEffect(() => { @@ -116,13 +117,13 @@ export default function DashboardPage() { /> } color="emerald" /> } color="orange" /> diff --git a/Front-End/src/components/FlashNotification.js b/Front-End/src/components/FlashNotification.js index 45de649..c706780 100644 --- a/Front-End/src/components/FlashNotification.js +++ b/Front-End/src/components/FlashNotification.js @@ -62,8 +62,7 @@ export default function FlashNotification({

{message}

{type === 'error' && errorCode && (
- Code :{' '} - {errorCode} + Code : {errorCode}
)}
diff --git a/Front-End/src/context/EstablishmentContext.js b/Front-End/src/context/EstablishmentContext.js index 30ad723..b1ae486 100644 --- a/Front-End/src/context/EstablishmentContext.js +++ b/Front-End/src/context/EstablishmentContext.js @@ -21,6 +21,15 @@ export const EstablishmentProvider = ({ children }) => { ); return storedEstablishmentEvaluationFrequency; }); + const [ + selectedEstablishmentTotalCapacity, + setSelectedEstablishmentTotalCapacityState, + ] = useState(() => { + const storedEstablishmentTotalCapacity = +sessionStorage.getItem( + 'setSelectedEstablishmentTotalCapacity' + ); + return storedEstablishmentTotalCapacity; + }); const [selectedRoleId, setSelectedRoleIdState] = useState(() => { const storedRoleId = +sessionStorage.getItem('selectedRoleId'); return storedRoleId; @@ -51,6 +60,12 @@ export const EstablishmentProvider = ({ children }) => { sessionStorage.setItem('selectedEstablishmentEvaluationFrequency', id); }; + const setSelectedEstablishmentTotalCapacity = (id) => { + setSelectedEstablishmentTotalCapacityState(id); + logger.debug('setSelectedEstablishmentTotalCapacity', id); + sessionStorage.setItem('selectedEstablishmentTotalCapacity', id); + }; + const setSelectedRoleId = (id) => { setSelectedRoleIdState(id); sessionStorage.setItem('selectedRoleId', id); @@ -88,6 +103,7 @@ export const EstablishmentProvider = ({ children }) => { id: role.establishment__id, name: role.establishment__name, evaluation_frequency: role.establishment__evaluation_frequency, + total_capacity: role.establishment__total_capacity, role_id: i, role_type: role.role_type, })); @@ -104,6 +120,9 @@ export const EstablishmentProvider = ({ children }) => { setSelectedEstablishmentEvaluationFrequency( userEstablishments[roleIndexDefault].evaluation_frequency ); + setSelectedEstablishmentTotalCapacity( + userEstablishments[roleIndexDefault].total_capacity + ); setProfileRole(userEstablishments[roleIndexDefault].role_type); } if (endInitFunctionHandler) { @@ -133,6 +152,8 @@ export const EstablishmentProvider = ({ children }) => { setSelectedEstablishmentId, selectedEstablishmentEvaluationFrequency, setSelectedEstablishmentEvaluationFrequency, + selectedEstablishmentTotalCapacity, + setSelectedEstablishmentTotalCapacity, selectedRoleId, setSelectedRoleId, profileRole, diff --git a/Front-End/src/utils/Url.js b/Front-End/src/utils/Url.js index 0d24424..65756c2 100644 --- a/Front-End/src/utils/Url.js +++ b/Front-End/src/utils/Url.js @@ -132,9 +132,9 @@ export const FE_API_DOCUSEAL_DOWNLOAD_URL = '/api/docuseal/downloadTemplate'; export function getRedirectUrlFromRole(role) { switch (role) { case RIGHTS.ADMIN: - return FE_ADMIN_SUBSCRIPTIONS_URL; + return FE_ADMIN_HOME_URL; case RIGHTS.TEACHER: - return FE_ADMIN_SUBSCRIPTIONS_URL; + return FE_ADMIN_HOME_URL; case RIGHTS.PARENT: return FE_PARENTS_HOME_URL; default: