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

A_DISC_1 - [HOME][DISCUSSIONS] Ajout d'une section "Dernières discussion" #3138

Closed
andriacap opened this issue Jul 24, 2024 · 7 comments
Closed

Comments

@andriacap
Copy link
Contributor

andriacap commented Jul 24, 2024

Epic #2983

Branche de dev : https://github.com/naturalsolutions/geonature/tree/feat/home/display-latest-discussions

PR : #3154

Description:

On souhaite ajouter une section "Dernière Discussions" sur la page d'accueil. Voir l'epic #2983.

Config

Cette section sera optionnelle et désactivée par défault. Sa configuration sera gestion basée sur une nouvelle entrée booléenne (optionnelle, à false par défaut) dans la config:

[HOME]
   DISPLAY_LATEST_DISCUSSIONS  = true

Route et permissions

Cette section reposera sur la route existante de la synthèse suivante: /synthese/reports?type=discussions
La prise en compte des permissions est donc déléguée à cette route, et ne nécessitera pas de développement particulier.

La route sera enrichie de deux fonctionnalités:

  • la possibilité de pagination
  • la possibilité de renvoyer des informations sur l'observation concernée
    • nom latin
    • observateur: nom prénom
    • date de l'observation

Redirection vers la synthèse

La version actuelle de la synthèse propose une route dédiée à une fiche d'observation. Cette route ne permet pas d'accéder à un onglet particulier. Un développement est à envisager (voir ticket à définir)

Frontend

Image
Le design final est à affiner. Il devra intégrer:

  • l'affichage paginée de la liste
  • un élément de renvoi vers la discussion et la fiche observation dans la synthèse

Développements envisagés et discussions

Pour le moment la route GET /reports doit frocément fournir idSynthese en query params , sinon ça renvoie une 404.
Est ce que ce comportement est souhaité ?Dans la logique de la route actuelle et pour avoir une API plus REST est ce qu'il ne faudrait plutot pas avoir /reports/<id_synthese> , donc id_synthese écrire en snake_case plutot qu'en camelCase et l'avoir en path parameters plutôt query parameters ?

Est ce qu'il est souhaité de créer une route disctinte pour requêter sur les discussions ou est ce qu'on modifie cette la route existante synthese/reports et gérer l'absence d" id_synthese dans la requête ?

@andriacap andriacap converted this from a draft issue Jul 24, 2024
@edelclaux edelclaux moved this from Prêt to A discuter in ARB IDF - GeoNature-social Jul 24, 2024
@edelclaux edelclaux moved this from A discuter to En discussion in ARB IDF - GeoNature-social Jul 24, 2024
@camillemonchicourt
Copy link
Member

OK. Un détail :
LAST > LATEST

@andriacap
Copy link
Contributor Author

Salut Camille,

Bien vu ! Merci

@jacquesfize
Copy link
Contributor

Bonjour à tous,

Ok pour la modification de la route synthese/reports, c'est plus logique en effet ! Concernant, la possibilité d'absence d'identifiant de synthèse, ça serait pour récupérer les dernières discussions toutes observations confondues ? Dans tous les cas, il ne faut pas créer une nouvelle route mais plutôt compléter l'existante. C'est une possibilité avec Flask

@routes.route("/reports", methods=["GET"])
@routes.route("/reports/id_synthese", methods=["GET"])
@permissions_required("R", module_code="SYNTHESE")
def list_reports(permissions,id_synthese):
     ....

Pour ce qui est de la pagination, c'est très fortement souhaité !

@andriacap
Copy link
Contributor Author

andriacap commented Jul 25, 2024

Bonjour Jacques , merci pour ton retour et ta réponse !

Ok ça marche pour compléter l'existant ! Et ok pour paginer c'était prévu :)

On pensait également rajouter des query params pour ne récupérer que les "reports" (discussions) auxquels l'utilisateur connecté à participé . Ce qui permettrait de filtrer les discussions coté clients

La nomenclature du query params et son implémentation et par défaut à false (vu que ça sera paginé ça ne devrait pas être trop lourd ) .

  • my_reports = request.args.get("my_reports", 'false').lower() == 'true'

Coté frontend on aurait un bouton "toggle/switch" .

Encore merci pour vos retours !

@camillemonchicourt
Copy link
Member

Oui, à terme on peut aussi imaginer une page permettant de lister toutes les discussions par date décroissante avec différents filtres (par utilisateur, par date, par rang taxonomique d'observation liée, etc...). Et cette même route serait aussi utilisée.

@andriacap
Copy link
Contributor Author

andriacap commented Jul 29, 2024

Salut ,

Concernant les développements en cours , ils sont sur cette branche : https://github.com/naturalsolutions/geonature/tree/feat/home/display-latest-discussions.

Coté Backend:

  • Modification des tests backend par rapport aux développements sur la route /reports . A savoir
    • Triable et Filtrable par : nom_complet , creation_date , content
    • Filtrable par "my_reports" --> uniquement mes discussions
    • idSynthese --> devient id_synthese en path parameter et non obligatoire
    • Reponse de la route paginée si id_synthese est None

Côté Frontend:

  • Ajout d'une card avec tab "Dernière Discussiosn"
  • Ajout d'un tableau avec ngx-datatable , paginé , et colonne "sortable"
  • Ajout d'un element de filtres "Mes discussions"
  • Placer le champs de filtre "Mes discussions" dans l'onglet (tab) Dernières discussions
  • Ajouter configuration :
    • [HOME]
      DISPLAY_LATEST_DISCUSSIONS  = true
  • Gérer l'affichage conditionnel du l'onglet "Dernières Discussions" en fonction de la configuration
  • Discuter de l'UX de la "card" avec les onglets contenant "Dernières discussions" / "Dernieres validations" : Quelle position sur la page d'accueil ?
  • Au click sur une ligne concernant une discussion liée à l'observation ,le ticket (lien ici :Enrichir la page d’accueil  #2983 (comment)) mentionnait de rediriger vers le fil de discussion lié à l'observation concernée par la discussion --> ⚠️ sujet à discuter sur le fait qu'il n'y a pas de routes frontend pour arriver sur la modale d'information de l'observation et plus précisément encore sur l'onglet "Discussions" à l'intérieur de cette modale
    • "Un clic sur une discussion ouvre la fiche synthèse de l'observation sur son onglet DISCUSSION ?"

Exemple dev en cours :

image

@camillemonchicourt
Copy link
Member

Un petit détail, mais je renommerai le filtre "Mes discussions" en "Mes discussions uniquement" et je mettrai un bouton toggle plutôt qu'une case à cocher.

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

No branches or pull requests

3 participants