feat: utilise les liens de pages partout
parent
6cb2b75c71
commit
fb1fec7001
|
@ -9,18 +9,10 @@ export function createSingleValueStatListItemBlock(
|
||||||
formatOptions: ValueFormatOptions,
|
formatOptions: ValueFormatOptions,
|
||||||
data: StatsData
|
data: StatsData
|
||||||
): BlockObjectRequest {
|
): BlockObjectRequest {
|
||||||
if (isNumber(data)) {
|
if (isNumber(data) ) {
|
||||||
return {
|
return bulletedListNumberData(label, data, formatOptions);
|
||||||
bulleted_list_item: {
|
} else if (data.relatedPageIds.length === 0 ) {
|
||||||
rich_text: [
|
return bulletedListNumberData(label, data.value, formatOptions);
|
||||||
{
|
|
||||||
text: {
|
|
||||||
content: label + ": " + formatValue(data, formatOptions),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
};
|
|
||||||
} else {
|
} else {
|
||||||
return {
|
return {
|
||||||
toggle: {
|
toggle: {
|
||||||
|
@ -37,7 +29,7 @@ export function createSingleValueStatListItemBlock(
|
||||||
rich_text: [
|
rich_text: [
|
||||||
{
|
{
|
||||||
text: {
|
text: {
|
||||||
content: "Page concernées:",
|
content: "Liens: ",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
...data.relatedPageIds.map((pageId) =>
|
...data.relatedPageIds.map((pageId) =>
|
||||||
|
@ -52,6 +44,20 @@ export function createSingleValueStatListItemBlock(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function bulletedListNumberData(label: string, data: number, formatOptions: ValueFormatOptions): BlockObjectRequest {
|
||||||
|
return {
|
||||||
|
bulleted_list_item: {
|
||||||
|
rich_text: [
|
||||||
|
{
|
||||||
|
text: {
|
||||||
|
content: label + ": " + formatValue(data, formatOptions),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
function createPageMentionRichTextElement(pageId: string): {
|
function createPageMentionRichTextElement(pageId: string): {
|
||||||
mention: { page: { id: string } };
|
mention: { page: { id: string } };
|
||||||
} {
|
} {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import { Famille, isExResistant, isResistant } from "../../../data/Famille";
|
import { Famille, isExResistant, isResistant } from "../../../data/Famille";
|
||||||
import { filterFamillesWithOneOfEvenementsOfType } from "../filterFamillesWithOneOfEvenementsOfType";
|
import { filterFamillesWithOneOfEvenementsOfType } from "../filterFamillesWithOneOfEvenementsOfType";
|
||||||
|
import { nbFamillesAvecPagesLiees } from "../penales/nbFamillesAvecPagesLiees";
|
||||||
import { StatsAutres } from "./StatsAutres";
|
import { StatsAutres } from "./StatsAutres";
|
||||||
|
|
||||||
export function computeStatsAutres(familles: Famille[]): StatsAutres {
|
export function computeStatsAutres(familles: Famille[]): StatsAutres {
|
||||||
|
@ -7,20 +8,26 @@ export function computeStatsAutres(familles: Famille[]): StatsAutres {
|
||||||
(f) => isResistant(f) || isExResistant(f)
|
(f) => isResistant(f) || isExResistant(f)
|
||||||
);
|
);
|
||||||
const statsAutres: StatsAutres = {
|
const statsAutres: StatsAutres = {
|
||||||
nbFamillesControleFiscal: filterFamillesWithOneOfEvenementsOfType(
|
nbFamillesControleFiscal: nbFamillesAvecPagesLiees(
|
||||||
famillesResistantesOuEx,
|
filterFamillesWithOneOfEvenementsOfType(
|
||||||
"Contrôle fiscal"
|
famillesResistantesOuEx,
|
||||||
).length,
|
"Contrôle fiscal"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
|
||||||
nbFamillesControleURSAFF: filterFamillesWithOneOfEvenementsOfType(
|
nbFamillesControleURSAFF: nbFamillesAvecPagesLiees(
|
||||||
famillesResistantesOuEx,
|
filterFamillesWithOneOfEvenementsOfType(
|
||||||
"Contrôle URSSAF"
|
famillesResistantesOuEx,
|
||||||
).length,
|
"Contrôle URSSAF"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
|
||||||
nbFamillesSuppressionCAF: filterFamillesWithOneOfEvenementsOfType(
|
nbFamillesSuppressionCAF: nbFamillesAvecPagesLiees(
|
||||||
famillesResistantesOuEx,
|
filterFamillesWithOneOfEvenementsOfType(
|
||||||
"CAF suppression"
|
famillesResistantesOuEx,
|
||||||
).length,
|
"CAF suppression"
|
||||||
|
)
|
||||||
|
),
|
||||||
};
|
};
|
||||||
return statsAutres;
|
return statsAutres;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ import { median } from "../../../utils/math/median";
|
||||||
import { StatsGenerales } from "./StatsGenerales";
|
import { StatsGenerales } from "./StatsGenerales";
|
||||||
import _, { countBy, uniq } from "lodash";
|
import _, { countBy, uniq } from "lodash";
|
||||||
import { isIntegrationEnCours } from "../../../data/StatutFamille";
|
import { isIntegrationEnCours } from "../../../data/StatutFamille";
|
||||||
|
import { nbFamillesAvecPagesLiees } from "../penales/nbFamillesAvecPagesLiees";
|
||||||
|
|
||||||
export function computeStatsGenerales(familles: Famille[]): StatsGenerales {
|
export function computeStatsGenerales(familles: Famille[]): StatsGenerales {
|
||||||
const famillesResistantesOrEx = familles.filter(
|
const famillesResistantesOrEx = familles.filter(
|
||||||
|
@ -24,8 +25,11 @@ export function computeStatsGenerales(familles: Famille[]): StatsGenerales {
|
||||||
(f) => dureeResistanceInDays(f)!
|
(f) => dureeResistanceInDays(f)!
|
||||||
);
|
);
|
||||||
const statsGenerales: StatsGenerales = {
|
const statsGenerales: StatsGenerales = {
|
||||||
nbFamillesResistantesActuelles: famillesResistantes.length,
|
nbFamillesResistantesActuelles:
|
||||||
nbFamillesResistantesActuellesOuPassees: famillesResistantesOrEx.length,
|
nbFamillesAvecPagesLiees(famillesResistantes),
|
||||||
|
nbFamillesResistantesActuellesOuPassees: nbFamillesAvecPagesLiees(
|
||||||
|
famillesResistantesOrEx
|
||||||
|
),
|
||||||
|
|
||||||
nbFamillesResistantesActuellesParDepartement: sortByKey(
|
nbFamillesResistantesActuellesParDepartement: sortByKey(
|
||||||
countBy(famillesResistantes, (f) => f.Departement)
|
countBy(famillesResistantes, (f) => f.Departement)
|
||||||
|
@ -35,7 +39,9 @@ export function computeStatsGenerales(familles: Famille[]): StatsGenerales {
|
||||||
).length,
|
).length,
|
||||||
dureeResistanceMedianne: median(dureesResistances),
|
dureeResistanceMedianne: median(dureesResistances),
|
||||||
dureeResistanceMoyenne: average(dureesResistances),
|
dureeResistanceMoyenne: average(dureesResistances),
|
||||||
nbFamillesResistantesActuellesSansEvenements: famillesSansEvenements.length,
|
nbFamillesResistantesActuellesSansEvenements: nbFamillesAvecPagesLiees(
|
||||||
|
famillesSansEvenements
|
||||||
|
),
|
||||||
nbFamillesParContexteDEntree: sortByKey(
|
nbFamillesParContexteDEntree: sortByKey(
|
||||||
countBy(famillesResistantesOrEx, (f) => f.ContexteEntree)
|
countBy(famillesResistantesOrEx, (f) => f.ContexteEntree)
|
||||||
),
|
),
|
||||||
|
|
|
@ -6,6 +6,7 @@ import {
|
||||||
import { Famille, isExResistant, isResistant } from "../../../data/Famille";
|
import { Famille, isExResistant, isResistant } from "../../../data/Famille";
|
||||||
import { filterFamillesWithOneOfEvenements } from "../filterFamillesWithOneOfEvenements";
|
import { filterFamillesWithOneOfEvenements } from "../filterFamillesWithOneOfEvenements";
|
||||||
import { filterFamillesWithOneOfEvenementsOfType } from "../filterFamillesWithOneOfEvenementsOfType";
|
import { filterFamillesWithOneOfEvenementsOfType } from "../filterFamillesWithOneOfEvenementsOfType";
|
||||||
|
import { nbFamillesAvecPagesLiees } from "../penales/nbFamillesAvecPagesLiees";
|
||||||
import { StatsSociales } from "./StatsSociales";
|
import { StatsSociales } from "./StatsSociales";
|
||||||
|
|
||||||
export function computeStatsSociales(familles: Famille[]): StatsSociales {
|
export function computeStatsSociales(familles: Famille[]): StatsSociales {
|
||||||
|
@ -14,64 +15,91 @@ export function computeStatsSociales(familles: Famille[]): StatsSociales {
|
||||||
);
|
);
|
||||||
const now = new Date();
|
const now = new Date();
|
||||||
const statsCiviles: StatsSociales = {
|
const statsCiviles: StatsSociales = {
|
||||||
nbFamillesProcedureCivile: filterFamillesWithOneOfEvenements(
|
nbFamillesProcedureCivile: nbFamillesAvecPagesLiees(
|
||||||
famillesResistantesOuEx,
|
filterFamillesWithOneOfEvenements(famillesResistantesOuEx, (e) =>
|
||||||
(e) => isProcedureCivile(e)
|
isProcedureCivile(e)
|
||||||
).length,
|
)
|
||||||
|
),
|
||||||
|
|
||||||
nbFamilleAvecIP: filterFamillesWithOneOfEvenements(
|
nbFamilleAvecIP: nbFamillesAvecPagesLiees(
|
||||||
famillesResistantesOuEx,
|
filterFamillesWithOneOfEvenements(
|
||||||
isInformationPreoccupante
|
famillesResistantesOuEx,
|
||||||
).length,
|
isInformationPreoccupante
|
||||||
|
)
|
||||||
|
),
|
||||||
|
|
||||||
nbFamilleAvecClassementSuiteIP: filterFamillesWithOneOfEvenementsOfType(
|
nbFamilleAvecClassementSuiteIP: nbFamillesAvecPagesLiees(
|
||||||
famillesResistantesOuEx,
|
filterFamillesWithOneOfEvenementsOfType(
|
||||||
"Classement suite IP"
|
famillesResistantesOuEx,
|
||||||
).length,
|
"Classement suite IP"
|
||||||
nbFamilleAvecAssistanceEducative: filterFamillesWithOneOfEvenementsOfType(
|
)
|
||||||
famillesResistantesOuEx,
|
),
|
||||||
"Assistance éducative"
|
nbFamilleAvecAssistanceEducative: nbFamillesAvecPagesLiees(
|
||||||
).length,
|
filterFamillesWithOneOfEvenementsOfType(
|
||||||
|
famillesResistantesOuEx,
|
||||||
|
"Assistance éducative"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
|
||||||
nbFamilleAvecAuditionDesEnfants: filterFamillesWithOneOfEvenementsOfType(
|
nbFamilleAvecAuditionDesEnfants: nbFamillesAvecPagesLiees(
|
||||||
famillesResistantesOuEx,
|
filterFamillesWithOneOfEvenementsOfType(
|
||||||
"Audition des enfants"
|
famillesResistantesOuEx,
|
||||||
).length,
|
"Audition des enfants"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
|
||||||
nbFamilleAvecSignalement: filterFamillesWithOneOfEvenementsOfType(
|
nbFamilleAvecSignalement: nbFamillesAvecPagesLiees(
|
||||||
famillesResistantesOuEx,
|
filterFamillesWithOneOfEvenementsOfType(
|
||||||
"Signalement"
|
famillesResistantesOuEx,
|
||||||
).length,
|
"Signalement"
|
||||||
|
)
|
||||||
|
),
|
||||||
jugePourEnfant: {
|
jugePourEnfant: {
|
||||||
nbFamillesPassees: filterFamillesWithOneOfEvenements(
|
nbFamillesPassees: nbFamillesAvecPagesLiees(
|
||||||
famillesResistantesOuEx,
|
filterFamillesWithOneOfEvenements(
|
||||||
(e) => e.Type === "Juge pour enfants" && isEvenementBefore(e, now)
|
famillesResistantesOuEx,
|
||||||
).length,
|
(e) => e.Type === "Juge pour enfants" && isEvenementBefore(e, now)
|
||||||
nbFamillesConvoquées: filterFamillesWithOneOfEvenements(
|
)
|
||||||
famillesResistantesOuEx,
|
),
|
||||||
(e) => e.Type === "Juge pour enfants" && !isEvenementBefore(e, now)
|
nbFamillesConvoquées: nbFamillesAvecPagesLiees(
|
||||||
).length,
|
filterFamillesWithOneOfEvenements(
|
||||||
|
famillesResistantesOuEx,
|
||||||
|
(e) => e.Type === "Juge pour enfants" && !isEvenementBefore(e, now)
|
||||||
|
)
|
||||||
|
),
|
||||||
},
|
},
|
||||||
propFamilleSocial: {
|
propFamilleSocial: {
|
||||||
classementApresIP: famillesResistantesOuEx.filter(
|
classementApresIP: nbFamillesAvecPagesLiees(
|
||||||
(f) => f.Social === "Classement après IP"
|
famillesResistantesOuEx.filter(
|
||||||
).length,
|
(f) => f.Social === "Classement après IP"
|
||||||
classementApresMijeOuAemo: famillesResistantesOuEx.filter(
|
)
|
||||||
(f) => f.Social === "Classement après MIJE ou AEMO ou"
|
),
|
||||||
).length,
|
classementApresMijeOuAemo: nbFamillesAvecPagesLiees(
|
||||||
convocationJugePourEnfants: famillesResistantesOuEx.filter(
|
famillesResistantesOuEx.filter(
|
||||||
(f) => f.Social === "Convocation Juge pour Enfants"
|
(f) => f.Social === "Classement après MIJE ou AEMO ou"
|
||||||
).length,
|
)
|
||||||
convoqueeServiceSociaux: famillesResistantesOuEx.filter(
|
),
|
||||||
(f) => f.Social === "Convoquée par les services sociaux"
|
convocationJugePourEnfants: nbFamillesAvecPagesLiees(
|
||||||
).length,
|
famillesResistantesOuEx.filter(
|
||||||
enqueteEnCours: famillesResistantesOuEx.filter(
|
(f) => f.Social === "Convocation Juge pour Enfants"
|
||||||
(f) => f.Social === "Enquête en cours"
|
)
|
||||||
).length,
|
),
|
||||||
mije: famillesResistantesOuEx.filter((f) => f.Social === "MJIE").length,
|
convoqueeServiceSociaux: nbFamillesAvecPagesLiees(
|
||||||
pasDenquete: famillesResistantesOuEx.filter(
|
famillesResistantesOuEx.filter(
|
||||||
(f) => f.Social === "Pas d’enquête sociale"
|
(f) => f.Social === "Convoquée par les services sociaux"
|
||||||
).length,
|
)
|
||||||
|
),
|
||||||
|
enqueteEnCours: nbFamillesAvecPagesLiees(
|
||||||
|
famillesResistantesOuEx.filter((f) => f.Social === "Enquête en cours")
|
||||||
|
),
|
||||||
|
mije: nbFamillesAvecPagesLiees(
|
||||||
|
famillesResistantesOuEx.filter((f) => f.Social === "MJIE")
|
||||||
|
),
|
||||||
|
pasDenquete: nbFamillesAvecPagesLiees(
|
||||||
|
famillesResistantesOuEx.filter(
|
||||||
|
(f) => f.Social === "Pas d’enquête sociale"
|
||||||
|
)
|
||||||
|
),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
return statsCiviles;
|
return statsCiviles;
|
||||||
|
|
Loading…
Reference in New Issue