feat: ajoute les pages familles liées sur les stats pénales => broken

wip-related-pages
Sébastien Arod 2024-12-17 21:01:54 +01:00
parent cfb4bcc772
commit ded8e47b5b
3 changed files with 95 additions and 56 deletions

View File

@ -16,8 +16,17 @@ export async function updatePageContent(
const blocksIdsToRemove = childrenBlocks.map((b) => b.id); const blocksIdsToRemove = childrenBlocks.map((b) => b.id);
await removeBlocks(notionClient, blocksIdsToRemove); await removeBlocks(notionClient, blocksIdsToRemove);
await notionClient.blocks.children.append({
block_id: notionPageId, if (useLayeredAppend) {
children: [...newBlocks], firstLevel = newBlocks.map(b => if ("bulleted_list_item" in b) {
}); return {}
})
} else {
await notionClient.blocks.children.append({
block_id: notionPageId,
children: [...newBlocks],
});
}
} }

View File

@ -14,6 +14,7 @@ import { average } from "../../../utils/math/average";
import { filterFamillesWithOneOfEvenements } from "../filterFamillesWithOneOfEvenements"; import { filterFamillesWithOneOfEvenements } from "../filterFamillesWithOneOfEvenements";
import { filterFamillesWithOneOfEvenementsOfType } from "../filterFamillesWithOneOfEvenementsOfType"; import { filterFamillesWithOneOfEvenementsOfType } from "../filterFamillesWithOneOfEvenementsOfType";
import { StatsPenales } from "./StatsPenales"; import { StatsPenales } from "./StatsPenales";
import { nbFamillesAvecPagesLiées } from "./nbFamillesAvecPagesLiées";
type FamilleAvecInfoTribunaux = Famille & { type FamilleAvecInfoTribunaux = Famille & {
evtTribunal1?: EvenementFamille; evtTribunal1?: EvenementFamille;
@ -59,31 +60,41 @@ export function computeStatsPenales(familles: Famille[]): StatsPenales {
}); });
const statsPenales: StatsPenales = { const statsPenales: StatsPenales = {
nbFamillesMisesEnDemeure: famillesMisesEnDemeure.length, nbFamillesMisesEnDemeure: nbFamillesAvecPagesLiées(famillesMisesEnDemeure),
nbFamillesAvecProcedurePenale: filterFamillesWithOneOfEvenements( nbFamillesAvecProcedurePenale: nbFamillesAvecPagesLiées(
famillesResistantesOuEx, filterFamillesWithOneOfEvenements(
isEvtProcedurePenale
).length,
nbFamillesAvecGendarmerie: famillesGendarmerie.length,
nbFamillesAvecGendarmerieSansSuiteACeJour:
famillesAvecGendarmerieSansSuiteACeJour.length,
nbFamillesAvecEvtProcedurePenaleHorsGendarmerie:
famillesAvecEvtProcedurePenaleHorsGendarmerie.length,
procureur: {
nbFamillesAuditionProcureur: filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx, famillesResistantesOuEx,
"Audition procureur" isEvtProcedurePenale
).length, )
),
nbFamillesAvecGendarmerie: nbFamillesAvecPagesLiées(famillesGendarmerie),
nbFamillesAvecGendarmerieSansSuiteACeJour: nbFamillesAvecPagesLiées(
famillesAvecGendarmerieSansSuiteACeJour
),
nbFamillesAvecEvtProcedurePenaleHorsGendarmerie: nbFamillesAvecPagesLiées(
famillesAvecEvtProcedurePenaleHorsGendarmerie
),
procureur: {
nbFamillesAuditionProcureur: nbFamillesAvecPagesLiées(
filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx,
"Audition procureur"
)
),
compositionPenales: computeCompositionPenales(familles), compositionPenales: computeCompositionPenales(familles),
crpc: computeCrpc(familles), crpc: computeCrpc(familles),
nbFamillesClassementSansSuite: filterFamillesWithOneOfEvenementsOfType( nbFamillesClassementSansSuite: nbFamillesAvecPagesLiées(
famillesResistantesOuEx, filterFamillesWithOneOfEvenementsOfType(
"Classement pénal sans suite" famillesResistantesOuEx,
).length, "Classement pénal sans suite"
nbFamilleAcceptationAPP: filterFamillesWithOneOfEvenementsOfType( )
famillesResistantesOuEx, ),
"Acceptation avertissement pénal probatoire" nbFamilleAcceptationAPP: nbFamillesAvecPagesLiées(
).length, filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx,
"Acceptation avertissement pénal probatoire"
)
),
}, },
tribunalCorrectionnel1: computeTribunalCorrectionnel1( tribunalCorrectionnel1: computeTribunalCorrectionnel1(
famillesAvecInfoTribunaux famillesAvecInfoTribunaux
@ -92,19 +103,25 @@ export function computeStatsPenales(familles: Famille[]): StatsPenales {
famillesAvecInfoTribunaux famillesAvecInfoTribunaux
), ),
nbFamilleAvecRequisitionJudiciaire: filterFamillesWithOneOfEvenementsOfType( nbFamilleAvecRequisitionJudiciaire: nbFamillesAvecPagesLiées(
famillesResistantesOuEx, filterFamillesWithOneOfEvenementsOfType(
"Réquisition judiciaire" famillesResistantesOuEx,
).length, "Réquisition judiciaire"
nbFamilleAvecStageParentalité: filterFamillesWithOneOfEvenementsOfType( )
famillesResistantesOuEx, ),
"Stage parentalité" nbFamilleAvecStageParentalité: nbFamillesAvecPagesLiées(
).length, filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx,
"Stage parentalité"
)
),
nbFamillesTribunalDePolice: filterFamillesWithOneOfEvenementsOfType( nbFamillesTribunalDePolice: nbFamillesAvecPagesLiées(
famillesResistantesOuEx, filterFamillesWithOneOfEvenementsOfType(
"Tribunal de police judiciaire" famillesResistantesOuEx,
).length, "Tribunal de police judiciaire"
)
),
intervalGendarmerieProcureur: computeIntervalGendarmerieProcureur(familles), intervalGendarmerieProcureur: computeIntervalGendarmerieProcureur(familles),
intervalProcureurTribunalCorrectionnel: intervalProcureurTribunalCorrectionnel:
@ -130,9 +147,9 @@ function computeCrpc(
); );
return { return {
nbFamilles: famillesConcernees.length, nbFamilles: nbFamillesAvecPagesLiées(famillesConcernees),
acceptees: acceptees.length, acceptees: nbFamillesAvecPagesLiées(acceptees),
refusees: refusees.length, refusees: nbFamillesAvecPagesLiées(refusees),
}; };
} }
@ -153,9 +170,9 @@ function computeCompositionPenales(
); );
return { return {
nbFamilles: famillesConcernees.length, nbFamilles: nbFamillesAvecPagesLiées(famillesConcernees),
acceptees: acceptees.length, acceptees: nbFamillesAvecPagesLiées(acceptees),
refusees: refusees.length, refusees: nbFamillesAvecPagesLiées(refusees),
}; };
} }
@ -172,13 +189,15 @@ function computeTribunalCorrectionnel1(
); );
return { return {
nbFamillesPassees: famillesPassees.length, nbFamillesPassees: nbFamillesAvecPagesLiées(famillesPassees),
nbFamillesConvoquees: famillesProgrammees.length, nbFamillesConvoquees: nbFamillesAvecPagesLiées(famillesProgrammees),
nbFamilleAppelDuJugement: filterFamillesWithOneOfEvenementsOfType( nbFamilleAppelDuJugement: nbFamillesAvecPagesLiées(
famillesResistantesOuEx, filterFamillesWithOneOfEvenementsOfType(
"Appel du 1er jugement" famillesResistantesOuEx,
).length, "Appel du 1er jugement"
)
),
}; };
} }
@ -195,13 +214,15 @@ function computeTribunalCorrectionnel2(
); );
return { return {
nbFamillesPassees: famillesPassees.length, nbFamillesPassees: nbFamillesAvecPagesLiées(famillesPassees),
nbFamillesConvoquees: famillesProgrammees.length, nbFamillesConvoquees: nbFamillesAvecPagesLiées(famillesProgrammees),
nbFamilleAppelDuJugement: filterFamillesWithOneOfEvenementsOfType( nbFamilleAppelDuJugement: nbFamillesAvecPagesLiées(
famillesResistantesOuEx, filterFamillesWithOneOfEvenementsOfType(
"Appel du 2eme jugement" famillesResistantesOuEx,
).length, "Appel du 2eme jugement"
)
),
}; };
} }

View File

@ -0,0 +1,9 @@
import { Famille } from "../../../data/Famille";
import { StatsData } from "../desc/StatsDesc";
export function nbFamillesAvecPagesLiées(familles: Famille[]): StatsData {
return {
value: familles.length,
relatedPageIds: familles.map((f) => f.notionId),
};
}