Projet

Général

Profil

Bug #34528

crash actions globales sur déclenchement selon un statut obsolète

Ajouté par Thomas Noël il y a presque 5 ans. Mis à jour il y a presque 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
04 juillet 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

[2019-07-04 04:51:24] exception caught
Exception:
  type = '<type 'exceptions.KeyError'>', value = ''

Stack trace (most recent call first):
  File "/usr/lib/python2.7/dist-packages/wcs/workflows.py", line 392, in get_status
   390             if status.id == id:
   391                 return status
>  392         raise KeyError()
   393
   394     def get_backoffice_fields(self):

  locals:
     id = 'finished'
     self = <Workflow 'MM services aux communes simple' id:25>
     status = <wcs.workflows.WorkflowStatus object at 0x7fe3853cb490>

  File "/usr/lib/python2.7/dist-packages/wcs/workflows.py", line 1168, in apply
  1166             elif (trigger.anchor == '1st-arrival' and
  1167                   trigger.anchor_status_first and
> 1168                   workflow.get_status(trigger.anchor_status_first) in endpoint_status):
  1169                 run_on_finalized = True
  1170             elif (trigger.anchor == 'latest-arrival' and

Une action globale est présente avec un déclencheur selon présence dans un statut (ici trigger.anchor_status_first), mais ce statut n'existe plus dans le workflow.


Fichiers

Révisions associées

Révision d157723e (diff)
Ajouté par Thomas Noël il y a presque 5 ans

workflows: detect obsolete status in global actions timeout triggers (#34528)

Historique

#1

Mis à jour par Thomas Noël il y a presque 5 ans

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Thomas Noël
#2

Mis à jour par Thomas Noël il y a presque 5 ans

Solution via amélioration de la détection des triggers mal configurés (parce que le statut qu'ils référencent n'existe plus).

#3

Mis à jour par Frédéric Péters il y a presque 5 ans

Je ne pense pas que ça change quoique ce soit parce que via l'UI les situations ne doivent pas être possibles mais quand même, les and self.anchor_status_first et and self.anchor_status_latest, ils font que la situation où anchor serait posé mais pas self.anchor_status_first (resp. self.anchor_status_latest), n'est pas gérée.

#4

Mis à jour par Thomas Noël il y a presque 5 ans

Frédéric Péters a écrit :

Je ne pense pas que ça change quoique ce soit parce que via l'UI les situations ne doivent pas être possibles mais quand même, les and self.anchor_status_first et and self.anchor_status_latest, ils font que la situation où anchor serait posé mais pas self.anchor_status_first (resp. self.anchor_status_latest), n'est pas gérée.

Dans ma lecture de must_trigger c'est une situation possible, quand ces ancres sont None c'est le statut du formulaire qui compte :

anchor_status = self.anchor_status_first or formdata.status
#5

Mis à jour par Frédéric Péters il y a presque 5 ans

Ok j'ai pas de cerveau pour ça pour le moment, je réfléchirai plus tard.

#6

Mis à jour par Frédéric Péters il y a presque 5 ans

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

Bon, je ne vois pas trop quand des actions globales basées sur n'importe quel statut seraient utiles, mais j'ai du penser que oui à un moment, ok.

#7

Mis à jour par Thomas Noël il y a presque 5 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit d157723e20cc5caf7de3bb201f3f04ee829793a1
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Fri Jul 5 00:11:06 2019 +0200

    workflows: detect obsolete status in global actions timeout triggers (#34528)

#8

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

Formats disponibles : Atom PDF