Development #33643
date de référence "arrivée dans un statut terminal" pour les actions globales
0%
Description
Pour faire une action globale d'anonymisation qui serait n jours après l'arrivée dans un statut terminal, peu importe lequel, pour éviter de commencer par déplacer les demandes dans un statut d'anonymisation (où l'info "statut" est perdue), pour éviter aussi de devoir lister toutes les possibilités de statut terminal dans l'action.
Fichiers
Demandes liées
Révisions associées
tests: make sure all formdata are wiped in global timeout test (#33643)
Historique
Mis à jour par Frédéric Péters il y a presque 5 ans
- Lié à Development #25394: actions globales sur demandes terminées ajouté
Mis à jour par Frédéric Péters il y a presque 5 ans
- Fichier 0001-workflows-add-possibility-to-trigger-global-actions-.patch 0001-workflows-add-possibility-to-trigger-global-actions-.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a presque 5 ans
Inquiétude habituelle sur les performances, parce que data_class.select(iterator=True)
va tout parcourir, y compris les brouillons et les demandes anonymisées.
Je serais pour garder le parcours des demandes ouvertes quand aucun trigger n'est de type finalized.
Mais surtout : on risque d'avoir un usage du genre "quand la demande est en statut terminal, la mettre en statut finifini 10 jours plus tard"... et le statut "finifini" sera encore un statut terminal, et donc l'action s'y jouera encore 10 jours plus tard, indéfiniment. Je ne vois pas comment éviter ça, et ça me semble un problème.
Mis à jour par Frédéric Péters il y a presque 5 ans
Inquiétude habituelle sur les performances,
Ça m'irait qu'on commence à mesurer les choses, genre le temps d'exécution du cron.
Je serais pour garder le parcours des demandes ouvertes quand aucun trigger n'est de type finalized.
ok.
Mais surtout : on risque d'avoir un usage du genre "quand la demande est en statut terminal, la mettre en statut finifini 10 jours plus tard"... et le statut "finifini" sera encore un statut terminal, et donc l'action s'y jouera encore 10 jours plus tard, indéfiniment. Je ne vois pas comment éviter ça, et ça me semble un problème.
Sur un statut, une action n'est jamais jouée qu'une fois (cf WorkflowGlobalActionTimeoutTriggerMarker).
Mis à jour par Frédéric Péters il y a presque 5 ans
Mis à jour par Thomas Noël il y a presque 5 ans
Je pense qu'il faut aussi ajouter NotNull('anonymised') dans les critères, genre :
criterias = [NotEqual('status', 'draft'), NotNull('anonymised')]
Mis à jour par Frédéric Péters il y a presque 5 ans
- Fichier 0001-workflows-add-possibility-to-trigger-global-actions-.patch 0001-workflows-add-possibility-to-trigger-global-actions-.patch ajouté
Voilà, avec Null('anonymised') (parce qu'on veut zapper ceux qui sont anonymisés, pas l'inverse).
Mis à jour par Thomas Noël il y a presque 5 ans
C'est ok.
J'aurais pu taquiner en disant que si on optimise pour "parcourir aussi les demandes finalisées", on aurait pu faire la réciproque pour éviter de parcourir les demandes en cours dans le cas où il n'y aurait que des actions globales déclenchées sur des statuts finaux. Mais on peut imaginer que ça sera assez rare, et qu'il n'y a en général pas beaucoup de demandes en cours.
Aussi, les actions sur base d'expression ne seront jamais déclenchées sur les demandes finalisées, peut-être un "hint" sur anchor_expression ("Ne sera calculé que pour les demandes actives") ?
Mis à jour par Thomas Noël il y a presque 5 ans
- Statut changé de Solution proposée à Solution validée
Je valide ainsi quand même, hein.
Mis à jour par Frédéric Péters il y a presque 5 ans
- Statut changé de Solution validée à Résolu (à déployer)
+ hint=_('This will only apply to open forms.'),
commit 234cd7999e74d0b9c8861663dafe9aa7c5d0da8b Author: Frédéric Péters <fpeters@entrouvert.com> Date: Sun Jun 30 15:53:31 2019 +0200 workflows: add possibility to trigger global actions on finalized data (#33643)
Mis à jour par Frédéric Péters il y a presque 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
workflows: add possibility to trigger global actions on finalized data (#33643)