Skip to content

Commit 1201566

Browse files
committed
fix(faculty-members): use completeRecords for analyses graphs
1 parent aa59830 commit 1201566

5 files changed

Lines changed: 32 additions & 26 deletions

File tree

client/src/boards/faculty-members/pages/structures/components/entity-view.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@ interface Props {
2828
export default function EntityView({ viewType }: Props) {
2929
const [searchParams, setSearchParams] = useSearchParams();
3030
const labels = VIEW_LABELS[viewType];
31+
console.log(labels);
3132

32-
const selectedId = searchParams.get("structureId") || "";
33+
const selectedId = searchParams.get(getParamKey(viewType)) || "";
3334
const section = searchParams.get("section") || "enseignants-chercheurs";
3435

3536
const { data: yearsData, isLoading: isLoadingYears } = useFacultyYears(viewType, selectedId);

client/src/boards/faculty-members/pages/structures/sections/analyses/index.tsx

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,21 +67,28 @@ export default function EvolutionsSection({ viewType, selectedId }: EvolutionsSe
6767
if (!data?.records?.length) {
6868
return { analysesWithData: new Set<string>(), allAnalyses: {}, metricsConfig: {}, records: [], periodText: "" };
6969
}
70-
const analyses = buildAllFmAnalyses(data);
71-
const metrics = buildAllFmMetricsConfig(data);
70+
const completeRecords = data.records.filter(
71+
(r: any) => (r.effectif_permanents || 0) > 0 && (r.effectif_non_titulaire || 0) > 0
72+
);
73+
if (!completeRecords.length) {
74+
return { analysesWithData: new Set<string>(), allAnalyses: {}, metricsConfig: {}, records: [], periodText: "" };
75+
}
76+
const dataComplete = { ...data, records: completeRecords };
77+
const analyses = buildAllFmAnalyses(dataComplete);
78+
const metrics = buildAllFmMetricsConfig(dataComplete);
7279
const available = new Set<string>();
7380

7481
Object.entries(analyses).forEach(([key, analysis]) => {
7582
const hasData = analysis.metrics.some((m) =>
76-
data.records.some((r: any) => r[m] != null && r[m] !== 0)
83+
completeRecords.some((r: any) => r[m] != null && r[m] !== 0)
7784
);
7885
if (hasData) available.add(key);
7986
});
8087

81-
const years = data.records.map((r: any) => r.annee_universitaire).filter(Boolean).sort();
88+
const years = completeRecords.map((r: any) => r.annee_universitaire).filter(Boolean).sort();
8289
const period = years.length > 1 ? `${years[0]}${years[years.length - 1]}` : years[0] || "";
8390

84-
return { analysesWithData: available, allAnalyses: analyses, metricsConfig: metrics, records: data.records, periodText: period };
91+
return { analysesWithData: available, allAnalyses: analyses, metricsConfig: metrics, records: completeRecords, periodText: period };
8592
}, [data]);
8693

8794
useEffect(() => {

client/src/boards/faculty-members/pages/structures/sections/groupes-cnu/index.tsx

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import TreemapSectionsChart from "./charts/treemap-sections";
77

88
import DefaultSkeleton from "../../../../../../components/charts-skeletons/default";
99
import FmMetricDefinitionsTable from "../../../../components/metric-definitions";
10-
import { CNU_GROUPS } from "../../../../pages/definitions/cnu-data";
10+
import { CNU_GROUPS } from "../../../definitions/cnu-data";
1111

1212
interface GroupesCnuSectionProps {
1313
viewType: ViewType;
@@ -209,25 +209,23 @@ export default function GroupesCnuSection({ viewType, selectedId, selectedYear }
209209
</Title>
210210
</div>
211211
<div className="fr-callout fr-mb-4w">
212-
<Text className="fr-callout__text fr-text--sm">
213-
<strong> Explicitez le périmètre de la donnée de la section CNU </strong>
214-
<br/>
215-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi risus diam,
216-
vestibulum vitae neque at, maximus placerat risus. In malesuada blandit lectus
217-
at scelerisque. Mauris a diam vel ante feugiat accumsan id finibus mi.
218-
Nam pellentesque libero sed turpis varius dapibus. Fusce sit amet urna id eros
219-
venenatis malesuada in et libero. Integer aliquam, magna quis tempus dignissim,
220-
magna metus efficitur nisl, in suscipit velit eros sit amet erat. Fusce dolor nibh, sagittis sed molestie id, auctor et augue. Nam nec magna vel nisl consequat interdum. Maecenas vestibulum lorem sit amet pretium scelerisque.
221-
</Text>
222-
</div>
223-
<Row className="fr-mb-5w">
212+
<Text className="fr-callout__text fr-text--sm">
213+
<strong> Explicitez le périmètre de la donnée de la section CNU </strong>
214+
<br />
215+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi risus diam,
216+
vestibulum vitae neque at, maximus placerat risus. In malesuada blandit lectus
217+
at scelerisque. Mauris a diam vel ante feugiat accumsan id finibus mi.
218+
Nam pellentesque libero sed turpis varius dapibus. Fusce sit amet urna id eros
219+
venenatis malesuada in et libero. Integer aliquam, magna quis tempus dignissim,
220+
magna metus efficitur nisl, in suscipit velit eros sit amet erat. Fusce dolor nibh, sagittis sed molestie id, auctor et augue. Nam nec magna vel nisl consequat interdum. Maecenas vestibulum lorem sit amet pretium scelerisque.
221+
</Text>
222+
</div>
223+
<Row className="fr-mb-5w">
224224
<Col>
225225
<TreemapSectionsChart cnuGroups={currentData.cnuGroups} selectedYear={selectedYear} />
226226
</Col>
227227
</Row>
228228

229-
230-
231229
<FmMetricDefinitionsTable
232230
definitionKeys={[
233231
"Groupe CNU",

client/src/boards/faculty-members/pages/structures/sections/sections-cnu/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import MetricCard from "../../components/metric-card";
66
import TreemapSectionsChart from "./charts/treemap-sections";
77
import DefaultSkeleton from "../../../../../../components/charts-skeletons/default";
88
import FmMetricDefinitionsTable from "../../../../components/metric-definitions";
9-
import { CNU_SECTIONS } from "../../../../pages/definitions/cnu-data";
9+
import { CNU_SECTIONS } from "../../../definitions/cnu-data";
1010

1111
interface SectionsCnuSectionProps {
1212
viewType: ViewType;

server/src/routes/boards/faculty-members/data/structures/index.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ function buildMatchStage(view, id, year) {
1919
match.code_grande_discipline = id;
2020
break;
2121
case "region":
22-
match.etablissement_region = id;
22+
match.etablissement_code_region = id;
2323
break;
2424
case "academie":
25-
match.etablissement_academie = id;
25+
match.etablissement_code_academie = id;
2626
break;
2727
}
2828
return match;
@@ -34,8 +34,8 @@ async function getContextInfo(collection, view, id) {
3434
const fieldMap = {
3535
structure: "etablissement_id_paysage",
3636
discipline: "code_grande_discipline",
37-
region: "etablissement_region",
38-
academie: "etablissement_academie",
37+
region: "etablissement_code_region",
38+
academie: "etablissement_code_academie",
3939
};
4040

4141
const doc = await collection.findOne(

0 commit comments

Comments
 (0)