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

Notification à l'ouverture d'un commentaire sur un bouquet #263

Open
martyKN opened this issue Jun 26, 2024 · 6 comments · May be fixed by opendatateam/udata-front-kit#482
Open

Notification à l'ouverture d'un commentaire sur un bouquet #263

martyKN opened this issue Jun 26, 2024 · 6 comments · May be fixed by opendatateam/udata-front-kit#482

Comments

@martyKN
Copy link

martyKN commented Jun 26, 2024

Lorsque un user commente un bouquet, l'owner du bouquet ne reçoit pas de notification.
Est de possible, à l'image d'un commentaire sur un jdd sur dgfr, que le owner d'un bouquet reçoive une notification par mail quant à la publication d'un commentaire sur un bouquet. SDans le cas où le bouquet est owned par une orga, alors tous les users de l'orga reçoivent la notif
lorsque un nouveau commentaire est fait dans la discussion, l'ensemble des personnes ayant aussi commenté recoivent une notification

@abulte
Copy link

abulte commented Jun 27, 2024

Pas si simple parce qu'il va falloir contrôler la manière dont udata :

  • affiche le nom du modèle : topic vs bouquet
  • calcule l'URL vers laquelle renvoie la notification, pour renvoyer sur Ecosphères

Pour référence, un screenshot d'une notification sur un jeu de données ci-dessous.

Peut-être étendre le schéma des extras d'un bouquet avec quelque chose comme :

"meta": {
  "notifications": {
    "model_name": "bouquet",
    "external_url": "https://ecologie.data.gouv.fr/bouquets/{slug}/"
  }
}

Ainsi on peut utiliser ces informations si elles existent lors de la notification dans udata.

Autre possibilité : utiliser les extras de la discussion pour porter le même payload. C'est une approche plus souple parce que :

  • On peut imaginer d'autres usages sur d'autres modèles que Topic (e.g. une discussion sur un jeu de données qui pointe vers transport.data.gouv.fr)
  • On écrit le payload au moment de la création de la discussion plutôt qu'au moment de créer l'objet sur lequel porte la discussion. On peut ainsi changer de comportement sans migration des modèles de base. On a aussi une traçabilité par discussion de quelle notification a été déclenchée selon quelles règles.

Dans tous les cas, il faudra certainement prévoir une accept list pour les domaines vers lesquels peuvent pointer external_url, sinon on s'expose à des détournements possibles pour envoyer des notifications avec des liens vers des domaines tiers.

WDYT @streino @geoffreyaldebert @ThibaudDauce @maudetes ?

Image

@ThibaudDauce
Copy link

Personnellement j'aime bien l'idée, je pense que la 2e option est préférable effectivement ça permet de ne pas lier ça au sujet et plutôt à où été posté le message (si le message est posté depuis data.gouv on notifie sur data.gouv, si c'est publié sur transport on notifie sur transport, si c'est ecospheres on notifie avec des liens vers ecospheres…).

Si c'est validé, ça peut être fait rapidement je pense (c'est pas un gros changement si on utilise les extras)

@streino
Copy link
Collaborator

streino commented Jun 27, 2024

La 2e solution me semble aussi plus souple.

model_name me semble moins critique mais pourquoi pas. On pourrait se contenter de "X submitted a new discussion on URL". Les messages de notifs sont forcément en anglais ou model_name devra s'adapter ?

Question de newb : L'accept-list pourrait-elle être liée aux domaines whitelistés pour l'auth ?

@abulte
Copy link

abulte commented Jun 27, 2024

Les messages sont traduits mais comme on ne traduit pas bouquet généralement pas de problème 😇. Parce que ce serait un peu relou de traduire sans avoir la chaine source dans le code de udata... Moins critique en effet mais comme la string actuelle porte le nom du modèle, autant rester là-dessus je pense.

Pour l'auth j'y ai pensé mais ça m'étonnerait, je ne pense pas qu'on puisse savoir facilement d'où vient l'authentification du user courant.

@ThibaudDauce je vais faire une PR là-dessus semaine pro :-)

@AntoineAugusti
Copy link

AntoineAugusti commented Jul 9, 2024

une discussion sur un jeu de données qui pointe vers transport.data.gouv.fr

merci pour l'ouverture 😻🚌🚊

@Thesauruv Thesauruv added this to the Release octobre 2024 milestone Aug 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: 💤 Blocked
Development

Successfully merging a pull request may close this issue.

6 participants