Bonjour,
Il y a certaines choses dans cette v4 qui ont été produites à l'arrache, pour dire de fournir le minimum syndical (et aussi parce que le développement de la v4 n'était pas vraiment prévu, c'est une extension de tests faits pour Django). En particulier, dans la liste des applications concernées, on retrouve la messagerie interne. Je compte faire un bon travail de refactoring de ce coté, car pour l'instant, c'est un peu le bronx... et je compte en profiter pour modifier son comportement, en fonction de vos retours/souhaits. J'ai donc une série de questions à cet effet...
La première concerne le
format de la messagerie. On est passé de simples messages avec un seul destinataire et un sujet à une messagerie orientée "conversations" entre plusieurs destinataires. J'aime bien ce format, mais je m'interroge sur l'utilité d'un sujet. Actuellement, on débute une conversation (un thread) en précisant le sujet et les destinataires. On pourrait facilement envisager de ne pas intégrer de sujet, et qu'une conversation n'est identifiée que par les participants (un peu comme sur Facebook, si je ne me trompe pas). L'inconvénient principal est de ne pas pouvoir distinguer deux conversations entre les mêmes personnes. L'intérêt principal est de simplifier la messagerie, et éventuellement de permettre une extension future (à base de websockets) pour discuter en temps réel avec un (ou plusieurs) destinataires. Une sous-question liée au format de la messagerie concerne la définition des participants. Essentiellement pour des raisons techniques, il n'est pas possible pour l'instant d'inviter quelqu'un dans une conversation en cours. Cela présente, je pense, relativement peu d'intérêt dans l'absolu. Si on s'oriente vers cette feature, il faudrait définir ce que le "nouveau" participant peut voir : peut-il consulter les anciens messages de la conversation ou pas ? Et si on peut inviter une personne à rejoindre une discussion, peut-on également quitter une conversation en cours ?
La seconde question concerne l'utilité de distinguer
plusieurs "boîtes" où sont stockées les conversations. Pour l'instant, on dispose grosso-modo de 4 possibilités :
* La boîte de réception, avec les conversations non-lues et celles qui sont lues et n'ont pas été bougées,
* La boîte d'archives, contenant les conversations qui sont archivées manuellement par l'utilisateur,
* L'étiquette "préférée" pour les conversations qui doivent être mises en évidence. Je doute de l'utilité de ce type de flag actuellement,
* La boîte des messages supprimés, invisible pour l'utilisateur, et qui contient les conversations qui sont supprimées par un des participants mais pas par tous.
Je me demande s'il est pertinent de conserver l'étiquette "préférée", ainsi que si c'est pertinent de permettre la suppression de conversations. A priori, il y a deux raisons pour lesquelles on peut souhaiter supprimer une conversation : (1) ne pas surcharger la boîte de réception afin de trier les conversations "utiles" des autres et (2) supprimer des preuves compromettantes de votre adultère Tchou. Pour le cas (1), on dispose de l'option d'archivage qui fait exactement la même chose. Pour le cas (2), la preuve reste dans la base de données tant que chaque participant n'a pas lui-même supprimé cette conversation. L'intérêt est donc limité. Je pense donc qu'il est judicieux de conserver un mécanisme de tri (peut-être qu'on peut prévoir davantage de dossiers, ou des dossiers créés par l'utilisateur, mais vu l'usage de la messagerie, je ne suis pas convaincu), mais je pense que la suppression est quelque peu facultative. Tout au plus, je peux prévoir une tâche automatique qui supprime les vieux messages sans participation depuis x jours (90 ?), afin (1) de ne pas surcharger la base de données, (2) faire le nettoyage auquel on peut s'attendre. Principal inconvénient : on ne peut plus se servir de la messagerie pour "stocker" de l'information à long terme.
La troisième question concerne
les notifications. Malouk a indiqué qu'il serait intéressant de recevoir une notification par e-mail en cas de nouveaux messages. Je ne veux pas proposer des options "à tout va" liées au compte, donc j'aimerai un système moins intrusif que de systématiquement signaler les nouveaux messages. J'ai en tête une simple tâche automatique qui s'exécute dans le courant de la nuit, et qui signale aux utilisateurs ayant de nouveaux messages qu'il y a des messages en attente. On peut éventuellement augmenter la durée, à une fois par semaine plutôt que chaque jour, pour limiter le "flood". Le principal avantage est d'avoir une esquisse de notifications, sans avoir le principal inconvénient qui consiste à recevoir plein de mails, vu le format des conversations. L'inconvénient majeur est que les notifications ne seront pas faites en temps réel, et qu'il y a donc potentiellement un délai entre la réception du message et l'envoi du mail. Mais ces notifications seraient plutôt à voir comme des "rappels de messages non-lus" pour les personnes passant moins régulièrement, et pour ne pas rater de tels messages, plutôt que d'être prévenu instantanément en cas de nouveaux messages.
Un autre aspect concerne le
formatage autorisé des messages. Anciennement, dans la v3, on pouvait utiliser exactement le même formatage que sur le forum, à savoir du bbcode. Avec la v4, et principalement avec le mode "conversation" de la messagerie, j'ai préféré limiter le formatage à des choses simples : support des smiley, et transcription des adresses en liens cliquables. Je ne suis pas convaincu que supporter pleinement le bbcode ou un formatage plus avancé que celui de la v4 soit une bonne idée, essentiellement parce que cette messagerie n'a pas pour vocation de faire des choses "complexes", mais simplement de fournir un mécanisme permettant de discuter entre les personnes inscrites au site.
J'ai déjà quelques préférences au niveau des pistes évoquées, j'en parlerai dans un message ultérieur si ce topic ne fait pas un bide complet