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

Add a select field organizer on TouristicEvent model #3625

Merged
merged 16 commits into from
Aug 29, 2023

Conversation

LePetitTim
Copy link
Contributor

@LePetitTim LePetitTim commented Jun 28, 2023

L'objectif de cette PR est de modifier le champ "Organisateur" sur les évènements touristiques.

Cette demande, issue initialement d'un besoin émis par le PNR des Volcans d'Auvergne, a pour objectif de permettre d'identifier par exemple les évènements organisés par des partenaires du Parc ou non.

Cela devra s'accompagner d'un développement dans GTR3 pour permettre aux utilisateurs d'avoir un filtre sur ce nouveau champ.

Actions à réaliser :

Côté Geotrek-Admin

  • Ajout d'un modèle Organizer dans le module Tourisme de Geotrek, permettant de gérer des objets
  • Modification du modèle Evenement Touristique pour transformer le champ "Organisateur" qui est actuellement un texte sous forme de clé étrangère vers le nouveau modèle.
    -> Concrètement cela permettra de gérer dans l'Admin de Geotrek la liste des organisateurs et dans la fiche détail d'un évènement de pouvoir sélectionner l'organisateur souhaité.
  • Réalisation du script de migration de données pour assurer qu'aucune perte d'information n'aura lieu lors de la modification des modèles en base de données.
  • Développement de tests unitaires pour assurer le fonctionnement de la fonctionnalité et éviter les régressions futures.
  • Ajout d'un filtre dans l'API V2
  • Adaptation des informations servies par l'API
  • Modification des parsers du client pour que les évènements soient bien rattachés aux évènements touristiques (actuellement créés comme des contenus touristiques).

Côté Geotrek-Rando

  • Adaptation des requêtes pour récupérer dans l'API le bon élément et vérifier qu'aucune régression n'a lieu lors de l'affichage de l'information dans la fiche détail d'un évènement
  • Ajout de la possibilité d'utiliser le filtre dans l'API
  • Modification de l'interface pour ajouter le filtre dans l'écran correspondant, modification du fichier de configuration associé pour permettre aux utilisateurs d'activer ou non ce filtre. Le filtre sera désactivé par défaut.

@LePetitTim LePetitTim force-pushed the feat_add_organizer_touristicevent branch 2 times, most recently from 855fd76 to 7ac759f Compare June 28, 2023 16:04
@cypress
Copy link

cypress bot commented Jun 28, 2023

Passing run #6920 ↗︎

0 24 0 0 Flakiness 0

Details:

Merge 5a5a2c9 into dd07ee6...
Project: Geotrek-admin Commit: d1f20fc99b ℹ️
Status: Passed Duration: 04:32 💡
Started: Aug 29, 2023 10:24 AM Ended: Aug 29, 2023 10:28 AM

This comment has been generated by cypress-bot as a result of this project's GitHub integration settings.

@camillemonchicourt
Copy link
Member

En lien avec #3587 ?
Et notamment le point :

Organisateur : Basculer en liste (permet aussi de dissocier les animations parc ou non) - Avec picto pour l'afficher sur les résultats. Et en filtre. Pose la question de la redondance avec les contacts.

Si oui, il ne s'agit pas vraiment d'ajouter les organisateurs des évènements, mais plutôt de les basculer de texte à liste.

Le champs était en 256 et je pense pas qu'il faille le passer en 128.
Il y a une migration des données à faire pour tous les évènements existants qui ont déjà un organisateur en texte.
Et on avait parlé d'avoir un picto/logo optionnel pour chaque organisateur.
Ajouter aussi les organisateurs dans les filtres des évènements.

@LePetitTim LePetitTim force-pushed the feat_add_organizer_touristicevent branch from 7ac759f to d712a25 Compare July 3, 2023 12:09
@babastienne
Copy link
Member

@LePetitTim PR finalisée ou en draft ?

@LePetitTim LePetitTim marked this pull request as draft July 17, 2023 12:29
@LePetitTim LePetitTim force-pushed the feat_add_organizer_touristicevent branch from d712a25 to 42097f2 Compare August 4, 2023 14:47
@codecov
Copy link

codecov bot commented Aug 4, 2023

Codecov Report

Patch coverage: 100.00% and no project coverage change.

Comparison is base (dd07ee6) 98.29% compared to head (5a5a2c9) 98.29%.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #3625   +/-   ##
=======================================
  Coverage   98.29%   98.29%           
=======================================
  Files         292      292           
  Lines       21695    21720   +25     
=======================================
+ Hits        21325    21350   +25     
  Misses        370      370           
Files Changed Coverage Δ
geotrek/api/v2/filters.py 100.00% <100.00%> (ø)
geotrek/api/v2/serializers.py 99.89% <100.00%> (+<0.01%) ⬆️
geotrek/api/v2/urls.py 100.00% <100.00%> (ø)
geotrek/api/v2/views/__init__.py 100.00% <100.00%> (ø)
geotrek/api/v2/views/tourism.py 100.00% <100.00%> (ø)
geotrek/tourism/admin.py 100.00% <100.00%> (ø)
geotrek/tourism/models.py 99.72% <100.00%> (+<0.01%) ⬆️
geotrek/tourism/parsers.py 98.58% <100.00%> (+<0.01%) ⬆️

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@LePetitTim LePetitTim marked this pull request as ready for review August 7, 2023 13:31
@LePetitTim LePetitTim requested a review from a team August 7, 2023 13:52
@LePetitTim
Copy link
Contributor Author

Côté Geotrek-admin :

  • mise en place des listes dans l'admin.
  • recuperation des données depuis apidae tourinsoft et création d'un nouveau Organizer

L'api affiche toujours les organisateur de manière textuelle, comme avant. Il ne faut pas appeler une nouvelle route pour acceder aux organisateurs.

Il est dorénavant possible de filtrer sur les organisateurs d'événements en fonction du label de l'organisateur. Le 'lookup' utilisé est le contains :
la requete faite pour filtrer est donc organizer__label__contains ....

@LePetitTim LePetitTim force-pushed the feat_add_organizer_touristicevent branch 2 times, most recently from 9e53f10 to 7c2e4ae Compare August 10, 2023 15:55
@babastienne
Copy link
Member

Est-ce qu'il ne faudrait pas également ajouter une nouvelle route d'API permettant à GTR3 de récupérer directement toutes les valeurs du champ pour créer le filtre dans l'interface ?

@camillemonchicourt
Copy link
Member

Oui, je pense que ce champs devrait fonctionner comme tous les autres et ne pas avoir un mode de fonctionnement, de recherche et de résultat différent.

@Chatewgne Chatewgne force-pushed the feat_add_organizer_touristicevent branch from aa22edd to 037111b Compare August 24, 2023 15:40
@Chatewgne Chatewgne force-pushed the feat_add_organizer_touristicevent branch from 9159525 to 5a5a2c9 Compare August 29, 2023 10:06
@Chatewgne Chatewgne merged commit aa007e1 into master Aug 29, 2023
15 checks passed
@Chatewgne Chatewgne deleted the feat_add_organizer_touristicevent branch August 29, 2023 12:20
@babastienne babastienne changed the title Feat add organizer touristicevent Add a select field organizer on TouristicEvent model Sep 4, 2023
@camillemonchicourt
Copy link
Member

Pour cette info liée depuis une autre table en particulier, dans la route des événements touristiques (/touristicevent), on renvoie la valeur décodée (exemple "organizer": "Parc national des Cévennes",) et non pas son ID.
Je comprends l'intérêt et comme évoqué plus haut, c'est un sujet discuté plus globalement sur les réponses de l'API v2 pour laquelle il faut faire en permanence des "jointures".
Aussi pour le rétrocompatibilité, notamment de Geotrek-rando-v3.

Mais cela apporte aussi des divergences entre les différentes propriétés de l'API.
A minima, pour garantir la rétro-compatibilité mais avec plus de cohérence, je garderait la propriété organizer qui renvoie l'info à plat décodée, mais j'ajouterai aussi une propriété organizer_id sur la route /touristicevent.

@babastienne
Copy link
Member

babastienne commented Sep 5, 2023

Oui, bien vu, je suis d'accord. A tracer dans un ticket pour qu'on puisse le rajouter à l'occasion.

Edit : c'est déjà fait, trop rapide @camillemonchicourt 😉

@Chatewgne
Copy link
Contributor

Il n'y a pas de filtre par organisateur dans la vue liste des évènements, à faire ?

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

Successfully merging this pull request may close these issues.

None yet

4 participants