From 9ede492fd9d4ac757de43fa002a34b83dffe9770 Mon Sep 17 00:00:00 2001 From: Charles Dufour Date: Thu, 5 Sep 2024 16:01:50 +0200 Subject: [PATCH 1/3] =?UTF-8?q?[TRELLO-2289]=20Baux=20pr=C3=A9caire=20(#86?= =?UTF-8?q?1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [TRELLO-2289] Baux précaire * [TRELLO-2289] Fix test * Revert arbo while keeping baux precaire --- shared/anomalies/Anomaly.ts | 4 ++++ shared/anomalies/checks/checkAnomaliesJson.ts | 1 + .../reportFlow/Details/Details.tsx | 17 +++++++++++++++-- .../reportFlow/Problem/ProblemConsumerWish.tsx | 6 ++++++ website/src/feature/reportUtils.ts | 13 +++++++++---- website/src/i18n/localization/en.ts | 2 ++ website/src/i18n/localization/fr.ts | 2 ++ 7 files changed, 39 insertions(+), 6 deletions(-) diff --git a/shared/anomalies/Anomaly.ts b/shared/anomalies/Anomaly.ts index 2a9dd1cc6..94114c4d9 100644 --- a/shared/anomalies/Anomaly.ts +++ b/shared/anomalies/Anomaly.ts @@ -63,6 +63,7 @@ type SubcategoryBase = CategoryNodeBase & { // A typical subcategory export type StandardSubcategory = SubcategoryBase & { fileLabel?: string + attachmentDesc?: string //Customize consumer client reference input customizedClientReferenceInput?: ClientReferenceInput detailInputs?: DetailInput[] @@ -82,6 +83,8 @@ export type SubcategoryWithInfoWall = SubcategoryBase & { export type Subcategory = StandardSubcategory | SubcategoryWithInfoWall +export const reportTagsNotTransmittableToPro = ['BauxPrecaire'] + export const reportTagsAllowedInYaml = [ 'Hygiene', 'ProduitDangereux', @@ -106,6 +109,7 @@ export const reportTagsAllowedInYaml = [ 'AlimentationMaterielAnimaux', 'Telecom', 'Shrinkflation', + ...reportTagsNotTransmittableToPro ] as const export type ReportTagAllowedInYaml = (typeof reportTagsAllowedInYaml)[number] diff --git a/shared/anomalies/checks/checkAnomaliesJson.ts b/shared/anomalies/checks/checkAnomaliesJson.ts index 949d0411f..8a5633b88 100644 --- a/shared/anomalies/checks/checkAnomaliesJson.ts +++ b/shared/anomalies/checks/checkAnomaliesJson.ts @@ -72,6 +72,7 @@ const subcategoryWithInfoWallSpec: ObjectSpec = { const standardSubcategorySpec: ObjectSpec = { fileLabel: _ => _.ifDefined()?.assertIsString(), + attachmentDesc: _ => _.ifDefined()?.assertIsString(), customizedClientReferenceInput: _ => _.ifDefined()?.assertIsObjectWith({ label: _ => _.ifDefined()?.assertIsString(), diff --git a/website/src/components_feature/reportFlow/Details/Details.tsx b/website/src/components_feature/reportFlow/Details/Details.tsx index 8e56ba797..7909fe9e9 100644 --- a/website/src/components_feature/reportFlow/Details/Details.tsx +++ b/website/src/components_feature/reportFlow/Details/Details.tsx @@ -51,6 +51,7 @@ export const Details = ({stepNavigation}: {stepNavigation: StepNavigation}) => { transmissionStatus={getTransmissionStatus(report)} inputs={inputs} fileLabel={lastSubcategory.fileLabel} + attachmentDesc={lastSubcategory.attachmentDesc} employeeConsumer={report.step1.employeeConsumer} tags={getTags(report)} onSubmit={(detailInputValues, uploadedFiles) => { @@ -69,6 +70,7 @@ export const DetailsInner = ({ initialFiles, inputs, fileLabel, + attachmentDesc, tags, transmissionStatus, employeeConsumer, @@ -82,6 +84,7 @@ export const DetailsInner = ({ initialValues?: DetailInputValues2 initialFiles?: UploadedFile[] fileLabel?: string + attachmentDesc?: string employeeConsumer?: boolean tags?: ReportTag[] stepNavigation: StepNavigation @@ -173,13 +176,23 @@ export const DetailsInner = ({

{fileLabel ?? m.attachments}

- {transmissionStatus !== 'NOT_TRANSMITTABLE' && ( + {transmissionStatus !== 'NOT_TRANSMITTABLE' ? ( <> -

+

{consumerWish !== 'fixContractualDispute' &&

} + ) : ( + + {/*Do not display any custom attachmentDesc for employee consumer reports*/} +

+ )} + {skipQuestion && !r.step1?.employeeConsumer && ( + +

+ + )} {!skipQuestion && ( <> !!_.companyKind)?.companyKind } -export const isTransmittableToPro = (r: ReportPickInStep1<'employeeConsumer' | 'consumerWish'>): boolean => { +export const isTransmittableToPro = ( + r: ReportPickInStep1<'subcategoriesIndexes' | 'employeeConsumer' | 'consumerWish'>, +): boolean => { return isTransmittableToProBeforePickingConsumerWish(r) && r.step1.consumerWish !== 'getAnswer' } -export const isTransmittableToProBeforePickingConsumerWish = (r: ReportPickInStep1<'employeeConsumer'>): boolean => { - return !r.step1.employeeConsumer +export const isTransmittableToProBeforePickingConsumerWish = ( + r: ReportPickInStep1<'subcategoriesIndexes' | 'employeeConsumer'>, +): boolean => { + const tags = getTags(r) + return !r.step1.employeeConsumer && !tags.some(tag => reportTagsNotTransmittableToPro.includes(tag)) } export const getTransmissionStatus = (r: Pick): TransmissionStatus => { diff --git a/website/src/i18n/localization/en.ts b/website/src/i18n/localization/en.ts index 3954b29c5..1fd7c0fa7 100644 --- a/website/src/i18n/localization/en.ts +++ b/website/src/i18n/localization/en.ts @@ -1043,6 +1043,7 @@ export const en = { consumerWishInvestigationIsPossible2: 'If a business receives an excessively high volume or frequent number of reports, Fraud Control will investigate the companies in question.', employeeConsumerInformation: `To ensure your job security, your details will not be transmitted to the company. It will be read only by Fraud Control.`, + notTransmittableToProConsumerInformation: `Your reports will not be transmitted to the company. It will be read only by Fraud Control.`, informationRatingSaved: `Your comments have been recorded, thank you.`, informationTitle: `Unfortunately, we are unable to take your report any further.`, informationReportOutOfScope: `Although we do believe the issue you experienced was genuine, it was not a case of fraud.`, @@ -1073,6 +1074,7 @@ export const en = { attachmentsDescAnonymous: `If you do not want the company to know your identity, remove your name where it appears on your attachments.`, attachmentsDescAllowedFormat: (formats: string[]) => `The following formats are accepted : ${formats.join(', ')}`, attachmentsDesc2: `Including an attachment (for example: a contract, an invoice, exchanges with customer service...) GREATLY increases your chances that corrective action will be taken.
You must not share private or sensitive information (e.g. bank account details or medical records).`, + notTransmittableAttachmentsDesc2: `Including an attachment (e.g., a contract, an invoice, correspondence with customer service…) greatly helps our administrative services.
You must not share private or sensitive information (e.g. bank account details or medical records).`, maxAttachmentsZero: (max: number) => `You can upload up to ${max} attachments`, maxAttachmentsReached: (max: number) => `${max} attachments limit reached`, maxAttachementExceeded: (max: number, toRemove: number) => diff --git a/website/src/i18n/localization/fr.ts b/website/src/i18n/localization/fr.ts index a79715346..42141803d 100644 --- a/website/src/i18n/localization/fr.ts +++ b/website/src/i18n/localization/fr.ts @@ -1051,6 +1051,7 @@ export const fr = { consumerWishInvestigationIsPossible2: 'Si les signalements sont trop nombreux ou fréquents pour un établissement, les enquêteurs de la répression des fraudes interviendront auprès des professionnels.', employeeConsumerInformation: `Afin de garantir la sécurité de votre emploi, votre signalement ne sera pas transmis à l'entreprise. Il sera lu uniquement par la répression des fraudes.`, + notTransmittableToProConsumerInformation: `Votre signalement ne sera pas transmis à l'entreprise. Il sera lu uniquement par la répression des fraudes.`, informationRatingSaved: `Votre avis a bien été enregistré, nous vous en remercions.`, informationTitle: `Emmh, nous ne pouvons pas traiter votre signalement.`, informationReportOutOfScope: `Nous ne doutons pas que vous ayez réellement rencontré un problème mais... il ne s’agit pas d’une fraude.`, @@ -1081,6 +1082,7 @@ export const fr = { attachmentsDescAnonymous: `Si vous ne souhaitez pas que l'entreprise connaisse votre identité, cachez votre nom sur vos pièces jointes.`, attachmentsDescAllowedFormat: (formats: string[]) => `Sont acceptés les formats suivants : ${formats.join(', ')}`, attachmentsDesc2: `Ajouter une pièce jointe (par exemple : un contrat, une facture, des échanges avec le SAV…) augmente FORTEMENT vos chances d’entraîner une mesure corrective !
Vous ne devez pas communiquer de données sensibles (données bancaires ou médicales).`, + notTransmittableAttachmentsDesc2: `Ajouter une pièce jointe (par exemple : un contrat, une facture, des échanges avec le SAV…) pour aider nos services administratifs !
Vous ne devez pas communiquer de données sensibles (données bancaires ou médicales).`, maxAttachmentsZero: (max: number) => `Vous pouvez téléverser jusqu'à ${max} pièces jointes`, maxAttachmentsReached: (max: number) => `Limite de ${max} pièces jointes atteinte`, maxAttachementExceeded: (max: number, toRemove: number) => From 3c45a786c9bc23e644dfefb925423b1f7034ba46 Mon Sep 17 00:00:00 2001 From: charlescd Date: Sat, 7 Sep 2024 08:17:27 +0000 Subject: [PATCH 2/3] Auto commit with fresh dgccrf feed --- mobile-tools/feed.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mobile-tools/feed.json b/mobile-tools/feed.json index cebe99809..54bfcade9 100644 --- a/mobile-tools/feed.json +++ b/mobile-tools/feed.json @@ -3,6 +3,13 @@ "link": "https://www.economie.gouv.fr/", "description": "", "items": [ + { + "title": "La DGCCRF s'engage pour favoriser la consommation durable", + "link": "https://www.economie.gouv.fr/dgccrf/la-dgccrf-sengage-pour-favoriser-la-consommation-durable", + "description": "Faire évoluer nos modes de consommation est nécessaire pour réussir la transition écologique. La DGCCRF participe à l’élaboration de nouvelles réglementations, contrôle l’application des textes destinés à promouvoir une économie plus verte et accompagne les professionnels et les consommateurs vers une consommation plus durable. Le point sur le sujet à l’occasion de la semaine européenne du développement durable 2024.\n", + "guid": "3230353", + "date": "2024-09-06T09:11:16+02:00" + }, { "title": "Le site vous informant sur le prix des contrôles techniques évolue !", "link": "https://www.economie.gouv.fr/dgccrf/le-site-vous-informant-sur-le-prix-des-controles-techniques-evolue", From eddafa8ba9fd75a2097c07840b1dbaa1e65e8efc Mon Sep 17 00:00:00 2001 From: SAID SEDOUD Date: Mon, 9 Sep 2024 08:25:48 +0200 Subject: [PATCH 3/3] TRELLO-2552 : fix demarchage landing --- website/next.config.js | 5 +++-- website/src/app/[lang]/demarchage-abusif/page.tsx | 6 ++++++ website/src/app/[lang]/demarchage-telephonique/page.tsx | 6 ------ website/src/app/[lang]/plan-du-site/page.tsx | 2 +- website/src/components_simple/ScFooter.tsx | 2 +- website/src/core/pagesDefinitions.ts | 2 +- website/src/i18n/localization/en.ts | 4 ++-- website/src/i18n/localization/fr.ts | 4 ++-- .../{demarchageTelephonique.tsx => demarchageAbusif.tsx} | 2 +- 9 files changed, 17 insertions(+), 16 deletions(-) create mode 100644 website/src/app/[lang]/demarchage-abusif/page.tsx delete mode 100644 website/src/app/[lang]/demarchage-telephonique/page.tsx rename website/src/reusablePages/manual_landings/{demarchageTelephonique.tsx => demarchageAbusif.tsx} (99%) diff --git a/website/next.config.js b/website/next.config.js index 388ec0886..0632aba6b 100644 --- a/website/next.config.js +++ b/website/next.config.js @@ -41,9 +41,10 @@ const changedPaths = [ ], ['/fr/app-mobile', '/fr/actualites/signalconso-desormais-disponible-en-application-mobile'], ['/en/app-mobile', '/en/actualites/signalconso-mobile-app-available'], - ['/d%C3%A9marchage-t%C3%A9l%C3%A9phonique', '/demarchage-telephonique'], + ['/d%C3%A9marchage-t%C3%A9l%C3%A9phonique', '/demarchage-abusif'], ['/pompe-%C3%A0-chaleur-pac', '/pompe-a-chaleur-pac'], - ['/fr/bloctel', '/fr/demarchage-telephonique'], + ['/fr/bloctel', '/fr/demarchage-abusif'], + ['/fr/demarchage-telephonique', '/fr/demarchage-abusif'], ['/fr/bloctel/faire-un-signalement', '/fr/demarchage-abusif/faire-un-signalement'], ['/fr/duree-de-vie-produit-obsolescence-programmee-internet', '/fr/duree-de-vie-produit-obsolescence-programmee'], ['/fr/incidents-intoxication-alimentaire', '/fr/intoxication-alimentaire'], diff --git a/website/src/app/[lang]/demarchage-abusif/page.tsx b/website/src/app/[lang]/demarchage-abusif/page.tsx new file mode 100644 index 000000000..ac164c785 --- /dev/null +++ b/website/src/app/[lang]/demarchage-abusif/page.tsx @@ -0,0 +1,6 @@ +import {buildGenerateMetadata} from '@/core/metadatas' +import {DemarchageAbusifPage} from '@/reusablePages/manual_landings/demarchageAbusif' + +export const generateMetadata = buildGenerateMetadata('demarchageAbusif') + +export default DemarchageAbusifPage diff --git a/website/src/app/[lang]/demarchage-telephonique/page.tsx b/website/src/app/[lang]/demarchage-telephonique/page.tsx deleted file mode 100644 index cda877f57..000000000 --- a/website/src/app/[lang]/demarchage-telephonique/page.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import {buildGenerateMetadata} from '@/core/metadatas' -import {DemarchageTelephoniquePage} from '@/reusablePages/manual_landings/demarchageTelephonique' - -export const generateMetadata = buildGenerateMetadata('demarchageTelephonique') - -export default DemarchageTelephoniquePage diff --git a/website/src/app/[lang]/plan-du-site/page.tsx b/website/src/app/[lang]/plan-du-site/page.tsx index e50b9b18a..867966b33 100644 --- a/website/src/app/[lang]/plan-du-site/page.tsx +++ b/website/src/app/[lang]/plan-du-site/page.tsx @@ -47,7 +47,7 @@ const PlanDuSite = (props: PageComponentProps) => { - +


diff --git a/website/src/components_simple/ScFooter.tsx b/website/src/components_simple/ScFooter.tsx index 5760111d3..4edd11b87 100644 --- a/website/src/components_simple/ScFooter.tsx +++ b/website/src/components_simple/ScFooter.tsx @@ -104,7 +104,7 @@ function buildLinksList( link(pagesDefs.signalInfluenceur.url, 'Un influenceur'), link(pagesDefs.obligationFibre.url, 'Un passage forcé à la fibre'), link(pagesDefs.obsolescencePage.url, 'Une obsolescence programmée'), - link(pagesDefs.demarchageTelephonique.url, 'Un démarchage téléphonique'), + link(pagesDefs.demarchageAbusif.url, 'Un démarchage téléphonique abusif'), link(pagesDefs.intoxAlimentaire.url, 'Une intoxication alimentaire'), ], }, diff --git a/website/src/core/pagesDefinitions.ts b/website/src/core/pagesDefinitions.ts index 3cbe9e6ab..a73b5fc32 100644 --- a/website/src/core/pagesDefinitions.ts +++ b/website/src/core/pagesDefinitions.ts @@ -63,7 +63,7 @@ export const internalPageDefs = { obligationFibre: page('/obligation-adsl-fibre', {hasEnglishVersion: false}), signalInfluenceur: page('/signaler-un-influenceur', {hasEnglishVersion: false}), obsolescencePage: page('/duree-de-vie-produit-obsolescence-programmee', {hasEnglishVersion: false}), - demarchageTelephonique: page('/demarchage-telephonique', {hasEnglishVersion: false}), + demarchageAbusif: page('/demarchage-abusif', {hasEnglishVersion: false}), intoxAlimentaire: page('/intoxication-alimentaire', {hasEnglishVersion: false}), } diff --git a/website/src/i18n/localization/en.ts b/website/src/i18n/localization/en.ts index 1fd7c0fa7..376a9e4ab 100644 --- a/website/src/i18n/localization/en.ts +++ b/website/src/i18n/localization/en.ts @@ -143,7 +143,7 @@ export const en = { title: '', description: '', }, - demarchageTelephonique: { + demarchageAbusif: { title: '', description: '', }, @@ -567,7 +567,7 @@ export const en = { telecomResolutionTips: 'Tips for resolving telecom individual issues (disputes)', obligationFibre: 'Report a forced migration to fiber optic Internet', obsolescencePage: 'Report a device with a lifespan that seems too short', - demarchageTelephonique: 'Report an abusive telemarketing call', + demarchageAbusif: 'Report an abusive telemarketing call', intoxAlimentaire: 'Report food poisoning', signalInfluenceur: '', reportIncidentSection: 'Submitting a report', diff --git a/website/src/i18n/localization/fr.ts b/website/src/i18n/localization/fr.ts index 42141803d..35c61eb98 100644 --- a/website/src/i18n/localization/fr.ts +++ b/website/src/i18n/localization/fr.ts @@ -144,7 +144,7 @@ export const fr = { title: "Signaler un cas d'obsolescence programmée", description: 'Votre appareil a une durée de vie qui vous semble trop courte, indice de réparabilité manquant, ...', }, - demarchageTelephonique: { + demarchageAbusif: { title: 'Démarchage téléphonique abusif', description: 'Signaler une entreprise qui vous appelle sans respecter Bloctel, ou hors des horaires autorisés', }, @@ -577,7 +577,7 @@ export const fr = { telecomResolutionTips: "Conseils pour résolution d'un problème individuel lié au télécom (litige)", obligationFibre: 'Faire un signalement pour une migration forcée vers la fibre optique', obsolescencePage: 'Faire un signalement pour un appareil dont la durée de vie vous semble trop courte', - demarchageTelephonique: 'Faire un signalement pour un démarchage téléphonique abusif (malgré Bloctel, trop fréquent, etc.)', + demarchageAbusif: 'Faire un signalement pour un démarchage téléphonique abusif (malgré Bloctel, trop fréquent, etc.)', intoxAlimentaire: 'Faire un signalement pour une intoxication alimentaire', signalInfluenceur: 'Faire un signalement sur un influenceur', reportIncidentSection: "Dépôt d'un signalement", diff --git a/website/src/reusablePages/manual_landings/demarchageTelephonique.tsx b/website/src/reusablePages/manual_landings/demarchageAbusif.tsx similarity index 99% rename from website/src/reusablePages/manual_landings/demarchageTelephonique.tsx rename to website/src/reusablePages/manual_landings/demarchageAbusif.tsx index 9c3b0debe..f20bbc34f 100644 --- a/website/src/reusablePages/manual_landings/demarchageTelephonique.tsx +++ b/website/src/reusablePages/manual_landings/demarchageAbusif.tsx @@ -8,7 +8,7 @@ import {notFound} from 'next/navigation' const bloctel = 'https://www.bloctel.gouv.fr/' -export function DemarchageTelephoniquePage(props: PageComponentProps) { +export function DemarchageAbusifPage(props: PageComponentProps) { const lang = props.params.lang if (lang !== 'fr') { return notFound()