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

feat: Add company data filter to program catalog #1400

Open
wants to merge 29 commits into
base: main
Choose a base branch
from

Conversation

dolemoine
Copy link
Collaborator

@dolemoine dolemoine commented Dec 5, 2024

Résumé :

Cette pull request inclut plusieurs modifications pour améliorer la fonctionnalité et l'expérience utilisateur des filtres sur le catalogue des programmes. Les changements les plus importants se concentrent sur l'ajout d'un nouveau filtre données d'entreprise et la modification de récupération et de filtrage de la liste de programmes.

Note : Cette PR embarque quelques fix sur les tests playwright

Améliorations des filtres de programme (vue components) :

Améliorations de la récupération de la liste des programmes (catalogue) :

  • apps/web/src/components/catalog/CatalogPrograms.vue : Refactorisation de la logique de récupération des données de programme pour utiliser une nouvelle méthode getPrograms et ajout d'un watcher pour mettre à jour les programmes lorsque les données enregistrées changent. [1] [2]
  • apps/web/src/stores/program.ts : Ajout d'un nouveau filtre companySelected au store de programme et mise à jour de la logique de filtrage des programmes pour inclure ce nouveau filtre. [1] [2] [3]

Modification du filtrage des programmes (logique de filtrage) :

App test :

https://tee-preprod-pr1400.osc-fr1.scalingo.io/

close #1110

Introduced a new company data filter to improve the customization of program listings based on selected company attributes. The filter integration enables toggling visibility and selection of programs through company-specific criteria, enhancing user navigation and interaction within the program catalog. Modifications include updates to related components, data handling, and eligibility checks to align with the new filter functionality.
@dolemoine dolemoine self-assigned this Dec 5, 2024
@dolemoine dolemoine changed the title feat: Add company data filter to program listing feat: Add company data filter to program catalog Dec 5, 2024
Updated ProgramFiltersAccordion component to enhance filter visibility control by replacing `shouldDisplayFilter` with `canDisplayFilter` and introducing `companyDataFilterVisibilityClass`. This change ensures proper class assignment based on company's data presence, improving clarity and maintainability of the filter logic. Adjusted active accordion index initialization for better UI responsiveness.
This commit introduces a newline to enhance code readability and maintain formatting consistency. While it may seem minor, such adjustments contribute to better organized code and ease of future maintenance.
Replaced hardcoded filter keys with `FilterItemKeys` enum for consistency and maintainability. Updated related components, stores, and utility functions to adopt the new structure. This simplifies key management and improves code readability.
@dolemoine dolemoine marked this pull request as ready for review December 11, 2024 17:24
Replaced hardcoded timeouts with a shared `timeOut` constant to enhance maintainability in e2e tests. Simplified logic in `usedTrack.ts` for clarity and updated Playwright reporter configuration for better control on CI systems.
@dolemoine dolemoine requested a review from ttdm December 16, 2024 08:24
… logic.

Moved the company filter configuration into a standalone constant and adjusted its rendering logic. This enhances code clarity and maintainability by isolating the company filter from other filters in the accordion.
Replaced the `companyDataAccordion` ref with a primitive `number` value since reactivity was not required. Simplifies the code and avoids unnecessary overhead.
Updated filter to include conditional grey background and text for inactive state. Improved layout with grid rows for better alignment and spacing. This enhances the component's visual hierarchy and accessibility.
Introduce the `resetFilter` method to reset specific filters in the program store. Updated the `ProgramFilter` logic to utilize `resetFilter` for improved filter management consistency. Minor import adjustments were also made for better organization.
Introduced a mapping object to convert StructureSize enums to user-friendly text labels. Updated the company size filter to display these labels, improving clarity and usability of the company data filtering component.
Copy link
Collaborator

@ttdm ttdm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remarque : Dans le ticket référencé, il faut signaler à JB et coline que le point suivant n'est pas traité dans le reste du ticket (s'ils veulent créer une autre carte sur ce point):
"En tant qu'entreprise, j'arrive sur une fiche aide depuis une recherche google, je m'identifie depuis la fiche aide et m'aperçois que je ne suis pas éligible à cette aide. Un CTA "voir mes aides éligibles" m'amène sur le catalogue des aides filtrées pour mon entreprise. "

Praise ++ sur le rendu vraiment très sympa !

Je ne reviens sur la petite remarque sur le tag effectif que je t'ai fait en direct.
J'ai par contre un autre point en bloquant : le filtre d'entreprise que tu as ajouté est visible et présent dans le résultat par aide du parcours je ne sais pas par ou commencer. Je pense que ce n'est pas voulu.

apps/web/src/stores/program.ts Outdated Show resolved Hide resolved
Comment on lines +26 to +30
[FilterItemKeys.typeAid]: [],
[FilterItemKeys.themeType]: '',
[FilterItemKeys.regionAid]: [],
[FilterItemKeys.operatorAid]: [],
[FilterItemKeys.companyData]: false
Copy link
Collaborator

@ttdm ttdm Dec 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ma seule autre remarque de la PR : Je me demande ce que cet enum apporte ?
Je trouve (préférence perso, à disctuer avec les autres devs) les calls "programFilters[FilterItemKeys.themeType]" un peu perturbants et un poil moins lisible que programFilters.X . Quel avantage au changement ?

Copy link
Collaborator Author

@dolemoine dolemoine Dec 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bonne question, il me semble que je l'avais ajouté car j'avais besoin à un moment donné de vérifier qu'une key passée en param était bien un des enum, mais en revoyant le code je me dis que je peux probablement revenir à la version précédente. À vérifier tout de même, il y a sûrement une bonne raison si j'ai fait cette modif 😆

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yvalentin en deuxième review pour voir ce que lui en pense ;)

# Conflicts:
#	apps/web-e2e/src/config.ts
#	apps/web-e2e/src/programResults.spec.ts
#	apps/web-e2e/src/projectResults.spec.ts
#	apps/web/src/components/identification/TeeRegisterModal.vue
Replaced all instances of `CompanyDataStorage` with `CompanyData` for streamlined and consistent company data access. Updated methods and references accordingly to enhance maintainability and readability across components.
Replaced `CompanyDataStorage` with `CompanyData` for improved consistency and modernized data handling. Adjusted related method calls and imports, ensuring better alignment with current code practices and reducing redundancy. Updated UI logic to reflect changes in navigation store behavior.
Updated the icon span with a new class for padding and adjusted its pseudo-element styling to improve alignment and consistency. Ensures better visual presentation across the component.
Reinstates the link for the "NotEligible" program state, redirecting users to the catalog of eligible programs. This provides a clearer path for users to explore relevant assistance options.
@dolemoine
Copy link
Collaborator Author

Réponse à tes commentaires généraux sur la PR :

Remarque : Dans le ticket référencé, il faut signaler à JB et coline que le point suivant n'est pas traité dans le reste du ticket (s'ils veulent créer une autre carte sur ce point):
"En tant qu'entreprise, j'arrive sur une fiche aide depuis une recherche google, je m'identifie depuis la fiche aide et m'aperçois que je ne suis pas éligible à cette aide. Un CTA "voir mes aides éligibles" m'amène sur le catalogue des aides filtrées pour mon entreprise. "

Bien vu, j'ai réactivé le CTA (qui était présent mais commenté comme le filtrage n'était pas fonctionnel)

J'ai par contre un autre point en bloquant : le filtre d'entreprise que tu as ajouté est visible et présent dans le résultat par aide du parcours je ne sais pas par ou commencer. Je pense que ce n'est pas voulu.

Ça a été vu avec Coline, on le laisse bien présent, j'ai juste fait une petite adaptation pour que le checkbox soit disable sur le parcours (il n'y a effectivement pas d'intérêt de proposer le choix sur le filtrage des résultats avec les données d'entreprise)

Renamed the `programFiltersType` type to `ProgramFiltersType` across the codebase for consistency with PascalCase naming conventions. This improves code readability and aligns with type naming standards in the project.
@ttdm
Copy link
Collaborator

ttdm commented Dec 18, 2024

Du coup pour moi, tu as répondu à mon point bloquant donc c'est bon.
Je signale que je n'ai PAS refait de revue fonctionnelle. "Je n'ai PAS revérifié que tes modifs n'apportaient pas de regressions"

@ttdm ttdm self-requested a review December 18, 2024 22:52
@ttdm ttdm requested a review from yvalentin December 18, 2024 22:53
@dolemoine
Copy link
Collaborator Author

J'ai refait une passe fonctionnelle de mon côté, coté catalogue ET parcours "je ne sais pas par où commencer", pas de regressions identifiées

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Filtrer les aides/projets dans les catalogues avec les données entreprise stocké
2 participants