Projet

Général

Profil

Bug #59914

Page inspect / suivi des actions / Des sauts automatiques sont listés alors qu'ils ne sont pas exécutés

Ajouté par Stéphane Laget il y a plus de 2 ans. Mis à jour il y a environ 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
20 décembre 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Page inspect / suivi des actions / Des sauts automatiques sont listés alors qu'ils ne sont pas exécutés

Un exemple ici :
https://demarches.villeurbanne.fr/backoffice/management/anomalies-eclairage-public/1238/inspect

Sur le 1er statut "Demande enregistrée" des sauts automatiques sont listés :
  • 2021-12-13 07:40:36.437
  • 2021-12-13 07:40:36.540

alors qu'ils n'ont pas été exécutés (ils sont conditionnels) .
Il ne faudrait lister que les actions qui se sont effectivement exécutées.


Fichiers

Révisions associées

Révision ce56962e (diff)
Ajouté par Frédéric Péters il y a environ 2 ans

workflows: use check_condition method to evaluate jump condition (#59914)

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 2 ans

Ça doit déjà être le cas; tu aurais ça quelque part qui a une page de connexion normale ?

#2

Mis à jour par Stéphane Laget il y a plus de 2 ans

  • Assigné à mis à Stéphane Laget

non, je vais essayer de reproduire ailleurs.

#4

Mis à jour par Frédéric Péters il y a plus de 2 ans

  • Assigné à changé de Stéphane Laget à Frédéric Péters
#5

Mis à jour par Frédéric Péters il y a plus de 2 ans

  • Statut changé de Nouveau à En cours

Ok ce qui se passe c'est que la vérification de la condition est court-circuitée dans l'action saut (pour éviter une double exécution), résultat pour le tracing l'action se trouve enregistrée. (branche en cours)

#6

Mis à jour par Frédéric Péters il y a plus de 2 ans

(passe derrière #59898, pour le retour à append_item() dans les tests)

#7

Mis à jour par Frédéric Péters il y a plus de 2 ans

Branche alternative, wip/59914-revamp-jump-to-use-check-condition qui plutôt qu'ajouter un contournement via exception + pop réintègre à l'action "saut automatique" une methode check_condition(), plutôt que son bypass et custom must_jump().

En passant, avec des tests qui comptaient le nombre d'appels à must_jump(), je me suis rendu compte qu'on avait des check_condition() appelés pour la création du action_roles_array qui reprend les rôles qui ont une action à jouer sur un formdata. Cet appel parce que l'action a un attribut "by". Celui-ci est prévu uniquement pour les déclencheurs, ne devrait pas avoir d'incidence sur les rôles, donc là je le zappe de manière explicite,

+            if item.key == 'jump':
+                # automatic jump has a 'by' attribute but it's only for triggers,
+                # it's not a real interactive action.
+                continue

Ça a comme conséquence qu'un utilisateur qui avait le rôle associé à un déclencheur, il gagnait avant un accès en visualisation sur la demande, ça n'est plus le cas. Je ne pense pas que c'était un usage réel mais on en profitait dans deux tests, ils sont donc modifiés,

+    # mark user as owner so it can check the UI
+    formdata.user_id = user.id
+    formdata.store()

(j'ai trouvé beaucoup de sauts avec "rôles autorisés à déclencher" mais pas de déclencheur, sans comprendre, j'ai posé la question de l'usage #59970).

Aussi, pour m'assurer que l'attribut by n'avait pas d'incidence sur l'exécution ou non d'un saut, j'ai ajouté le test test_jumps_with_by_and_no_trigger (dont le résultat ne change pas par rapport à l'existant).

Ce patch est sans doute plus compliqué à relire mais au final ça retire du code, plutôt qu'ajouter une exception/contournement, donc je préfère.

 wcs/formdata.py |  4 ++++
 wcs/wf/jump.py  | 49 ++++++++++++++++++-------------------------------
 2 files changed, 22 insertions(+), 31 deletions(-)
#8

Mis à jour par Emmanuel Cazenave il y a environ 2 ans

  • Statut changé de Solution proposée à Solution validée
#9

Mis à jour par Frédéric Péters il y a environ 2 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit ce56962efb344fa41f5b643777ea0d22a4614752
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Tue Dec 21 08:43:28 2021 +0100

    workflows: use check_condition method to evaluate jump condition (#59914)
#10

Mis à jour par Transition automatique il y a environ 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#11

Mis à jour par Transition automatique il y a presque 2 ans

Automatic expiration

Formats disponibles : Atom PDF