Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🕵🏻‍♂️ Ajouter des trackers sur les filtres de la page Toutes les FA #3487

Merged
merged 6 commits into from
Dec 18, 2024
Original file line number Diff line number Diff line change
Expand Up @@ -171,34 +171,34 @@ const MenuFiltresToutesLesFichesAction = ({ filters, setFilters }: Props) => {
/>
<Checkbox
label="Sans pilote"
checked={filters.sansPilote}
checked={filters.noPilote}
onChange={() => {
const { sansPilote, ...rest } = filters;
const { noPilote, ...rest } = filters;
setFilters({
...rest,
...(!sansPilote ? { sansPilote: true } : {}),
...(!noPilote ? { noPilote: true } : {}),
});
}}
/>
<Checkbox
label="Sans direction ou service pilote"
checked={filters.sansServicePilote}
checked={filters.noServicePilote}
onChange={() => {
const { sansServicePilote, ...rest } = filters;
const { noServicePilote, ...rest } = filters;
setFilters({
...rest,
...(!sansServicePilote ? { sansServicePilote: true } : {}),
...(!noServicePilote ? { noServicePilote: true } : {}),
});
}}
/>
<Checkbox
label="Sans statut"
checked={filters.sansStatut}
checked={filters.noStatut}
onChange={() => {
const { sansStatut, ...rest } = filters;
const { noStatut, ...rest } = filters;
setFilters({
...rest,
...(!sansStatut ? { sansStatut: true } : {}),
...(!noStatut ? { noStatut: true } : {}),
});
}}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import MenuFiltresToutesLesFichesAction from '@/app/app/pages/collectivite/Plans
import { makeCollectiviteToutesLesFichesUrl } from '@/app/app/paths';
import { useSearchParams } from '@/app/core-logic/hooks/query';
import { useCurrentCollectivite } from '@/app/core-logic/hooks/useCurrentCollectivite';
import { Button, ButtonMenu } from '@/ui';
import { Button, ButtonMenu, useEventTracker } from '@/ui';
import { OpenState } from '@/ui/utils/types';
import { useFicheResumesFetch } from '../FicheAction/data/useFicheResumesFetch';

Expand Down Expand Up @@ -72,9 +72,9 @@ export const nameToparams: Record<
ameliorationContinue: 'ac',
page: 'p',
sort: 'sort',
sansPilote: 'ssp',
sansServicePilote: 'sssp',
sansStatut: 'sss',
noPilote: 'ssp',
noServicePilote: 'sssp',
noStatut: 'sss',
};

/** Page de listing de toutes les fiches actions de la collectivité */
Expand All @@ -98,6 +98,7 @@ const ToutesLesFichesAction = () => {
const filters = convertParamsToFilters(filterParams);

const { mutate: createFicheAction } = useCreateFicheAction();
const tracker = useEventTracker('app/toutes-les-fiches-action');

return (
<div className="min-h-[44rem] flex flex-col gap-8">
Expand Down Expand Up @@ -125,7 +126,13 @@ const ToutesLesFichesAction = () => {
>
<MenuFiltresToutesLesFichesAction
filters={filters}
setFilters={(filters) => setFilterParams(filters)}
setFilters={(filters) => {
setFilterParams(filters);
tracker('filtres', {
collectivite_id: collectivite?.collectivite_id!,
filtreValues: filters,
});
}}
/>
</ButtonMenu>
)}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,11 +173,11 @@ export const useFiltersToBadges = ({ filters, customValues }: Args) => {
badgeValues.push(`Date de début : ${mergedFilters[key]}`);
} else if (key === 'dateFin') {
badgeValues.push(`Date de fin prévisionnelle : ${mergedFilters[key]}`);
} else if (key === 'sansStatut') {
} else if (key === 'noStatut') {
mergedFilters[key] && badgeValues.push('Sans statut');
} else if (key === 'sansPilote') {
} else if (key === 'noPilote') {
mergedFilters[key] && badgeValues.push('Sans pilote');
} else if (key === 'sansServicePilote') {
} else if (key === 'noServicePilote') {
mergedFilters[key] &&
badgeValues.push('Sans direction ou service pilote');
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,15 +235,15 @@ export async function ficheResumesFetch({
query.is('restreint', true);
}

if (filtre.sansPilote) {
if (filtre.noPilote) {
query.is('pilotes', null);
}

if (filtre.sansServicePilote) {
if (filtre.noServicePilote) {
query.is('services', null);
}

if (filtre.sansStatut) {
if (filtre.noStatut) {
query.is('statut', null);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ export const filtreSpecifiqueSchema = z.object({
budgetPrevisionnel: z.coerce.boolean().default(false).optional(),
restreint: z.coerce.boolean().default(false).optional(),
hasIndicateurLies: z.coerce.boolean().default(false).optional(),
sansPilote: z.coerce.boolean().default(false).optional(),
sansServicePilote: z.coerce.boolean().default(false).optional(),
sansStatut: z.coerce.boolean().default(false).optional(),
noPilote: z.coerce.boolean().default(false).optional(),
noServicePilote: z.coerce.boolean().default(false).optional(),
noStatut: z.coerce.boolean().default(false).optional(),
dateDebut: z.string().optional(),
dateFin: z.string().optional(),
ameliorationContinue: z.coerce.boolean().default(false).optional(),
Expand Down
20 changes: 20 additions & 0 deletions packages/ui/src/components/tracking/trackingPlan.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,15 @@ type IndicateursFiltres = {
hasOpenData?: boolean;
};

type FichesActionFiltres = {
budgetPrevisionnel?: boolean;
restreint?: boolean;
hasIndicateurLies?: boolean;
noPilote?: boolean;
noServicePilote?: boolean;
noStatut?: boolean;
};

type EventsGraphReferentiel = {
zoom_graph: {
referentiel: string;
Expand Down Expand Up @@ -244,6 +253,17 @@ export interface TrackingPlan extends Record<never, Page> {
};
};

/** Page toutes les fiches action */
'app/toutes-les-fiches-action': {
properties: { collectivite_id: number };
onglets: never;
events: {
filtres: {
filtreValues: FichesActionFiltres;
};
};
};

/** Actions groupées sur les fiches actions */
'app/actions-groupees-fiches-action': {
properties: { collectivite_id: number };
Expand Down
Loading