Project

General

Profile

Development #38133

axel toulouse : gestion de "demande en cours" sur un DUI

Added by Thomas Noël 14 days ago. Updated 11 days ago.

Status:
Solution proposée
Priority:
Normal
Target version:
-
Start date:
02 Dec 2019
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

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)

0001-toulouse_axel-lock-unlock-locked-endpoints-38133.patch View (5.7 KB) Lauréline Guerin, 04 Dec 2019 10:56 AM

0001-toulouse_axel-lock-unlock-locked-endpoints-38133.patch View (8.07 KB) Lauréline Guerin, 05 Dec 2019 10:46 AM

History

#1 Updated by Thomas Noël 14 days ago

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"

#2 Updated by Lauréline Guerin 13 days ago

  • Related to Development #38155: Toulouse Axel - faire un endpoint de remontée d'informations relatives à un enfant added

#3 Updated by Lauréline Guerin 13 days ago

  • Related to deleted (Development #38155: Toulouse Axel - faire un endpoint de remontée d'informations relatives à un enfant)

#4 Updated by Lauréline Guerin 13 days ago

  • Assignee set to Lauréline Guerin

#5 Updated by Lauréline Guerin 12 days ago

#6 Updated by Thomas Noël 12 days ago

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}

Also available in: Atom PDF