[Communication] Ajouter l'action "répondre" à un message. #53
Labels
No Label
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Sulley/khana#53
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Pour l'instant l'application ne permet pas de répondre à un message (au sens commun du terme - i.e. / e.g. outlook).
Avec récupération du texte déjà présent... A voir... ?
Un avis ?
Je pense que tu as deux solutions:
La première solution est la plus simple à modéliser, puisqu'il suffit d'ajouter une référence vers le message auquel la personne répond. Mais on entre alors dans la représentation d'arborescences, et je pense que cela constituerait un soucis à moyen terme.
La deuxième proposition serait de représenter des discussions, où chaque nouveau message s'ajoute aux précédents.
Cela demande de refactoriser ton modèle, pour y inclure ces discussions, et pour lier chaque nouveau message à une discussion ouverte.
Cette deuxième proposition est sans doute plus propre et plus facile à gérer, mais demande un chouia plus de travail en première instance.
Le tout est de savoir ce que tu souhaites faire au final.
(perso, je laisserais comme ceci pour le moment, et je partirais sur l'option 2 quand j'aurais le temps)
Je pensais à un truc plus simple encore : la réponse contient le message de départ et sa réponse. Il suffit juste d'indenté (ou une solution similaire) le message de départ. Exemple :
Ceci est ma réponse au message ci-dessous
Pourquoi pas.
Vois si tu as besoin d'un historique complet, et dans quel(s) cas ce serait utile/nécessaire.
Je pense que la notion de réponse est une fonctionnalité importante dans une app de "messagerie". Il faudrait donc que je m'y penche assez rapidement.
D'autant plus que je vais baser mon modèle "gymnaste" sur le modèle USER de Django ce qui permettra -en plus- de leur envoyer des messages via l'application, la notion de réponse me parait donc ultra importante pour communiquer facilement.
Tu vois le refactoring comment ?
Moi je pensais à un lien type "parent" d'une message à un autre : chaque message à un ID et s'il est la réponse à un autre message, on rajouterai un ID dans un (nouveau) champs 'parent'. Comme ca, pour chaque message, on pourrait connaitre son ancêtre direct. C'est pas forcément le plus élégant comme solution par contre...
cf. #53 (comment)
Si tu ajoutes un lien direct vers le parent, c'est facile à faire, mais c'est plus difficile à gérer pour construire l'arbre résultant.
Tu vois/connais un moyen de gérer facilement la construction de l'arbre de discussion ?
https://django-mptt.readthedocs.io/en/latest/ 😄
Mais honnêtement, je ne le ferais pas sans avoir une vue complète des fonctionnalités de messagerie que tu voudrais mettre en place.
Dans #54, tu parles déjà de pouvoir transférer des messages. L'arbre ne va pas permettre nativement ce genre de fonctionnalités, à moins d'y ajouter encore un niveau de complexité.
En l'état, je te conseillerais vraiment de laisser comme c'est - cela permet au moins d'envoyer un message vers quelqu'un - et de voir réellement ce que tu souhaiterais.
Regarde ce qui est fait sur Reddit, sur Webex, ...
Il est possible pour une personne de répondre à un message précédent.
Du coup, tu arrives sur une représentation en arbre, mais pour moi, on perd beaucoup en lisibilité.
Avec l'historique suivant, c'est galère de représenter toutes les nouveautés:
Bref, pas convaincu de la plus-value par rapport à une simple discussion (éventuellement avec possibilité de transfert en copiant le message initial).