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