Development #16782
actions interactives comme action globale
0%
Description
Pour le moment les actions interactives ne peuvent pas être utilisées comme action globale, ce serait bien sûr fantastique si elles pouvaient l'être.
(j'imaginais qu'un ticket existait déjà)
Files
Related issues
Associated revisions
History
Updated by Frédéric Péters about 4 years ago
- Related to Development #31399: Pouvoir disposer de l'action '"resoumission" dans les actions globales added
Updated by Frédéric Péters over 3 years ago
- Related to Development #37529: Action globale : Permettre une saisie de texte lors du déclenchement d'une action globale (actions « interactives ») added
Updated by Frédéric Péters 7 months ago
- File 0001-workflows-allow-interactive-actions-in-global-action.patch 0001-workflows-allow-interactive-actions-in-global-action.patch added
- Status changed from Nouveau to Solution proposée
- Assignee set to Frédéric Péters
- Patch proposed changed from No to Yes
Voilà ça autorise les actions : commentaire, formulaire, pièce jointe, alerte et saut manuel.
Quand l'action cliquée est détectée comme interactive, un jeton est créé avec quelques infos (pour retrouver l'action et les demandes/fiches concernées) et il y a redirection vers la page présentant le formulaire. Sur validation ensuite l'action est exécutée sur la ou les demandes ou fiches (si une seule c'est fait direct sinon ça passe en afterjob).
Ça se passe principalement dans wcs/forms/actions.py (l'UI) et dans wcs/workflows.py (mais là c'est en grande partie du code qui était sur les statuts qui monte d'une classe pour être partagée avec les actions globales).
Il pourrait y avoir côté interface du travail js pour que ça apparaisse en popup mais c'est un peu compliqué parce que ça vient derrière le submit d'un <form> et non un simple lien (ce qui veut dire qu'il faudrait faire la requête en js, et vraisemblablement uniquement pour ces actions interactives pas les autres etc.) et au final j'ai préféré laisser ça de côté, assurer la mécanique d'abord.
Updated by Lauréline Guérin 6 months ago
Pour le premier test, il y a vraiment besoin de créer tout l'environnement ? (create_environment
)
Typo dans les commentaires: # if there's no status change run non-interactive items from global ction
Chipotage: dans l'init de GlobalInteractiveActionDirectory
, les raise ne sont pas couverts par les tests :)
Il n'y a pas moyen de factoriser le code de l'application de l'action sur 1 item en live ou sur plusieurs en afterjob ?
N'étant pas 100% à l'aise avec le code, je laisse la possibilité à d'autres de review.
Updated by Frédéric Péters 6 months ago
- File 0001-workflows-allow-interactive-actions-in-global-action.patch 0001-workflows-allow-interactive-actions-in-global-action.patch added
Pour le premier test, il y a vraiment besoin de créer tout l'environnement ? (create_environment)
J'ai réduit à juste créer 10 demandes; j'en ai profité pour aussi étendre un peu le test et vérifier que l'action globale ne se joue pas sur les demandes pas cochées.
Typo dans les commentaires: # if there's no status change run non-interactive items from global ction
corrigée.
Chipotage: dans l'init de GlobalInteractiveActionDirectory, les raise ne sont pas couverts par les tests :)
C'est désormais le cas.
Il n'y a pas moyen de factoriser le code de l'application de l'action sur 1 item en live ou sur plusieurs en afterjob ?
C'est maintenant le cas, via une méthode "execute_one" posée dans GlobalInteractiveMassActionAfterJob.
Updated by Lauréline Guérin 6 months ago
- Status changed from Solution proposée to Solution validée
Pas d'autre relecteur, tant pis :)
Updated by Frédéric Péters 6 months ago
- Status changed from Solution validée to Résolu (à déployer)
commit 446fc206e909bf2ee7b1a683183cc6e3eca333f9 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Sat Aug 20 18:08:04 2022 +0200 workflows: allow interactive actions in global actions (#16782)
Updated by Transition automatique 6 months ago
- Status changed from Résolu (à déployer) to Solution déployée
workflows: allow interactive actions in global actions (#16782)