[Communication] Ajouter l'action "répondre" à un message. #53

Open
opened 2021-05-14 10:34:05 +02:00 by Sulley · 9 comments
Owner

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 ?

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 ?
Sulley added the
enhancement
label 2021-05-14 10:34:05 +02:00
Owner

Je pense que tu as deux solutions:

  1. Ajouter une référence vers le message auquel la personne répond
  2. Modéliser des discussions.

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.

Je pense que tu as deux solutions: 1. Ajouter une référence vers le message auquel la personne répond 2. Modéliser des discussions. 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.
Owner

(perso, je laisserais comme ceci pour le moment, et je partirais sur l'option 2 quand j'aurais le temps)

(perso, je laisserais comme ceci pour le moment, et je partirais sur l'option 2 quand j'aurais le temps)
Author
Owner

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

ceci est le message d'origine

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 > ceci est le message d'origine
Owner

Pourquoi pas.

Vois si tu as besoin d'un historique complet, et dans quel(s) cas ce serait utile/nécessaire.

Pourquoi pas. Vois si tu as besoin d'un historique complet, et dans quel(s) cas ce serait utile/nécessaire.
Author
Owner

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...

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...
Owner

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.

cf. https://sources.grimbox.be/Sulley/khana/issues/53#issuecomment-283 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.
Author
Owner

Tu vois/connais un moyen de gérer facilement la construction de l'arbre de discussion ?

Tu vois/connais un moyen de gérer facilement la construction de l'arbre de discussion ?
Owner

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.

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 https://sources.grimbox.be/Sulley/khana/issues/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.
Owner

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:

Alice dit: <message initial>                <- envoyé le 01/01/2021
|-- Bob répond: <message 2>                 		  <-- envoyé le 02/01/2021
    |-- Alice répond:           		  <-- envoyé le 03/01/2021
    	<message 3>
    |-- Bob répond à Alice avec quatre mois de retard <-- envoyé le 22/05/2021 
    	<message 6>
|-- Alice se répond à elle-même <message 4> <-- envoyé le 03/01/2021 aussi
    |-- Bob répond à la réponse d'Alice à elle-même <message 5> <-- envoyé le 04/01/2021

Bref, pas convaincu de la plus-value par rapport à une simple discussion (éventuellement avec possibilité de transfert en copiant le message initial).

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: ``` Alice dit: <message initial> <- envoyé le 01/01/2021 |-- Bob répond: <message 2> <-- envoyé le 02/01/2021 |-- Alice répond: <-- envoyé le 03/01/2021 <message 3> |-- Bob répond à Alice avec quatre mois de retard <-- envoyé le 22/05/2021 <message 6> |-- Alice se répond à elle-même <message 4> <-- envoyé le 03/01/2021 aussi |-- Bob répond à la réponse d'Alice à elle-même <message 5> <-- envoyé le 04/01/2021 ``` Bref, pas convaincu de la plus-value par rapport à une simple discussion (éventuellement avec possibilité de transfert en copiant le message initial).
Sulley added this to the Communication 2.0 milestone 2021-05-16 12:07:12 +02:00
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Sulley/khana#53
No description provided.