From 25a44611c907550cbab0d181150531b4eb64800c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guillois?= Date: Tue, 14 Jan 2025 17:11:06 +0100 Subject: [PATCH 1/7] feat: remove filter 'Prise de contact' --- .../HousingDetailsSubCardMobilisation.tsx | 8 -------- .../HousingFiltersBadges/HousingFiltersBadges.tsx | 7 ------- .../HousingListFiltersSidemenu.tsx | 12 ------------ frontend/src/models/HousingFilters.tsx | 7 ------- 4 files changed, 34 deletions(-) diff --git a/frontend/src/components/HousingDetails/HousingDetailsSubCardMobilisation.tsx b/frontend/src/components/HousingDetails/HousingDetailsSubCardMobilisation.tsx index 2454d5659..da7c1ff2e 100644 --- a/frontend/src/components/HousingDetails/HousingDetailsSubCardMobilisation.tsx +++ b/frontend/src/components/HousingDetails/HousingDetailsSubCardMobilisation.tsx @@ -57,14 +57,6 @@ function HousingDetailsCardMobilisation({ housing, campaigns }: Props) { Dernière mise à jour {lastUpdate(housing)} - - Prise de contact - - {campaigns.length === 0 - ? 'Jamais contacté' - : `Contacté ${campaigns.length} fois`} - - Dispositifs ({housing.precisions?.length ?? 0}) diff --git a/frontend/src/components/HousingFiltersBadges/HousingFiltersBadges.tsx b/frontend/src/components/HousingFiltersBadges/HousingFiltersBadges.tsx index 93ceb30f7..b4268ef77 100644 --- a/frontend/src/components/HousingFiltersBadges/HousingFiltersBadges.tsx +++ b/frontend/src/components/HousingFiltersBadges/HousingFiltersBadges.tsx @@ -3,7 +3,6 @@ import { beneficiaryCountOptions, buildingPeriodOptions, cadastralClassificationOptions, - campaignsCountOptions, dataFileYearsExcludedOptions, dataFileYearsIncludedOptions, energyConsumptionOptions, @@ -200,12 +199,6 @@ function HousingFiltersBadges(props: HousingFiltersBadgesProps) { onChange={(values) => onChange?.({ geoPerimetersExcluded: values })} /> )} - onChange?.({ campaignsCounts: values })} - /> )} - - - onChangeFilters({ campaignsCounts: values }, 'Prise de contact') - } - data-testid="filtre-prise-de-contact" - /> - [] = label: OWNER_KIND_LABELS[value] })); -export const campaignsCountOptions: SelectOption[] = [ - { value: '0', label: 'Dans aucune campagne en cours' }, - { value: '1', label: 'Déjà contacté 1 fois' }, - { value: '2', label: 'Déjà contacté 2 fois' }, - { value: 'gt2', label: 'Déjà contacté 3 fois et plus' } -]; - export const statusOptions = ( statusExcluded?: HousingStatus[] ): SelectOption[] => [ From a4c6a356f9796670d7141320f4ff78a94b1546fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guillois?= Date: Tue, 14 Jan 2025 17:11:06 +0100 Subject: [PATCH 2/7] feat: remove filter 'Prise de contact' --- frontend/src/models/HousingFilters.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/src/models/HousingFilters.tsx b/frontend/src/models/HousingFilters.tsx index 9db6a572b..8cd803ff8 100644 --- a/frontend/src/models/HousingFilters.tsx +++ b/frontend/src/models/HousingFilters.tsx @@ -1,7 +1,6 @@ import { BeneficiaryCount, BuildingPeriod, - CampaignCount, ENERGY_CONSUMPTION_VALUES, EnergyConsumption, HousingByBuilding, From 152e6191faf8b16bbdd474ed06a160275195d75c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guillois?= Date: Wed, 15 Jan 2025 11:58:57 +0100 Subject: [PATCH 3/7] feat: remove campaignsCount filter in API --- server/src/controllers/campaignController.ts | 1 - server/src/models/HousingFiltersApi.ts | 2 -- server/src/repositories/housingRepository.ts | 37 +------------------- 3 files changed, 1 insertion(+), 39 deletions(-) diff --git a/server/src/controllers/campaignController.ts b/server/src/controllers/campaignController.ts index b3acbf1bd..57db0fbe4 100644 --- a/server/src/controllers/campaignController.ts +++ b/server/src/controllers/campaignController.ts @@ -479,7 +479,6 @@ async function resetHousingWithoutCampaigns(establishmentId: string) { .find({ filters: { establishmentIds: [establishmentId], - campaignsCounts: ['0'], statusList: [HousingStatusApi.Waiting] }, pagination: { paginate: false } diff --git a/server/src/models/HousingFiltersApi.ts b/server/src/models/HousingFiltersApi.ts index 6c7cb48bc..39ddb1dd9 100644 --- a/server/src/models/HousingFiltersApi.ts +++ b/server/src/models/HousingFiltersApi.ts @@ -32,7 +32,6 @@ export interface HousingFiltersApi housingCounts?: string[]; // TODO: type there based on housing repository values vacancyRates?: string[]; - campaignsCounts?: string[]; campaignIds?: Array; ownerIds?: string[]; localities?: string[]; @@ -71,7 +70,6 @@ const validators = (property = 'filters'): ValidationChain[] => [ body(`${property}.ownershipKinds`).custom(isArrayOf(isString)).optional(), body(`${property}.housingCounts`).custom(isArrayOf(isString)).optional(), body(`${property}.vacancyRates`).custom(isArrayOf(isString)).optional(), - body(`${property}.campaignsCounts`).custom(isArrayOf(isString)).optional(), body(`${property}.campaignIds`).custom(isArrayOf(isUUID)).optional(), body(`${property}.ownerIds`).custom(isArrayOf(isUUID)).optional(), body(`${property}.localities`).custom(isArrayOf(isString)).optional(), diff --git a/server/src/repositories/housingRepository.ts b/server/src/repositories/housingRepository.ts index 86dc02f1f..18a1307b6 100644 --- a/server/src/repositories/housingRepository.ts +++ b/server/src/repositories/housingRepository.ts @@ -340,10 +340,7 @@ function include(includes: HousingInclude[], filters?: HousingFiltersApi) { includes.push('owner'); } - const filterByCampaign = [ - filters?.campaignIds, - filters?.campaignsCounts - ].some((filter) => filter?.length); + const filterByCampaign = (filters?.campaignIds ?? []).length > 0; if (filterByCampaign) { includes.push('campaigns'); } @@ -448,38 +445,6 @@ function filteredQuery(opts: FilteredQueryOptions) { } }); } - if (filters.campaignsCounts?.length) { - queryBuilder.where(function (whereBuilder: any) { - if (filters.campaignsCounts?.includes('0')) { - whereBuilder.orWhereRaw( - `cardinality(${campaignsTable}.campaign_ids) = 0` - ); - } - if (filters.campaignsCounts?.includes('current')) { - whereBuilder.orWhereRaw( - `cardinality(${campaignsTable}.campaign_ids) >= 1` - ); - } - if (filters.campaignsCounts?.indexOf('1') !== -1) { - whereBuilder.orWhereRaw( - `cardinality(${campaignsTable}.campaign_ids)`, - 1 - ); - } - if (filters.campaignsCounts?.indexOf('2') !== -1) { - whereBuilder.orWhereRaw( - `cardinality(${campaignsTable}.campaign_ids)`, - 2 - ); - } - if (filters.campaignsCounts?.indexOf('gt3') !== -1) { - whereBuilder.orWhereRaw( - `cardinality(${campaignsTable}.campaign_ids) >= ?`, - 3 - ); - } - }); - } if (filters.ownerIds?.length) { queryBuilder.whereIn(`${ownerTable}.id`, filters.ownerIds); From b445175086a9262e935c16769596131ab00ebe3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guillois?= Date: Tue, 21 Jan 2025 10:41:29 +0100 Subject: [PATCH 4/7] fix: keep gt0 filter --- server/src/controllers/campaignController.ts | 1 + server/src/models/HousingFiltersApi.ts | 1 + server/src/repositories/housingRepository.ts | 10 +++++++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/server/src/controllers/campaignController.ts b/server/src/controllers/campaignController.ts index 57db0fbe4..b3acbf1bd 100644 --- a/server/src/controllers/campaignController.ts +++ b/server/src/controllers/campaignController.ts @@ -479,6 +479,7 @@ async function resetHousingWithoutCampaigns(establishmentId: string) { .find({ filters: { establishmentIds: [establishmentId], + campaignsCounts: ['0'], statusList: [HousingStatusApi.Waiting] }, pagination: { paginate: false } diff --git a/server/src/models/HousingFiltersApi.ts b/server/src/models/HousingFiltersApi.ts index 39ddb1dd9..8e929aba0 100644 --- a/server/src/models/HousingFiltersApi.ts +++ b/server/src/models/HousingFiltersApi.ts @@ -32,6 +32,7 @@ export interface HousingFiltersApi housingCounts?: string[]; // TODO: type there based on housing repository values vacancyRates?: string[]; + campaignsCounts?: string[]; campaignIds?: Array; ownerIds?: string[]; localities?: string[]; diff --git a/server/src/repositories/housingRepository.ts b/server/src/repositories/housingRepository.ts index 18a1307b6..24c89cf09 100644 --- a/server/src/repositories/housingRepository.ts +++ b/server/src/repositories/housingRepository.ts @@ -445,7 +445,15 @@ function filteredQuery(opts: FilteredQueryOptions) { } }); } - + if (filters.campaignsCounts?.length) { + queryBuilder.where(function (whereBuilder: any) { + if (filters.campaignsCounts?.includes('0')) { + whereBuilder.orWhereRaw( + `cardinality(${campaignsTable}.campaign_ids) = 0` + ); + } + }); + } if (filters.ownerIds?.length) { queryBuilder.whereIn(`${ownerTable}.id`, filters.ownerIds); } From 7d9b86619caa72e551fba3d94d0358bec9a065ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guillois?= Date: Tue, 21 Jan 2025 10:41:29 +0100 Subject: [PATCH 5/7] fix: keep gt0 filter --- server/src/repositories/housingRepository.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server/src/repositories/housingRepository.ts b/server/src/repositories/housingRepository.ts index 24c89cf09..a4a62392d 100644 --- a/server/src/repositories/housingRepository.ts +++ b/server/src/repositories/housingRepository.ts @@ -340,7 +340,10 @@ function include(includes: HousingInclude[], filters?: HousingFiltersApi) { includes.push('owner'); } - const filterByCampaign = (filters?.campaignIds ?? []).length > 0; + const filterByCampaign = [ + filters?.campaignIds, + filters?.campaignsCounts + ].some((filter) => filter?.length); if (filterByCampaign) { includes.push('campaigns'); } From e0a6e4bc13b28ed79d2cc9bf4fff145ebb41b0d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guillois?= Date: Tue, 21 Jan 2025 17:06:53 +0100 Subject: [PATCH 6/7] feat: track filter use with posthog --- .talismanrc | 4 + frontend/.env.example | 2 + .../HousingListFiltersSidemenu.tsx | 177 +++++++++--------- frontend/src/index.tsx | 2 +- frontend/src/utils/config.ts | 3 +- 5 files changed, 98 insertions(+), 90 deletions(-) diff --git a/.talismanrc b/.talismanrc index 496404a86..7a91949fd 100644 --- a/.talismanrc +++ b/.talismanrc @@ -3,12 +3,16 @@ fileignoreconfig: checksum: f7719ba0d36160d97e80ee15cb5415b601354576929e36df0596c7d192465cfb - filename: README.md checksum: df312ccb4c75fc4c2441a1f7f2c7817ee98ffb3065c78d5d7d6addf6ab129176 +- filename: frontend/.env.example + checksum: 7e2a5ff197c49ff9f715b3d189da7282bdb40de53ea49735e9f183ece19168fc - filename: frontend/src/components/Draft/DraftSender.tsx checksum: cfcc1023edac4d29c305f00a4bd86f27d491e4e9535bec2bd905a917b3f396b7 - filename: frontend/src/components/Draft/DraftSignature.tsx checksum: 8abd2b819601d46cc6a3d0a61a60b76391601f2d89d9126f5167b684878bd2d1 - filename: frontend/src/index.tsx checksum: 25a58ba4ecfb8606daf5efbae6a1f0f2efe4e87a4a8a18e745712b39198d93a5 +- filename: frontend/src/utils/config.ts + checksum: 2916d5a89dbd4b6425e9b6980e235007cb0f09a3dd0f2cc8b49f43c0e79d5d5f - filename: packages/api-sdk/src/test/campaign-api.test.ts checksum: b200d9e1fec310660a91e99cd048b24cbe983e0f9f965861d061a7f0992af43e - filename: packages/healthcheck/src/checks/brevo.ts diff --git a/frontend/.env.example b/frontend/.env.example index 5b1de3bad..d4f453086 100644 --- a/frontend/.env.example +++ b/frontend/.env.example @@ -1,3 +1,5 @@ REACT_APP_API_URL=http://localhost:3001 REACT_APP_METABASE_STATS_DASHBOARD=UUID REACT_APP_FEATURE_OCCUPANCY=ct1,ct2,ct3 +REACT_APP_POSTHOG_ENABLED=false +REACT_APP_POSTHOG_API_KEY=key diff --git a/frontend/src/components/HousingListFilters/HousingListFiltersSidemenu.tsx b/frontend/src/components/HousingListFilters/HousingListFiltersSidemenu.tsx index 80d49b9ad..d85ad9124 100644 --- a/frontend/src/components/HousingListFilters/HousingListFiltersSidemenu.tsx +++ b/frontend/src/components/HousingListFilters/HousingListFiltersSidemenu.tsx @@ -6,6 +6,7 @@ import { CSSObject, styled, Theme } from '@mui/material/styles'; import Grid from '@mui/material/Unstable_Grid2'; import Typography from '@mui/material/Typography'; import classNames from 'classnames'; +import posthog from 'posthog-js'; import { isDefined } from '@zerologementvacant/utils'; import { Icon, SearchableSelect, Text } from '../_dsfr'; @@ -223,10 +224,10 @@ function HousingListFiltersSidemenu(props: Props) { label="Sous-statut de suivi" options={getSubStatusListOptions(filters.statusList ?? [])} initialValues={filters.subStatus} - onChange={(values) => - onChangeFilters({ subStatus: values }, 'Sous-statut') - } - data-testid="filtre-sous-statut-suivi" + onChange={(values) => { + onChangeFilters({ subStatus: values }, 'Sous-statut'); + posthog.capture('filtre-sous-statut-suivi'); + }} /> {campaigns && ( @@ -234,10 +235,10 @@ function HousingListFiltersSidemenu(props: Props) { ) => - onChangeFilters({ campaignIds: values }, 'Campagne') - } - data-testid="filtre-campagne" + onChange={(values: Array) => { + onChangeFilters({ campaignIds: values }, 'Campagne'); + posthog.capture('filtre-campagne'); + }} /> )} @@ -246,10 +247,10 @@ function HousingListFiltersSidemenu(props: Props) { label="Prise de contact" options={campaignsCountOptions} initialValues={filters.campaignsCounts} - onChange={(values) => - onChangeFilters({ campaignsCounts: values }, 'Prise de contact') - } - data-testid="filtre-prise-de-contact" + onChange={(values) => { + onChangeFilters({ campaignsCounts: values }, 'Prise de contact'); + posthog.capture('filtre-sources-millesimes-exclu'); + }} /> @@ -266,10 +267,10 @@ function HousingListFiltersSidemenu(props: Props) { label="Statut d’occupation" options={allOccupancyOptions} initialValues={filters.occupancies} - onChange={(values) => - onChangeFilters({ occupancies: values }, 'Statut d’occupation') - } - data-testid="filtre-statut-occupation" + onChange={(values) => { + onChangeFilters({ occupancies: values }, 'Statut d’occupation'); + posthog.capture('filtre-statut-occupation'); + }} /> {filters?.occupancies?.includes(Occupancy.VACANT) && ( @@ -319,6 +320,7 @@ function HousingListFiltersSidemenu(props: Props) { { intercommunalities: values.map((value) => value.id) }, 'Intercommunalité' ); + posthog.capture('filtre-commune'); } } }} @@ -328,7 +330,6 @@ function HousingListFiltersSidemenu(props: Props) { placeholder: 'Rechercher une intercommunalité' } }} - data-testid="filtre-commune" /> @@ -342,9 +343,9 @@ function HousingListFiltersSidemenu(props: Props) { { localities: concat(filters.localities, value) }, 'Commune' ); + posthog.capture('filtre-commune'); } }} - data-testid="filtre-commune" /> @@ -352,10 +353,10 @@ function HousingListFiltersSidemenu(props: Props) { label="Type de commune" options={localityKindsOptions} initialValues={filters.localityKinds} - onChange={(values) => - onChangeFilters({ localityKinds: values }, 'Type de commune') - } - data-testid="filtre-type-de-commune" + onChange={(values) => { + onChangeFilters({ localityKinds: values }, 'Type de commune'); + posthog.capture('filtre-commune'); + }} /> @@ -377,9 +378,9 @@ function HousingListFiltersSidemenu(props: Props) { }, 'Périmètre inclus' ); + posthog.capture('filtre-perimetre-inclus'); } }} - data-testid="filtre-perimetre-inclus" /> @@ -401,9 +402,9 @@ function HousingListFiltersSidemenu(props: Props) { }, 'Périmètre exclu' ); + posthog.capture('filtre-perimetre-exclu'); } }} - data-testid="filtre-perimetre-exclu" /> {!isVisitor && } @@ -420,13 +421,13 @@ function HousingListFiltersSidemenu(props: Props) { label="Nombre de logements" options={housingCountOptions} initialValues={filters.housingCounts} - onChange={(values) => + onChange={(values) => { onChangeFilters( { housingCounts: values }, 'Nombre de logements' - ) - } - data-testid="filtre-nombre-de-logements" + ); + posthog.capture('filtre-nombre-de-logements'); + }} /> @@ -434,10 +435,10 @@ function HousingListFiltersSidemenu(props: Props) { label="Taux de vacance" options={vacancyRateOptions} initialValues={filters.vacancyRates} - onChange={(values) => - onChangeFilters({ vacancyRates: values }, 'Taux de vacance') - } - data-testid="filtre-taux-de-vacance" + onChange={(values) => { + onChangeFilters({ vacancyRates: values }, 'Taux de vacance'); + posthog.capture('filtre-taux-de-vacance'); + }} /> @@ -445,13 +446,13 @@ function HousingListFiltersSidemenu(props: Props) { label="Étiquette DPE représentatif (CSTB)" options={energyConsumptionOptions} initialValues={filters.energyConsumption} - onChange={(values) => + onChange={(values) => { onChangeFilters( { energyConsumption: values }, 'Étiquette DPE représentatif (CSTB)' - ) - } - data-testid="filtre-etiquette-dpe" + ); + posthog.capture('filtre-etiquette-dpe'); + }} /> @@ -463,10 +464,10 @@ function HousingListFiltersSidemenu(props: Props) { label="Type de logement" options={housingKindOptions} initialValues={filters.housingKinds} - onChange={(values) => - onChangeFilters({ housingKinds: values }, 'Type') - } - data-testid="filtre-type-logement" + onChange={(values) => { + onChangeFilters({ housingKinds: values }, 'Type'); + posthog.capture('filtre-type-logement'); + }} /> @@ -474,13 +475,13 @@ function HousingListFiltersSidemenu(props: Props) { label="Date de construction" options={buildingPeriodOptions} initialValues={filters.buildingPeriods} - onChange={(values) => + onChange={(values) => { onChangeFilters( { buildingPeriods: values }, 'Date de construction' - ) - } - data-testid="filtre-date-construction" + ); + posthog.capture('filtre-date-construction'); + }} /> @@ -488,10 +489,10 @@ function HousingListFiltersSidemenu(props: Props) { label="Surface" options={housingAreaOptions} initialValues={filters.housingAreas} - onChange={(values) => - onChangeFilters({ housingAreas: values }, 'Surface') - } - data-testid="filtre-surface" + onChange={(values) => { + onChangeFilters({ housingAreas: values }, 'Surface'); + posthog.capture('filtre-surface'); + }} /> @@ -499,10 +500,10 @@ function HousingListFiltersSidemenu(props: Props) { label="Nombre de pièces" options={roomsCountOptions} initialValues={filters.roomsCounts ?? []} - onChange={(values) => - onChangeFilters({ roomsCounts: values }, 'Nombre de pièces') - } - data-testid="filtre-nombre-de-pieces" + onChange={(values) => { + onChangeFilters({ roomsCounts: values }, 'Nombre de pièces'); + posthog.capture('filtre-nombre-de-pieces'); + }} /> @@ -512,15 +513,15 @@ function HousingListFiltersSidemenu(props: Props) { initialValues={filters.isTaxedValues?.map((value) => value ? 'true' : 'false' )} - onChange={(values) => + onChange={(values) => { onChangeFilters( { isTaxedValues: values.map((value) => value === 'true') }, 'Taxé' - ) - } - data-testid="filtre-taxe" + ); + posthog.capture('filtre-taxe'); + }} /> @@ -528,13 +529,13 @@ function HousingListFiltersSidemenu(props: Props) { label="Classement cadastral" options={cadastralClassificationOptions} initialValues={filters.cadastralClassifications} - onChange={(values) => + onChange={(values) => { onChangeFilters( { cadastralClassifications: values }, 'Classement cadastral' - ) - } - data-testid="filtre-classement-cadastral" + ); + posthog.capture('filtre-classement-cadastral'); + }} /> @@ -542,10 +543,10 @@ function HousingListFiltersSidemenu(props: Props) { label="Type de propriété" options={ownershipKindsOptions} initialValues={filters.ownershipKinds} - onChange={(values) => - onChangeFilters({ ownershipKinds: values }, 'Type de propriété') - } - data-testid="filtre-type-propriete" + onChange={(values) => { + onChangeFilters({ ownershipKinds: values }, 'Type de propriété'); + posthog.capture('filtre-type-propriete'); + }} /> @@ -560,10 +561,10 @@ function HousingListFiltersSidemenu(props: Props) { label="Type de propriétaire" options={ownerKindOptions} initialValues={filters.ownerKinds} - onChange={(values) => - onChangeFilters({ ownerKinds: values }, 'Type') - } - data-testid="filtre-type-proprietaire" + onChange={(values) => { + onChangeFilters({ ownerKinds: values }, 'Type'); + posthog.capture('filtre-type-proprietaire'); + }} /> @@ -572,10 +573,10 @@ function HousingListFiltersSidemenu(props: Props) { label="Âge" options={ownerAgeOptions} initialValues={filters.ownerAges} - onChange={(values) => - onChangeFilters({ ownerAges: values }, 'Âge') - } - data-testid="filtre-age" + onChange={(values) => { + onChangeFilters({ ownerAges: values }, 'Âge'); + posthog.capture('filtre-age'); + }} /> @@ -585,13 +586,13 @@ function HousingListFiltersSidemenu(props: Props) { initialValues={filters.multiOwners?.map((value) => value ? 'true' : 'false' )} - onChange={(values) => + onChange={(values) => { onChangeFilters( { multiOwners: values?.map((value) => value === 'true') }, 'Multi-propriétaire' - ) - } - data-testid="filtre-multi-propriétaire" + ); + posthog.capture('filtre-multi-propriétaire'); + }} /> @@ -599,13 +600,13 @@ function HousingListFiltersSidemenu(props: Props) { label="Propriétaires secondaires" options={beneficiaryCountOptions} initialValues={filters.beneficiaryCounts} - onChange={(values) => + onChange={(values) => { onChangeFilters( { beneficiaryCounts: values }, 'Propriétaires secondaires' - ) - } - data-testid="filtre-proprietaires-secondaires" + ); + posthog.capture('filtre-proprietaires-secondaires'); + }} /> @@ -619,13 +620,13 @@ function HousingListFiltersSidemenu(props: Props) { initialValues={(filters.dataFileYearsIncluded ?? []).map((_) => String(_) )} - onChange={(values) => + onChange={(values) => { onChangeFilters( { dataFileYearsIncluded: values }, 'Sources et Millésimes inclus' - ) - } - data-testid="filtre-sources-millesimes-inclus" + ); + posthog.capture('filtre-sources-millesimes-inclus'); + }} /> @@ -636,13 +637,13 @@ function HousingListFiltersSidemenu(props: Props) { initialValues={(filters.dataFileYearsExcluded ?? []).map((_) => String(_) )} - onChange={(values) => + onChange={(values) => { onChangeFilters( { dataFileYearsExcluded: values }, 'Sources et millésime exclus' - ) - } - data-testid="filtre-sources-millesimes-exclu" + ); + posthog.capture('filtre-sources-millesimes-exclu'); + }} /> diff --git a/frontend/src/index.tsx b/frontend/src/index.tsx index 233cbd8c3..d69e05caa 100644 --- a/frontend/src/index.tsx +++ b/frontend/src/index.tsx @@ -24,7 +24,7 @@ declare module '@codegouvfr/react-dsfr/spa' { } if (config.posthog.enabled) { - posthog.init('phc_Thondx9VvGONN5SZK0OuDttJDIorIANsudwCL2gU3O7', { + posthog.init(config.posthog.apiKey, { api_host: 'https://eu.i.posthog.com', person_profiles: 'identified_only' }); diff --git a/frontend/src/utils/config.ts b/frontend/src/utils/config.ts index 4145177f8..6e1ccefd4 100644 --- a/frontend/src/utils/config.ts +++ b/frontend/src/utils/config.ts @@ -12,7 +12,8 @@ const config = { enabled: process.env.REACT_APP_POSTHOG_ENABLED !== undefined ? process.env.REACT_APP_POSTHOG_ENABLED === 'true' - : process.env.NODE_ENV === 'production' + : process.env.NODE_ENV === 'production', + apiKey: process.env.REACT_APP_POSTHOG_API_KEY ?? '' }, dataYear: 2023, banEligibleScore: 0.8, From 2ab25e11244de8dcc2ea0627f1f02c098a969dd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20GUILLOIS?= Date: Wed, 22 Jan 2025 17:52:46 +0100 Subject: [PATCH 7/7] Fix: typos --- .../HousingListFilters/HousingListFiltersSidemenu.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/src/components/HousingListFilters/HousingListFiltersSidemenu.tsx b/frontend/src/components/HousingListFilters/HousingListFiltersSidemenu.tsx index d85ad9124..88f4725f7 100644 --- a/frontend/src/components/HousingListFilters/HousingListFiltersSidemenu.tsx +++ b/frontend/src/components/HousingListFilters/HousingListFiltersSidemenu.tsx @@ -249,7 +249,7 @@ function HousingListFiltersSidemenu(props: Props) { initialValues={filters.campaignsCounts} onChange={(values) => { onChangeFilters({ campaignsCounts: values }, 'Prise de contact'); - posthog.capture('filtre-sources-millesimes-exclu'); + posthog.capture('filtre-prise-de-contact'); }} /> @@ -320,7 +320,7 @@ function HousingListFiltersSidemenu(props: Props) { { intercommunalities: values.map((value) => value.id) }, 'Intercommunalité' ); - posthog.capture('filtre-commune'); + posthog.capture('filtre-intercommunalite'); } } }} @@ -591,7 +591,7 @@ function HousingListFiltersSidemenu(props: Props) { { multiOwners: values?.map((value) => value === 'true') }, 'Multi-propriétaire' ); - posthog.capture('filtre-multi-propriétaire'); + posthog.capture('filtre-multi-proprietaire'); }} /> @@ -642,7 +642,7 @@ function HousingListFiltersSidemenu(props: Props) { { dataFileYearsExcluded: values }, 'Sources et millésime exclus' ); - posthog.capture('filtre-sources-millesimes-exclu'); + posthog.capture('filtre-sources-millesimes-exclus'); }} />