SocialGouv/mano

Fonctionnement services/comptes-rendus

Closed this issue · 0 comments

Besoins

-> Services, par équipe, par journée
-> Description d'une journée + collaboration potentielle, par équipe
-> Petit point dans le calendrier pour dire qu'il y a quelque chose dans la journée (action/passage/service/etc.)
-> Chiffrement
-> Multi-poste: accès aux mêmes données au même moment sur plusieurs postes (pour comprendre le concept : c'est comme si 2 personnes travaillaient en même temps sur google excel)

Solution actuelle

-> Services, description et collaboration sont dans un même objet report, qui est sensé être unique par jour + par équipe
-> Tout est chiffré, y compris le jour et l'équipe
-> Un objet report est créé à chaque fois qu'il y a quelque chose à montrer dans cette journée, pour avoir un petit point dans le calendrier

Problèmes rencontrés

-> Pas de possibilité de vérifier l'unicité du compte-rendu dans le backend, parce que tout est chiffré y compris le jour et l'équipe
-> Impliquant des conflits parfois, à cause du multi-poste
-> Données parfois écrasées parce que conflit multi-poste : l'un MAJ un service pendant que l'autre MAJ la description

Mitigations actuelles et désagrément

Depuis le 25 novembre et la PR #999 : à chaque modification du compte-rendu, que ce soit les services, la description, les collabs, on fetch les derniers CR, on merge avec les dernières modifs.
Positif:
-> on est sûr à 99% d'avoir les dernières données et de ne rien écraser, le 1% étant en cas de modification concomitante du CR
-> on est sûr à 99% de ne pas avoir de duplication de CR, le 1% étant similaire

Négatif:
-> code lourd.
-> pas 100%

Possibilité d'évolutions

À classer par ordre de rapport coût/efficacité

-> Avoir en clair la date et l'équipe, pour que le backend assure l'unicité du CR. Coût: moyen, efficacité: parfaite.
-> Séparation des services et des CR ?
-> Services en clair, de sorte que c'est le back-end qui gère la fusion ?
-> Services séparés dans leur propre table, avec un ligne === un service/jour/équipe, au lieu de une ligne ===. tous les services/jour/équipe ?