mirror of
https://framagit.org/enfance-libre/statistiques
synced 2025-12-07 23:13:45 +00:00
feat: ajoute stats CRPC Acceptée/refusée
This commit is contained in:
parent
b0b5a34701
commit
5bbfd14abf
5 changed files with 91 additions and 21 deletions
|
|
@ -37,6 +37,7 @@ export function isProcedureCivile(evenement: EvenementFamille): boolean {
|
||||||
const categorieEvenement: {
|
const categorieEvenement: {
|
||||||
[evt in TypeEvenement]: CategorieEvenement;
|
[evt in TypeEvenement]: CategorieEvenement;
|
||||||
} = {
|
} = {
|
||||||
|
// Procédure civile/social
|
||||||
["Signalement au procureur"]: "Procédure Civile",
|
["Signalement au procureur"]: "Procédure Civile",
|
||||||
["Classement social sans suite"]: "Procédure Civile",
|
["Classement social sans suite"]: "Procédure Civile",
|
||||||
["Enquête sociale"]: "Procédure Civile",
|
["Enquête sociale"]: "Procédure Civile",
|
||||||
|
|
@ -46,6 +47,7 @@ const categorieEvenement: {
|
||||||
["Assistance éducative"]: "Procédure Civile",
|
["Assistance éducative"]: "Procédure Civile",
|
||||||
["Contrôle forcé"]: "Procédure Civile",
|
["Contrôle forcé"]: "Procédure Civile",
|
||||||
|
|
||||||
|
// Procédure pénale
|
||||||
["Récidive gendarmerie"]: "Procédure Pénale",
|
["Récidive gendarmerie"]: "Procédure Pénale",
|
||||||
["Appel du jugement"]: "Procédure Pénale",
|
["Appel du jugement"]: "Procédure Pénale",
|
||||||
["Tribunal de police judiciaire"]: "Procédure Pénale",
|
["Tribunal de police judiciaire"]: "Procédure Pénale",
|
||||||
|
|
@ -61,9 +63,10 @@ const categorieEvenement: {
|
||||||
["Convocation CRPC"]: "Procédure Pénale",
|
["Convocation CRPC"]: "Procédure Pénale",
|
||||||
["Audience CRPC"]: "Procédure Pénale",
|
["Audience CRPC"]: "Procédure Pénale",
|
||||||
["Refus CRPC"]: "Procédure Pénale",
|
["Refus CRPC"]: "Procédure Pénale",
|
||||||
|
["Acceptation CRPC"]: "Procédure Pénale",
|
||||||
["Rappel à la loi"]: "Procédure Pénale",
|
["Rappel à la loi"]: "Procédure Pénale",
|
||||||
["Validation désobéissance"]: "Procédure Pénale",
|
["Validation désobéissance"]: "Procédure Pénale",
|
||||||
|
// Autre
|
||||||
["Plaidoirie"]: "Autre",
|
["Plaidoirie"]: "Autre",
|
||||||
["Refus de contrôle"]: "Autre",
|
["Refus de contrôle"]: "Autre",
|
||||||
["Administrateur AD'HOC"]: "Autre",
|
["Administrateur AD'HOC"]: "Autre",
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ export type TypeEvenement =
|
||||||
| "Plaidoirie"
|
| "Plaidoirie"
|
||||||
| "Audience CRPC"
|
| "Audience CRPC"
|
||||||
| "Refus CRPC"
|
| "Refus CRPC"
|
||||||
|
| "Acceptation CRPC" // PLaceholder see does not exist in Notion yet // See https://discord.com/channels/990921361121746984/1245360366322585691/1248260713634336839
|
||||||
| "Audition des enfants"
|
| "Audition des enfants"
|
||||||
| "Assistance éducative"
|
| "Assistance éducative"
|
||||||
| "Contrôle forcé"
|
| "Contrôle forcé"
|
||||||
|
|
|
||||||
|
|
@ -72,6 +72,29 @@ const statPropsPublishOptions: {
|
||||||
notionPropName: "% procédure pénale avec CRPC",
|
notionPropName: "% procédure pénale avec CRPC",
|
||||||
unit: "%",
|
unit: "%",
|
||||||
},
|
},
|
||||||
|
nbFamillesCRPCAcceptee: {
|
||||||
|
notionPropName: "Nb familles avec CRPC acceptée",
|
||||||
|
},
|
||||||
|
pourcentageCRPCAcceptee: {
|
||||||
|
notionPropName: "% des CRPC qui sont acceptée",
|
||||||
|
unit: "%",
|
||||||
|
},
|
||||||
|
pourcentageFamillesCRPCAcceptee: {
|
||||||
|
notionPropName: "% familles avec CRPC acceptée",
|
||||||
|
unit: "%",
|
||||||
|
},
|
||||||
|
nbFamillesCRPCRefusee: {
|
||||||
|
notionPropName: "Nb familles avec CRPC refusée",
|
||||||
|
},
|
||||||
|
pourcentageCRPCRefusee: {
|
||||||
|
notionPropName: "% des CRPC qui sont refusée",
|
||||||
|
unit: "%",
|
||||||
|
},
|
||||||
|
pourcentageFamillesCRPCRefusee: {
|
||||||
|
notionPropName: "% familles avec CRPC refusée",
|
||||||
|
unit: "%",
|
||||||
|
},
|
||||||
|
|
||||||
nbFamillesProcedureCivile: {
|
nbFamillesProcedureCivile: {
|
||||||
notionPropName: "Nb familles avec procédure civile",
|
notionPropName: "Nb familles avec procédure civile",
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -6,21 +6,34 @@ export type ELStats = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export type ELStatsAtDate<V> = {
|
export type ELStatsAtDate<V> = {
|
||||||
|
// Résistance
|
||||||
nbFamilleResistantes: V;
|
nbFamilleResistantes: V;
|
||||||
nbFamilleResistantesOrEx: V;
|
nbFamilleResistantesOrEx: V;
|
||||||
dureeResistanceMoyenne: V;
|
dureeResistanceMoyenne: V;
|
||||||
dureeResistanceMediane: V;
|
dureeResistanceMediane: V;
|
||||||
|
pourcentageEntreeApresMiseEnDemeure: V;
|
||||||
|
|
||||||
|
// Pénale
|
||||||
nbFamillesMisesEnDemeure: V;
|
nbFamillesMisesEnDemeure: V;
|
||||||
pourcentageFamillesMisesEnDemeure: V;
|
pourcentageFamillesMisesEnDemeure: V;
|
||||||
pourcentageEntreeApresMiseEnDemeure: V;
|
|
||||||
nbFamillesProcedurePenale: V;
|
nbFamillesProcedurePenale: V;
|
||||||
pourcentageFamillesProcedurePenale: V;
|
pourcentageFamillesProcedurePenale: V;
|
||||||
nbFamillesCompositionPenale: V;
|
nbFamillesCompositionPenale: V;
|
||||||
pourcentageFamillesCompositionPenale: V;
|
pourcentageFamillesCompositionPenale: V;
|
||||||
pourcentageProcedurePenaleAvecCompositionPenale: V;
|
pourcentageProcedurePenaleAvecCompositionPenale: V;
|
||||||
|
|
||||||
|
// Pénale > CRPC
|
||||||
nbFamillesCRPC: V;
|
nbFamillesCRPC: V;
|
||||||
pourcentageFamillesCRPC: V;
|
pourcentageFamillesCRPC: V;
|
||||||
pourcentageProcedurePenaleAvecCRPC: V;
|
pourcentageProcedurePenaleAvecCRPC: V;
|
||||||
|
nbFamillesCRPCAcceptee: V;
|
||||||
|
pourcentageCRPCAcceptee: V;
|
||||||
|
pourcentageFamillesCRPCAcceptee: V;
|
||||||
|
nbFamillesCRPCRefusee: V;
|
||||||
|
pourcentageCRPCRefusee: V;
|
||||||
|
pourcentageFamillesCRPCRefusee: V;
|
||||||
|
|
||||||
|
// Civile
|
||||||
nbFamillesProcedureCivile: V;
|
nbFamillesProcedureCivile: V;
|
||||||
pourcentageFamillesProcedureCivile: V;
|
pourcentageFamillesProcedureCivile: V;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -33,13 +33,6 @@ export function computeELStatsAtDate(
|
||||||
const nbFamillesMiseEnDemeure = familleResistantesOrEx.filter((f) =>
|
const nbFamillesMiseEnDemeure = familleResistantesOrEx.filter((f) =>
|
||||||
f.Evenements.find((e) => e.Type === "Mise en demeure de scolarisation")
|
f.Evenements.find((e) => e.Type === "Mise en demeure de scolarisation")
|
||||||
).length;
|
).length;
|
||||||
const pourcentageFamillesMisesEnDemeure = percent(
|
|
||||||
nbFamillesMiseEnDemeure,
|
|
||||||
familleResistantesOrEx.length
|
|
||||||
);
|
|
||||||
|
|
||||||
const pourcentageEntreeApresMiseEnDemeure =
|
|
||||||
computePourcentageEntreeApresMiseEnDemeure(familleResistantesOrEx);
|
|
||||||
|
|
||||||
const famillesAvecProcedurePenale = familleResistantesOrEx.filter((famille) =>
|
const famillesAvecProcedurePenale = familleResistantesOrEx.filter((famille) =>
|
||||||
famille.Evenements.find(
|
famille.Evenements.find(
|
||||||
|
|
@ -57,20 +50,28 @@ export function computeELStatsAtDate(
|
||||||
(evt) => isCRPC(evt) && isEvenementBefore(evt, asOfDate)
|
(evt) => isCRPC(evt) && isEvenementBefore(evt, asOfDate)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
const famillesAvecCRPCAcceptee = familleResistantesOrEx.filter((famille) =>
|
||||||
const pourcentageFamillesProcedurePenale = percent(
|
famille.Evenements.find(
|
||||||
famillesAvecProcedurePenale.length,
|
(evt) =>
|
||||||
familleResistantesOrEx.length
|
isCRPC(evt) &&
|
||||||
|
evt.Type === "Acceptation CRPC" &&
|
||||||
|
isEvenementBefore(evt, asOfDate)
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
const famillesAvecCRPCRefusee = familleResistantesOrEx.filter((famille) =>
|
||||||
|
famille.Evenements.find(
|
||||||
|
(evt) =>
|
||||||
|
isCRPC(evt) &&
|
||||||
|
evt.Type === "Refus CRPC" &&
|
||||||
|
isEvenementBefore(evt, asOfDate)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
const famillesAvecProcedureCivile = familleResistantesOrEx.filter((famille) =>
|
const famillesAvecProcedureCivile = familleResistantesOrEx.filter((famille) =>
|
||||||
famille.Evenements.find(
|
famille.Evenements.find(
|
||||||
(evt) => isProcedurePenale(evt) && isEvenementBefore(evt, asOfDate)
|
(evt) => isProcedurePenale(evt) && isEvenementBefore(evt, asOfDate)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
const pourcentageFamillesProcedureCivile = percent(
|
|
||||||
famillesAvecProcedureCivile.length,
|
|
||||||
familleResistantesOrEx.length
|
|
||||||
);
|
|
||||||
|
|
||||||
const actuelles: ELStatsAtDate<number> = {
|
const actuelles: ELStatsAtDate<number> = {
|
||||||
nbFamilleResistantes: familleResistantes.length,
|
nbFamilleResistantes: familleResistantes.length,
|
||||||
|
|
@ -80,11 +81,18 @@ export function computeELStatsAtDate(
|
||||||
dureeResistanceMediane: median(dureesResistances),
|
dureeResistanceMediane: median(dureesResistances),
|
||||||
|
|
||||||
nbFamillesMisesEnDemeure: nbFamillesMiseEnDemeure,
|
nbFamillesMisesEnDemeure: nbFamillesMiseEnDemeure,
|
||||||
pourcentageFamillesMisesEnDemeure: pourcentageFamillesMisesEnDemeure,
|
pourcentageFamillesMisesEnDemeure: percent(
|
||||||
pourcentageEntreeApresMiseEnDemeure: pourcentageEntreeApresMiseEnDemeure,
|
nbFamillesMiseEnDemeure,
|
||||||
|
familleResistantesOrEx.length
|
||||||
|
),
|
||||||
|
pourcentageEntreeApresMiseEnDemeure:
|
||||||
|
computePourcentageEntreeApresMiseEnDemeure(familleResistantesOrEx),
|
||||||
|
|
||||||
nbFamillesProcedurePenale: famillesAvecProcedurePenale.length,
|
nbFamillesProcedurePenale: famillesAvecProcedurePenale.length,
|
||||||
pourcentageFamillesProcedurePenale: pourcentageFamillesProcedurePenale,
|
pourcentageFamillesProcedurePenale: percent(
|
||||||
|
famillesAvecProcedurePenale.length,
|
||||||
|
familleResistantesOrEx.length
|
||||||
|
),
|
||||||
nbFamillesCompositionPenale: famillesAvecCompositionPenale.length,
|
nbFamillesCompositionPenale: famillesAvecCompositionPenale.length,
|
||||||
pourcentageFamillesCompositionPenale: percent(
|
pourcentageFamillesCompositionPenale: percent(
|
||||||
familleResistantesOrEx.length,
|
familleResistantesOrEx.length,
|
||||||
|
|
@ -103,8 +111,30 @@ export function computeELStatsAtDate(
|
||||||
famillesAvecCRPC.length,
|
famillesAvecCRPC.length,
|
||||||
famillesAvecProcedurePenale.length
|
famillesAvecProcedurePenale.length
|
||||||
),
|
),
|
||||||
|
nbFamillesCRPCAcceptee: famillesAvecCRPCAcceptee.length,
|
||||||
|
pourcentageCRPCAcceptee: percent(
|
||||||
|
famillesAvecCRPCAcceptee.length,
|
||||||
|
famillesAvecCRPC.length
|
||||||
|
),
|
||||||
|
pourcentageFamillesCRPCAcceptee: percent(
|
||||||
|
famillesAvecCRPCAcceptee.length,
|
||||||
|
familleResistantesOrEx.length
|
||||||
|
),
|
||||||
|
nbFamillesCRPCRefusee: famillesAvecCRPCRefusee.length,
|
||||||
|
pourcentageCRPCRefusee: percent(
|
||||||
|
famillesAvecCRPCRefusee.length,
|
||||||
|
famillesAvecCRPC.length
|
||||||
|
),
|
||||||
|
pourcentageFamillesCRPCRefusee: percent(
|
||||||
|
famillesAvecCRPCRefusee.length,
|
||||||
|
familleResistantesOrEx.length
|
||||||
|
),
|
||||||
|
|
||||||
nbFamillesProcedureCivile: famillesAvecProcedureCivile.length,
|
nbFamillesProcedureCivile: famillesAvecProcedureCivile.length,
|
||||||
pourcentageFamillesProcedureCivile: pourcentageFamillesProcedureCivile,
|
pourcentageFamillesProcedureCivile: percent(
|
||||||
|
famillesAvecProcedureCivile.length,
|
||||||
|
familleResistantesOrEx.length
|
||||||
|
),
|
||||||
};
|
};
|
||||||
return actuelles;
|
return actuelles;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue