Skip to content

Commit

Permalink
Merge pull request #28 from imrashb/add-inf-distribue
Browse files Browse the repository at this point in the history
feat: Ajout du programme d'informatique distribuée
  • Loading branch information
imrashb authored Aug 3, 2024
2 parents aacdb90 + a539ea2 commit a8a0bc1
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 4 deletions.
2 changes: 2 additions & 0 deletions public/locales/fr/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
"GOL": "Génie des opérations et de la logistique",
"GPA": "Génie de la production automatisée",
"TI": "Génie des technologies de l'information",
"INFODISTRIBUE": "Baccalauréat en informatique distribuée",
"selectionActuelle": "Sélection actuelle: ",
"inclureMaitrise": "Inclure les cours de maîtrise",
"selectionnesProgramme": "Sélectionne un programme",
Expand All @@ -64,6 +65,7 @@
"alerteNombreCoursInferieur_other": "Vous tentez de générer des horaires avec {{nbCours}} cours, alors que {{count}} cours sont sélectionnés. Veuillez réduire le nombre de cours par horaire.",
"alerteNombreCoursInferieur_one": "Vous tentez de générer des horaires avec {{nbCours}} cours, alors que {{count}} cours est sélectionné. Veuillez réduire le nombre de cours par horaire.",
"alerteNombreCoursInferieur_zero": "Vous tentez de générer des horaires avec {{nbCours}} cours, alors qu'aucun cours n’est sélectionné. Veuillez réduire le nombre de cours par horaire.",
"alerteProgrammeInvalideSession": "Des programmes que vous aviez sélectionnés ne sont pas disponibles dans cette session. Ils ont été retirés de votre sélection de programmes.",
"nombreCoursInvalide": "Nombre de cours invalide",
"trier": "Trier",
"fermer": "Fermer",
Expand Down
6 changes: 5 additions & 1 deletion src/features/generateur/generateur.api.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@ export const generateurApi = createApi({
query: () => GET_SESSIONS_ENDPOINT,
}),
getProgrammes: builder.query({
query: () => GET_PROGRAMMES_ENDPOINT,
query: ({ session }) => {
const params = new URLSearchParams();
params.append(SESSION, session);
return `${GET_PROGRAMMES_ENDPOINT}?${params.toString()}`;
},
transformResponse: (
response,
) => response?.filter((programme) => programme !== MAITRISE),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,30 @@
import {
FormControl, InputLabel, MenuItem, Select, Skeleton,
} from '@mui/material';
import React from 'react';
import { useTranslation } from 'react-i18next';
import { useEffect } from 'react';
import { toast } from 'react-toastify';
import { useGetProgrammesQuery } from '../../../features/generateur/generateur.api';
import useGenerateurHoraire from '../GenerateurHoraireContexts/hooks/useGenerateurHoraire';

function SelectionProgramme() {
const { t } = useTranslation('common');
const { programmes, setProgrammes } = useGenerateurHoraire();
const programmesQuery = useGetProgrammesQuery();
const { programmes, setProgrammes, session } = useGenerateurHoraire();
const programmesQuery = useGetProgrammesQuery({ session }, {
skip: !session,
refetchOnMountOrArgChange: true,
});

useEffect(() => {
if (programmesQuery.data && programmes.length > 0) {
const invalid = programmes.filter((p) => !programmesQuery.data.includes(p));
if (invalid.length > 0) {
setProgrammes(programmes.filter((p) => !invalid.includes(p)));
toast.info(t('alerteProgrammeInvalideSession'), { autoClose: 10000 });
}
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [programmesQuery.data]);

return (
programmesQuery.isLoading
Expand Down

0 comments on commit a8a0bc1

Please sign in to comment.