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: première proposition format data #808

Merged
merged 4 commits into from
Jun 19, 2024

Conversation

ttdm
Copy link
Collaborator

@ttdm ttdm commented May 31, 2024

Après discussions avec JB et Yohann, ceci est une première proposition de data.

Les "thèmes" ou "catégoriesDeProjets" sont un type déjà présent dans le code qui s'appelle "ObjectiveType" puisque ces thèmes correspondent aujourd'hui directement aux objectifs de dispositifs.
On propose de faire évoluer leur structure en rajoutant un id pour que ce soit plus simple de travailler avec et un highligthProjects.
On a aussi ajouté un displayDots mais il s'agit de la raison principale pour laquelle je ne merge pas immédiatement, je pense qu'il va sauter. Je reviens sur ce point plus en détails en fin de message.

Le type Project a été rajouté dans common avec des mockData. N'hésitez pas à faire évoluer les mockdata dans vos branches respectives pour tester tous vos cas de figure. J'ai essayé d'y mettre des cas "extrèmes" mais c'est très largement incomplet.

J''attend la review de chacun pour merge, en attendant vous devez pouvoir créer vos branches de travail depuis feat/mock_project_data !
N'hésitez pas à commenter ce ticket et à faire vivre la discussion sur ce dont vous avez besoin au niveau du format de donnée pour vous simplifier vos tâches de dev :)

Tout le reste de ce long message concerne la problématique des display dots et de l'affichage conditionnel de la page filtrage par thématique :

  • Toute cette discussion porte sur l'affichage de la page de filtrage par thématique. En particulier, mais pas uniquement de l'affichage des points de suspensions.
  • sur la maquette de Coline, ces points ne dépendent pas du nombre de projets mis en avant mais signifient : il existe plus de projets dans la catégorie que de projets mis en avant.
  • On s'est dit hier avec Yohann que cette valeur pouvait etre calculé une seule fois et donc être ajoutée dans la structure de donnée statique.
  • Or ce n'est pas le cas ! L'affichage des projets mis en avant doit en fait être un affichage conditionnel : on devrait éviter de montrer un project si l'entreprise n'est éligible à aucun programme du projet !
  • donc l'affichage des points de suspensions serait aussi conditionnel.

Si on doit le mettre en place, l'affichage conditionnel des projets sera à mon avis l'opération la plus complexe de toute l'évolution en projet parce qu'elle nécessite de vérifier l'égibilité aux programmes, puis à faire remonter cette information d'éligibilité au niveau des projets, puis à faire des affichages conditionnels.
ça nécessite entre autre de modifier le timing auxquel l'éligibilité aux programme est testée : Après la question "quel est votre objectif prioritaire" et juste avant la page de résultat aujourd'hui" mais avant le choix par projet demain.

Je pense qu'il faudra discuter de cela avec l'équipe. Je pense que c'est quelque chose qui va devoir être fait mail il y aurait des solutions alternatives :

  • dire que ça ne concernera que peu d'entreprises (surement des EI, peut être les DOM-TOM) et qu'on verra ça dans un 2nd temps
  • voir si on peut ajouter une règle pour s'assurer que tous les projets contiennent toujours un dispositif quelque soit l'entreprise qui réalise la demande.
  • précalculer dans le back les conditions dans lesquells il n'y a plus de dispositif dans le projet et ajouter un champs qui décrit cette information (semble complexe!)

@ttdm ttdm self-assigned this May 31, 2024
@ttdm ttdm linked an issue May 31, 2024 that may be closed by this pull request
@dolemoine
Copy link
Collaborator

Déjà, merci pour ces mockData !

  • Sur la question du naming, ça me gêne un peu que côté projet on utilise les termes themes et mainTheme, et de l'autre on a des ObjectiveType. Est-ce qu'on pourrait pas harmoniser ça pour plus de cohérence ?
  • +1 pour les ids des themes pour facilier la liaison
  • Sur le point de la conditionnalité d'affichage : ça me semble logique mais si on va dans ce sens là, il faudrait alors aussi que l'affichage des themes le soit aussi (conditionnel) -> si une entreprise n'est éligible à aucun dispositif d'aucun projet d'une thématique, alors on n'affiche pas la thématique... Est-ce un cas de figure qui peut être rencontré ?
  • Si on ajoute la règle pour garantir qu'un projet contient toujours au moins un dispositif, ça règle le soucis de conditionnalité ci-dessus par extension

@ttdm
Copy link
Collaborator Author

ttdm commented May 31, 2024

Pour l'harmonisation, je suis d'accord, je pencherai plus pour basculer vers theme ou category que objective mais je vous laisse, vous qui passez plus de temps que moi sur le front choisir ce que vous préférez ;)

Pour la conditionalité de l'affichage, je viens d'en discuter avec JB, sa réponse est : c'est une feature qu'on veut à terme mais qu'on peut choisir volontairement d'ignorer dans un premier temps en nous assurant que la grande majorité des entreprises trouvent une proposition dans chaque projet mis en avant. J'ai ouvert le problème mais pareil, je vous laisse décider dans le front de ce que vous voulez faire de cette information ;)
C'est une décision pas facile de savoir vu cette réponse si la page "choississez la thématique de votre projet" fait partie de la piste de question ou déjà des résultats...

D'ailleurs, si ça vous convient, je vous laisserai bien reprendre cette PR à partir de maintenant ?
@dolemoine @oumeimaelisbihani @yvalentin

@yvalentin yvalentin changed the base branch from main to release/project May 31, 2024 09:44
@yvalentin
Copy link
Collaborator

yvalentin commented May 31, 2024

J'ai soulevé une question sur le format enrichie, par exemple pour le champs moreDescription.
Après vérification de la retour de réponse de baserow, nous recevons bien un markdown

        {
            "id": 3,
            "order": "3.00000000000000000000",
            "Nom": "reduction-emballages",
            "Description courte": "Diminuer vos emballages plastiques  et favoriser des solutions de réemploi.",
            "Image": [
                {
                    "url": "https://baserow-media.ams3.digitaloceanspaces.com/user_files/Z2LIFHSpepLj9UES0v574Fl1hB9OJ9n6_c261ce6449d1f5d8d258c169e6c7dc9c245aaa10f2c2adebab21bad326089e22.jpg",
                    "thumbnails": {
                        "tiny": {
                            "url": "https://baserow-media.ams3.digitaloceanspaces.com/thumbnails/tiny/Z2LIFHSpepLj9UES0v574Fl1hB9OJ9n6_c261ce6449d1f5d8d258c169e6c7dc9c245aaa10f2c2adebab21bad326089e22.jpg",
                            "width": null,
                            "height": 21
                        },
                        "small": {
                            "url": "https://baserow-media.ams3.digitaloceanspaces.com/thumbnails/small/Z2LIFHSpepLj9UES0v574Fl1hB9OJ9n6_c261ce6449d1f5d8d258c169e6c7dc9c245aaa10f2c2adebab21bad326089e22.jpg",
                            "width": 48,
                            "height": 48
                        },
                        "card_cover": {
                            "url": "https://baserow-media.ams3.digitaloceanspaces.com/thumbnails/card_cover/Z2LIFHSpepLj9UES0v574Fl1hB9OJ9n6_c261ce6449d1f5d8d258c169e6c7dc9c245aaa10f2c2adebab21bad326089e22.jpg",
                            "width": 300,
                            "height": 160
                        }
                    },
                    "visible_name": "reduc-emballages.jpg",
                    "name": "Z2LIFHSpepLj9UES0v574Fl1hB9OJ9n6_c261ce6449d1f5d8d258c169e6c7dc9c245aaa10f2c2adebab21bad326089e22.jpg",
                    "size": 65420,
                    "mime_type": "image/jpeg",
                    "is_image": true,
                    "image_width": 329,
                    "image_height": 156,
                    "uploaded_at": "2024-05-30T09:26:36.567777+00:00"
                }
            ],
            "Qu’est-ce que c’est ?": "*“L’emballage le plus respectueux de l’environnement reste celui que l’on ne produit pas”*. \\\nMoins de matières premières extraites, transportées et transformées, donc moins de déchets d’emballages à gérer après usage. \\\n\\\nLa loi AGEC fixe des objectifs ambitieux sur la réduction des emballages à usage unique et notamment la fin de la mise sur le marché d'emballages en plastique à usage unique d'ici à 2040. Les entreprises sont encouragées à mettre en oeuvre des actions pour la réduction, la réutilisation, le réemploi et le recyclage des emballages en plastique à usage unique.",
            "Pour aller plus loin": "- [**Site - L’observatoire du réemploi et de la réutilisation**](https://filieres-rep.ademe.fr/observatoire-reemploi-reutilisation/presentation)**.** Cet observatoire a pour ambition d’être une structure d’expertise et d’aide à la décision sur les questions de réemploi et de réutilisation des produits et emballages soumis au principe de REP (responsabilité élargie des producteurs).\n- **Comment diminuer vos déchets plastiques ?** Réduire collectivement nos déchets plastiques est une priorité et ce, même si les solutions de recyclage sont en plein développement. Tour d’horizon et conseils pour changer la donne",
            "Titre": "Réduction des emballages",
            "Projets complémentaires": [],
            "Thématique principale": [
                {
                    "id": 3,
                    "value": "mobilite"
                }
            ],
            "NameTag": null,
            "OK": false,
            "Thématiques secondaires": [],
            "Dispositifs": [
                {
                    "id": 2,
                    "value": "Dispo 2"
                }
            ]
        },
        

@yvalentin
Copy link
Collaborator

L'affichage des projets mis en avant doit en fait être un affichage conditionnel : on devrait éviter de montrer un project si l'entreprise n'est éligible à aucun programme du projet !

Bien vu ! ;-)

# Conflicts:
#	packages/common/src/theme/types.ts
#	packages/web/src/utils/objective.ts
@yvalentin yvalentin removed their request for review June 3, 2024 14:23
@yvalentin yvalentin assigned yvalentin and unassigned ttdm Jun 3, 2024
@yvalentin yvalentin self-requested a review June 16, 2024 20:31
@yvalentin yvalentin added this to the Intégration des projets milestone Jun 17, 2024
@yvalentin yvalentin removed their request for review June 19, 2024 05:44
@yvalentin yvalentin merged commit 233d5eb into release/project Jun 19, 2024
1 check passed
@yvalentin yvalentin deleted the feat/mock_project_data branch June 19, 2024 05:45
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.

Creation des données mock pour front
4 participants