Development #38133
axel toulouse : gestion de "demande en cours" sur un DUI
0%
Description
Il faut restreindre les modifications DUI : une seule modification à la fois est possible sur un DUI.
Pour ça, avoir des endpoints :
- dui-lock?name_id=.... : permet de dire qu'une demande est en cours sur le DUI appairé
- dui-unlock?name_id=.... : permet de dire qu'aucune demande n'est plus en cours sur le DUI appairé
- dui-locked?name_id=.... : permet de connaître l'état de blocage du DUI appairé, répond true/false (note : répondre aussi "bloqué" s'il n'y a pas d'appairage, car cela va être utilisé pour bloquer le formulaire)
Fichiers
Révisions associées
Historique
Mis à jour par Thomas Noël il y a plus de 4 ans
En fait ça pourrait être plus générique, car il faut aussi pouvoir locker à plus bas niveau, par exemple interdire la modification sur la fiche d'un enfant donné.
Je propose donc quelque chose de nettement plus général :
- lock?id=.... : permet de dire que l'élément "id" est locké, ça pourra être un "DUI:xxxx" numéro DUI ou un "enfant:id" ou un "person:id"
- unlock?id=.... : permet de libérer le lock
- locked?id=.... : permet de connaître l'état du blocage, répond true/false (note : répondre aussi "bloqué" s'il n'y a pas d'appairage, car cela va être utilisé pour bloquer le formulaire)
Exemple d'appels possibles dans des webservices w.c.s. utilisables en condition (formulaire et/ou workflow) :
- passerelle/axel/xxx/lock?id={{ webservice.dui.dui }} : locker le DUI appairé
- passerelle/axel/xxx/lock?id=enfant:{{ form_var_enfant_id }} : locker l'enfant "id"
Mis à jour par Lauréline Guérin il y a plus de 4 ans
- Lié à Development #38155: Toulouse Axel - faire un endpoint de remontée d'informations relatives à un enfant ajouté
Mis à jour par Lauréline Guérin il y a plus de 4 ans
- Lié à Development #38155: Toulouse Axel - faire un endpoint de remontée d'informations relatives à un enfant supprimé
Mis à jour par Lauréline Guérin il y a plus de 4 ans
- Fichier 0001-toulouse_axel-lock-unlock-locked-endpoints-38133.patch 0001-toulouse_axel-lock-unlock-locked-endpoints-38133.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a plus de 4 ans
J'ajouterais bien la date du dernier lock (lock_date, DateTimeField en auto_now), et la renvoyer en plus du reste ; ça nous sera utile lors d'éventuels débogages. Et, toujours dans ce but, la possibilité de stocker l'identifiant du locker (comme key, ça sera à l'appelant de choisir ce qu'il faut, typiquement le numéro de la demande qui provoque le lock, quelque chose dans le genre).
lock?key=kkk&locker=abc (locker optionnel, bien sûr) -> {"key": "kkk", "locked": true, "locker": "abc", "lock_date": "2019-12-04T10:22:33"} locked?key=kkk -> {"key": "kkk", "locked": true, "locker": "abc", "lock_date": "2019-12-04T10:22:33"} unlock?key=kkk -> {"key": "kkk", "locked": false, "locker": "abc", "lock_date": "2019-12-04T10:22:33"} locked?key=kkk -> {"key": "kkk", "locked": false}
Mis à jour par Lauréline Guérin il y a plus de 4 ans
Mis à jour par Thomas Noël il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Lauréline Guérin il y a plus de 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 7d86838b99db8cca1c313c8bd5ab1bf193dbae57 Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Wed Dec 4 10:55:42 2019 +0100 toulouse_axel: lock/unlock/locked endpoints (#38133)
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
toulouse_axel: lock/unlock/locked endpoints (#38133)