Skip to content

Commit

Permalink
fix: problème sur le compteur d'établissements dans les panoramas (#505)
Browse files Browse the repository at this point in the history
* fix: problème sur le compteur d'établissements dans les panoramas

* fix: undefined values line chart taux de pression/demande

* fix: sortie des fonctions hors du render
  • Loading branch information
LucasDetre authored Dec 18, 2024
1 parent 4b552cf commit 2bffc30
Show file tree
Hide file tree
Showing 11 changed files with 285 additions and 238 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,9 @@ export const getFormationsDepartementBase = ({
.on("indicateurEntree.rentreeScolaire", "=", rentreeScolaire)
)
.leftJoin("etablissement", "etablissement.uai", "formationEtablissement.uai")
.leftJoin("indicateurEntree as iep", (join) =>
join
.onRef("formationEtablissement.id", "=", "iep.formationEtablissementId")
.on("iep.rentreeScolaire", "=", getRentreeScolairePrecedente(rentreeScolaire))
)
.leftJoin("indicateurEntree as iep", "formationEtablissement.id", "iep.formationEtablissementId")
.where("iep.rentreeScolaire", "=", getRentreeScolairePrecedente(rentreeScolaire))
.where((eb) => notHistoriqueUnlessCoExistant(eb, rentreeScolaire))

.where(notAnneeCommune)
.where("etablissement.codeDepartement", "=", codeDepartement)
.$call((q) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,8 @@ export const getFormationsRegionBase = ({
.on("indicateurEntree.rentreeScolaire", "=", rentreeScolaire)
)
.leftJoin("etablissement", "etablissement.uai", "formationEtablissement.uai")
.leftJoin("indicateurEntree as iep", (join) =>
join
.onRef("formationEtablissement.id", "=", "iep.formationEtablissementId")
.on("iep.rentreeScolaire", "=", getRentreeScolairePrecedente(rentreeScolaire))
)
.leftJoin("indicateurEntree as iep", "formationEtablissement.id", "iep.formationEtablissementId")
.where("iep.rentreeScolaire", "=", getRentreeScolairePrecedente(rentreeScolaire))
.where((eb) => notHistoriqueUnlessCoExistant(eb, rentreeScolaire))
.where(notAnneeCommune)
.where("etablissement.codeRegion", "=", codeRegion)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -364,8 +364,6 @@ describe("GET /api/formation/:cfd/indicators", () => {

const result = await response.json<Response>();

console.log(result.tauxPressions);

const tauxPressionFound = result.tauxPressions.find(
(tp) => tp.rentreeScolaire === rs && tp.scope === scope && tp.value === tauxPression
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,45 +7,52 @@ import { CounterChart } from "@/app/(wrapped)/panorama/etablissement/components/
import { DashboardCard } from "@/app/(wrapped)/panorama/etablissement/components/DashboardCard";
import { TooltipIcon } from "@/components/TooltipIcon";

export const Capacite = ({
const getCompareData = ({
capacite,
capaciteAnneePrecedente,
}: {
capacite?: number;
capaciteAnneePrecedente?: number;
}) => {
const { openGlossaire } = useGlossaireContext();
const getCompareData = () => {
if (!capacite || !capaciteAnneePrecedente) return "";
if (capacite > capaciteAnneePrecedente) {
return (
<Tooltip label={`En comparaison avec la rentrée scolaire ${getRentreeScolairePrecedente(CURRENT_RENTREE)}`}>
<Flex>
<Img src={"/icons/arrow_up.svg"} alt="up" />
<Text fontWeight={"bold"} color="success.425">
{`+${capacite - capaciteAnneePrecedente}`}
</Text>
</Flex>
</Tooltip>
);
} else if (capacite < capaciteAnneePrecedente) {
return (
<Tooltip label={`En comparaison avec la rentrée scolaire ${getRentreeScolairePrecedente(CURRENT_RENTREE)}`}>
<Flex>
<Img src={"/icons/arrow_down.svg"} alt="down" />
<Text fontWeight={"bold"} color="warning.525">
{`${capacite - capaciteAnneePrecedente}`}
</Text>
</Flex>
</Tooltip>
);
}
if (!capacite || !capaciteAnneePrecedente) return "";
if (capacite > capaciteAnneePrecedente) {
return (
<Tooltip label={`En comparaison avec la rentrée scolaire ${getRentreeScolairePrecedente(CURRENT_RENTREE)}`}>
<Text fontWeight={"bold"}>{`+0`}</Text>
<Flex>
<Img src={"/icons/arrow_up.svg"} alt="up" />
<Text fontWeight={"bold"} color="success.425">
{`+${capacite - capaciteAnneePrecedente}`}
</Text>
</Flex>
</Tooltip>
);
};
} else if (capacite < capaciteAnneePrecedente) {
return (
<Tooltip label={`En comparaison avec la rentrée scolaire ${getRentreeScolairePrecedente(CURRENT_RENTREE)}`}>
<Flex>
<Img src={"/icons/arrow_down.svg"} alt="down" />
<Text fontWeight={"bold"} color="warning.525">
{`${capacite - capaciteAnneePrecedente}`}
</Text>
</Flex>
</Tooltip>
);
}
return (
<Tooltip label={`En comparaison avec la rentrée scolaire ${getRentreeScolairePrecedente(CURRENT_RENTREE)}`}>
<Text fontWeight={"bold"}>{`+0`}</Text>
</Tooltip>
);
};

export const Capacite = ({
capacite,
capaciteAnneePrecedente,
}: {
capacite?: number;
capaciteAnneePrecedente?: number;
}) => {
const { openGlossaire } = useGlossaireContext();

return (
<DashboardCard
Expand All @@ -63,7 +70,13 @@ export const Capacite = ({
</Badge>
}
>
<CounterChart data={capacite} compareData={getCompareData()} />
<CounterChart
data={capacite}
compareData={getCompareData({
capacite,
capaciteAnneePrecedente,
})}
/>
</DashboardCard>
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,31 @@ import { CounterChart } from "@/app/(wrapped)/panorama/etablissement/components/
import { DashboardCard } from "@/app/(wrapped)/panorama/etablissement/components/DashboardCard";
import { TooltipIcon } from "@/components/TooltipIcon";

export const Effectifs = ({ effectifEntree, capacite }: { effectifEntree?: number; capacite?: number }) => {
const { openGlossaire } = useGlossaireContext();
const getCompareData = () => {
if (!effectifEntree || !capacite) return "";
if (capacite > effectifEntree) {
return (
<Text fontWeight={"bold"} color="warning.525">
{`${capacite - effectifEntree} pl. vacante(s)`}
</Text>
);
} else if (capacite < effectifEntree) {
return (
<Text fontWeight={"bold"} color={"success.425"}>
{`${effectifEntree - capacite} pl. en surnombre`}
</Text>
);
}
const getCompareData = ({ effectifEntree, capacite }: { effectifEntree?: number; capacite?: number }) => {
if (!effectifEntree || !capacite) return "";
if (capacite > effectifEntree) {
return (
<Text fontWeight={"bold"} color="warning.525">
{`${capacite - effectifEntree} pl. vacante(s)`}
</Text>
);
} else if (capacite < effectifEntree) {
return (
<Text fontWeight={"bold"} color="grey.625">
0 pl. vacante
<Text fontWeight={"bold"} color={"success.425"}>
{`${effectifEntree - capacite} pl. en surnombre`}
</Text>
);
};
}
return (
<Text fontWeight={"bold"} color="grey.625">
0 pl. vacante
</Text>
);
};

export const Effectifs = ({ effectifEntree, capacite }: { effectifEntree?: number; capacite?: number }) => {
const { openGlossaire } = useGlossaireContext();

return (
<DashboardCard
label="Effectifs en entrée (Constat Rentrée 2023)"
Expand All @@ -49,7 +51,7 @@ export const Effectifs = ({ effectifEntree, capacite }: { effectifEntree?: numbe
</Badge>
}
>
<CounterChart data={effectifEntree} compareData={getCompareData()} />
<CounterChart data={effectifEntree} compareData={getCompareData({ effectifEntree, capacite })} />
</DashboardCard>
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -7,44 +7,49 @@ import { DashboardCard } from "@/app/(wrapped)/panorama/etablissement/components
import { GlossaireShortcut } from "@/components/GlossaireShortcut";

const CODE_NIVEAU_DIPLOME_BTS = "320";

export const PremiersVoeux = ({
codeNiveauDiplome,
const getCompareData = ({
premiersVoeux,
premiersVoeuxAnneePrecedente,
}: {
codeNiveauDiplome?: string;
premiersVoeux?: number;
premiersVoeuxAnneePrecedente?: number;
}) => {
const getCompareData = () => {
if (!premiersVoeux || !premiersVoeuxAnneePrecedente) return "";
if (premiersVoeux > premiersVoeuxAnneePrecedente) {
return (
<Tooltip label={`En comparaison avec la rentrée scolaire ${getRentreeScolairePrecedente(CURRENT_RENTREE)}`}>
<Flex color="success.425">
<Img src={"/icons/arrow_up.svg"} alt="up" />
<Text fontWeight={"bold"}>{`+${premiersVoeux - premiersVoeuxAnneePrecedente}`}</Text>
</Flex>
</Tooltip>
);
} else if (premiersVoeux < premiersVoeuxAnneePrecedente) {
return (
<Tooltip label={`En comparaison avec la rentrée scolaire ${getRentreeScolairePrecedente(CURRENT_RENTREE)}`}>
<Flex color="warning.525">
<Img src={"/icons/arrow_down.svg"} alt="down" />
<Text fontWeight={"bold"}>{`${premiersVoeux - premiersVoeuxAnneePrecedente}`}</Text>
</Flex>
</Tooltip>
);
}
if (!premiersVoeux || !premiersVoeuxAnneePrecedente) return "";
if (premiersVoeux > premiersVoeuxAnneePrecedente) {
return (
<Tooltip label={`En comparaison avec la rentrée scolaire ${getRentreeScolairePrecedente(CURRENT_RENTREE)}`}>
<Flex color="success.425">
<Img src={"/icons/arrow_up.svg"} alt="up" />
<Text fontWeight={"bold"}>{`+${premiersVoeux - premiersVoeuxAnneePrecedente}`}</Text>
</Flex>
</Tooltip>
);
} else if (premiersVoeux < premiersVoeuxAnneePrecedente) {
return (
<Tooltip label={`En comparaison avec la rentrée scolaire ${getRentreeScolairePrecedente(CURRENT_RENTREE)}`}>
<Text fontWeight={"bold"}>+0pts</Text>
<Flex color="warning.525">
<Img src={"/icons/arrow_down.svg"} alt="down" />
<Text fontWeight={"bold"}>{`${premiersVoeux - premiersVoeuxAnneePrecedente}`}</Text>
</Flex>
</Tooltip>
);
};
}
return (
<Tooltip label={`En comparaison avec la rentrée scolaire ${getRentreeScolairePrecedente(CURRENT_RENTREE)}`}>
<Text fontWeight={"bold"}>+0pts</Text>
</Tooltip>
);
};

export const PremiersVoeux = ({
codeNiveauDiplome,
premiersVoeux,
premiersVoeuxAnneePrecedente,
}: {
codeNiveauDiplome?: string;
premiersVoeux?: number;
premiersVoeuxAnneePrecedente?: number;
}) => {
return (
<DashboardCard
label={codeNiveauDiplome === CODE_NIVEAU_DIPLOME_BTS ? "Nombre de voeux" : "Nombre de 1ers voeux"}
Expand All @@ -67,7 +72,10 @@ export const PremiersVoeux = ({
</Badge>
}
>
<CounterChart data={premiersVoeux} compareData={getCompareData()} />
<CounterChart
data={premiersVoeux}
compareData={getCompareData({ premiersVoeux, premiersVoeuxAnneePrecedente })}
/>
</DashboardCard>
);
};
Loading

0 comments on commit 2bffc30

Please sign in to comment.