-
Notifications
You must be signed in to change notification settings - Fork 51
Mise à jour fichier référence et calculs pesticides/metabolites #186
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
Conversation
… valeur_sanitaire_1_unite impactées)
WalkthroughAjout d’un nouvel état Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. ✨ Finishing Touches
🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
webapp/lib/polluants.ts (2)
427-433
: Libellé “inf_limite_qualite” (métabolites) — clair; micro-amélioration de précision possibleOK pour la reformulation. Option mineure si vous souhaitez harmoniser la granularité avec les libellés “0,1 µg/L / 0,9 µg/L” ailleurs: expliciter les seuils pour éviter toute ambiguïté côté usager.
Proposition (optionnelle):
- "Au moins un métabolite quantifié sans dépassement de la limite réglementaire ou indicative", + "Au moins un métabolite quantifié sans dépassement de la limite de qualité (0,1 µg/L) ni de la limite indicative (0,9 µg/L)",
78-96
: Catégorie “tous” — micro-corrections rédactionnellesQuelques accords/grammaire à corriger pour des textes plus propres en FR.
Proposition (strictement éditoriale):
non_recherche: { - label: "Aucun polluants recherché dans les 12 derniers mois", + label: "Aucun polluant recherché dans les 12 derniers mois", }, inf_limites: { - label: "Aucun dépassement des limites réglementaire", + label: "Aucun dépassement des limites réglementaires", }, sup_limite_qualite: { - label: "Au moins un dépassement des limites réglementaire", + label: "Au moins un dépassement de la limite de qualité", },
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (8)
dbt_/models/intermediate/_int__models.yml
is excluded by none and included by nonedbt_/models/intermediate/int__resultats_udi_communes.sql
is excluded by none and included by nonedbt_/models/intermediate/int__valeurs_de_reference.sql
is excluded by none and included by nonedbt_/models/intermediate/pesticide/metabolite/_int__metabolite_models.yml
is excluded by none and included by nonedbt_/models/intermediate/pesticide/metabolite/int__resultats_metabolite_udi_dernier.sql
is excluded by none and included by nonedbt_/models/intermediate/tous/int__resultats_tous_udi_dernier.sql
is excluded by none and included by nonedbt_/seeds/references_generations_futures.csv
is excluded by!**/*.csv
and included by nonedbt_/seeds/schema.yml
is excluded by none and included by none
📒 Files selected for processing (1)
webapp/lib/polluants.ts
(1 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
webapp/lib/polluants.ts (1)
webapp/components/PollutionMapMarker.tsx (1)
cat
(163-178)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: test
🔇 Additional comments (3)
webapp/lib/polluants.ts (3)
84-96
: Catégorie “tous” — souhaitez-vous rendre visible l’état “sup_limite_indicative” ici aussi ?Aujourd’hui “tous” distingue seulement “inf_limites / sup_limite_qualite / sup_limite_sanitaire”. Si vous souhaitez que la carte et les récapitulatifs reflètent également les dépassements “indicatifs” (0,9 µg/L, non pertinents) quand on regarde “tous”, on peut ajouter un état miroir de celui introduit pour “métabolites”.
Proposition (à confirmer côté produit/calculs; insertion juste après “inf_limites”):
inf_limites: { label: "Aucun dépassement des limites réglementaires", couleur: "#74c476", couleurAlt: "#c7e9c0", picto: null, }, + sup_limite_indicative: { + label: "Au moins un métabolite non-pertinent dépasse la limite indicative de 0,9 µg/L", + couleur: "#FDC70C", + couleurAlt: "#FDC70C", + picto: null, + }, sup_limite_qualite: { label: "Au moins un dépassement de la limite de qualité", couleur: "#fe9929", couleurAlt: "#fe9929", picto: "warning", },Si vous ne souhaitez pas afficher cet état dans “tous”, pas de souci — mais pensez alors à vérifier la cohérence attendue côté carte/légende et statistiques globales.
441-447
: Vérifier la présence du champ “pertinent” dans la définition des métabolitesMerci d’avoir validé que le terme apparaît uniquement dans les libellés et légendes. Il nous faut maintenant confirmer que chaque métabolite porte bien un indicateur binaire (ou équivalent)
pertinent: boolean
dans la configuration, et que ce champ est utilisé par la logique de calcul deresultat
.Points à valider une fois le script exécuté :
- La section
id: "metabolite"
danswebapp/lib/polluants.ts
doit contenir un champ typepertinent
(ou un mapping vers un objet où figure cette propriété).- Si ce champ est absent, ou s’il est nommé différemment, ajouter / corriger la définition pour que la classification pertinent/non-pertinent soit toujours disponible.
- Enfin, vérifier dans la fonction qui agrège les résultats (celle qui construit
resultat
pour chaque substance) que ce champpertinent
est bien pris en compte pour appliquer le bon seuil (0,1 µg/L vs 0,9 µg/L).Dès que nous aurons confirmé la présence et l’usage de ce champ, nous pourrons clore cette vérification.
434-440
: Vérification de l’intégration desup_limite_indicative
Points vérifiés côté code
webapp/lib/polluants.ts
: le nouvel étatsup_limite_indicative
est bien défini immédiatement aprèsinf_limite_qualite
et avantsup_limite_qualite
, garantissant l’ordre d’insertion nécessaire pour un tri naturel viaObject.entries
.webapp/lib/colorMapping.ts
: la légende est construite dynamiquement à partir decategoryDetails.resultats
, de sorte que chaque clé déclarée (dontsup_limite_indicative
) est automatiquement prise en compte sans modification deswitch
/case
.webapp/app/api/udi/[udi_id]/route.ts
: le mappinginfoCategorie.resultats[dataRecord.statut_titre]
couvre dynamiquement tous les identifiants, y comprissup_limite_indicative
, pour l’affichage et l’API.Points à vérifier manuellement
- Génération ETL : assurez-vous que votre pipeline produit bien la valeur
sup_limite_indicative
dans le champrow.resultat
.- Analytics / tableaux de bord : validez qu’aucune agrégation ne regroupe par inadvertance
sup_limite_indicative
avecsup_limite_qualite
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
webapp/lib/polluants.ts (2)
96-102
: Clé “sup_limite_sanitaire” incohérente avec le reste du code (risque de stats à 0 pour “tous”)Dans PollutionMapLegend.tsx, les stats annuelles s’appuient sur la clé
${period}_${category}_sup_valeur_sanitaire
. Ici, la catégorie “tous” exposesup_limite_sanitaire
. Probable effet: compteur/ratio non calculé pour “tous”.Proposition (harmonisation avec les autres catégories):
- sup_limite_sanitaire: { + sup_valeur_sanitaire: { label: "Au moins un dépassement des limites sanitaires", couleur: "#f03b20", couleurAlt: "#bd0026", picto: "red cross", },
427-447
: Vérifier et propagersup_limite_indicative
dans l’agrégateur, la carte et les statsIl manque actuellement toute prise en charge de
sup_limite_indicative
une fois définie danspolluants.ts
. Merci d’ajouter les points suivants :
Agrégateur
• Contrôler dans la fonction de calcul des états (probablement danswebapp/lib/polluants.ts
) quesup_limite_indicative
est bien généré comme résultat lorsque la limite indicative est dépassée.Carte & légende
• Mettre à jourwebapp/components/PollutionMapLegend.tsx
pour :
- afficher la couleur et le picto associés à
sup_limite_indicative
,- inclure cette clé dans les filtres/tri du composant.
Statistiques annuelles
• Dans la construction des noms de stat (getStatistic
), ajouter la clésup_limite_indicative
(au lieu de ne gérer quesup_valeur_sanitaire
) afin que le ratio annuel tienne compte de ce nouvel état.
🧹 Nitpick comments (4)
webapp/lib/polluants.ts (4)
78-102
: Corrections de libellés (accords) dans la catégorie “tous”Quelques fautes d’accords qui se verront côté UI.
Proposition de patch:
non_recherche: { - label: "Aucun polluants recherché dans les 12 derniers mois", + label: "Aucun polluant recherché dans les 12 derniers mois", couleur: "#cccccc", couleurAlt: "#f7f7f7", picto: null, }, inf_limites: { - label: "Aucun dépassement des limites réglementaire", + label: "Aucun dépassement des limites réglementaires", couleur: "#74c476", couleurAlt: "#c7e9c0", picto: null, }, - sup_limite_qualite: { - label: "Au moins un dépassement des limites réglementaire", + sup_limite_qualite: { + label: "Au moins un dépassement des limites réglementaires", couleur: "#fe9929", couleurAlt: "#fe9929", picto: "warning", },
524-549
: Harmoniser couleurs/pictos pour l’UX (indicative = ambre, sanitaire = rouge + croix)Ici, “sup_limite_indicative” est orange (#fe9929) avec picto “warning” alors que, plus haut, il est ambre (#FDC70C) sans picto. Et “sup_valeur_sanitaire” est orange foncé + “warning” alors que partout ailleurs c’est rouge + “red cross”. Pour cohérence visuelle et message de sévérité:
- indicative: #FDC70C, pas de picto
- valeur sanitaire: #f03b20/#bd0026, picto “red cross”
sup_limite_indicative: { label: "Concentration > 0,9 µg/L (dépassement de la limite indicative)", - couleur: "#fe9929", - couleurAlt: "#fe9929", - picto: "warning", + couleur: "#FDC70C", + couleurAlt: "#FDC70C", + picto: null, }, sup_valeur_sanitaire: { label: "Concentration > 3 µg/L (dépassement de la valeur sanitaire)", - couleur: "#d95f0e", - couleurAlt: "#d95f0e", - picto: "warning", + couleur: "#f03b20", + couleurAlt: "#bd0026", + picto: "red cross", },
620-645
: Même harmonisation couleurs/pictos à appliquer iciRépéter l’alignement “indicative = #FDC70C sans picto” et “valeur sanitaire = #f03b20/#bd0026 + red cross”.
sup_limite_indicative: { label: "Concentration > 0,9 µg/L (dépassement de la limite indicative)", - couleur: "#fe9929", - couleurAlt: "#fe9929", - picto: "warning", + couleur: "#FDC70C", + couleurAlt: "#FDC70C", + picto: null, }, sup_valeur_sanitaire: { label: "Concentration > 3 µg/L (dépassement de la valeur sanitaire)", - couleur: "#d95f0e", - couleurAlt: "#d95f0e", - picto: "warning", + couleur: "#f03b20", + couleurAlt: "#bd0026", + picto: "red cross", },
803-813
: Typo dans le séparateur décimalIl y a un espace: “0, 1 µg/L”. À corriger en “0,1 µg/L”.
- label: "Concentration > 0, 1 µg/L (dépassement de la limite de qualité, eau non conforme)", + label: "Concentration > 0,1 µg/L (dépassement de la limite de qualité, eau non conforme)",
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (9)
dbt_/models/intermediate/pesticide/int__resultats_pesticide_udi_dernier.sql
is excluded by none and included by nonedbt_/models/intermediate/pesticide/metabolite_specifique/_int__metabolite_specifique_models.yml
is excluded by none and included by nonedbt_/models/intermediate/pesticide/metabolite_specifique/int__resultats_metabolite_specifique_commune_dernier.sql
is excluded by none and included by nonedbt_/models/intermediate/pesticide/metabolite_specifique/int__resultats_metabolite_specifique_udi_dernier.sql
is excluded by none and included by nonedbt_/models/intermediate/tous/int__resultats_tous_udi_dernier.sql
is excluded by none and included by nonedbt_/tests/test_metabolite_results.sql
is excluded by none and included by nonedbt_/tests/test_metabolite_specifique_results.sql
is excluded by none and included by nonedbt_/tests/test_pesticide_results.sql
is excluded by none and included by nonedbt_/tests/test_sub_active_results.sql
is excluded by none and included by none
📒 Files selected for processing (1)
webapp/lib/polluants.ts
(8 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
webapp/lib/polluants.ts (3)
webapp/components/PollutionMapMarker.tsx (1)
cat
(163-178)webapp/app/lib/mock-data.ts (1)
Synthese
(36-42)webapp/components/PollutionMapLegend.tsx (1)
categoryDetails
(187-198)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: test
🔇 Additional comments (3)
webapp/lib/polluants.ts (3)
715-735
: Règle “pertinent” OKPour un métabolite pertinent, le couple {<0,1} / {>0,1 non conforme} est conforme à la sémantique attendue. RAS.
892-905
: Règle “pertinent” OK (Atrazine déséthyl)Libellé et seuil “> 0,1 µg/L (non conforme)” alignés. RAS.
1503-1517
: LGTM sur l’exclusion de “tous” dans la récursivitéLecture claire, exclusion explicite de “tous”, rien à signaler.
Summary by CodeRabbit
New Features
Style