Projet

Général

Profil

Bug #23839

condition sur une action sans les variables de la demande

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
15 mai 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Vu sur #23837, un calcul d'une condition sur une action qui ne reçoit aucune variable du formulaire (contexte quasi vide).

Trace :

Exception:
  type = '<type 'exceptions.NameError'>', value = 'name 'form_previous_status' is not defined'

Stack trace (most recent call first):
  File "<string>", line 1, in <module>

  locals:
     css_variant = '...'
     data_source = <wcs.data_sources.DataSourcesSubstitutionProxy object at 0x7ff43479a7d0>
     default_from_email = 'ne-pas-repondre@....fr'
     email_signature = '...'
     hobo_url = 'https://hobo..../'
     idp_account_url = 'https://connexion.../'
     idp_url = 'https://connexion.../'
     is_in_backoffice = True
     links = <function print_links at 0x7ff42f488668>
     manager_homepage_title = 'Portail Agent'
     manager_homepage_url = 'https://agents.../'
     no_extra_js = 'True'
     now = '15/05/2018 11:35'
     passerelle_url = 'https://passerelle.../'
     portal_agent_title = 'Portail Agent'
     portal_agent_url = 'https://agents.../'
     portal_url = 'https://portail.../'
     portal_user_title = 'Portail Citoyen'
     portal_user_url = 'https://portail./../'
     script = <wcs.scripts.ScriptsSubstitutionProxy object at 0x7ff42a570350>
     session_user = <SqlUser 'AAA BBB' id:25>
     session_user_admin_access = False
     session_user_backoffice_access = True
     session_user_display_name = 'AAA BBB'
     session_user_email = 'ab@...fr'
     session_user_f_address = ''
     session_user_f_city = ''
     session_user_f_email = 'ab@...fr'
     session_user_f_first_name = 'AAA'
     session_user_f_last_name = 'BBB'
     session_user_f_mobile = ''
     session_user_f_phone = ''
     session_user_f_title = ''
     session_user_f_zipcode = ''
     session_user_field_adresse = ''
     session_user_field_adresse_electronique = 'ab@...'
     session_user_field_civilite = ''
     session_user_field_code_postal = ''
     session_user_field_commune = ''
     session_user_field_mobile = ''
     session_user_field_nom = 'BBB'
     session_user_field_prenom = 'AAA'
     session_user_field_telephone = ''
     session_user_name_identifier_0 = 'a482xxxxx52'
     session_user_var_address = ''
     session_user_var_city = ''
     session_user_var_email = 'ab@...fr'
     session_user_var_first_name = 'AAA'
     session_user_var_last_name = 'BBB'
     session_user_var_mobile = ''
     session_user_var_phone = ''
     session_user_var_title = ''
     session_user_var_zipcode = ''
     site_lang = 'fr'
     site_name = 'D\xc3\xa9marches'
     site_theme = 'publik-base'
     site_url = 'https://demarches...'
     site_url_backoffice = 'https://demarches.../'
     today = '15/05/2018'
     wcs_url = 'https://demarche...'
     webservice = <wcs.wscalls.WsCallsSubstitutionProxy object at 0x7ff42a570110>

Fichiers

Révisions associées

Révision 95668f69 (diff)
Ajouté par Frédéric Péters il y a presque 6 ans

workflows: handle concerned/actions roles with conditions on actions (#23839)

When a workflow is changed security details of all related have to be
recomputed (rebuild_security). With the introduction of conditions on
actions this process now requires to have objects available in the
context for evaluating conditions.

Historique

#2

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

Et plus bas dans la trace, la cause du calcul des conditions :

  File "/usr/lib/python2.7/dist-packages/wcs/workflows.py", line 350, in store
   348         # instruct all related formdefs to update.
   349         for form in FormDef.select(lambda x: x.workflow_id == self.id, ignore_migration=True):
>  350             form.data_class().rebuild_security()
   351             if must_update:
   352                 form.rebuild()

C'est ici qu'il manque des feed() pour avoir le contexte.

#4

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

  • Assigné à mis à Frédéric Péters
#5

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

#6

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

Ack.

(Le mini truc qui me mini chiffonne c'est qu'on calcule encore un peu trop, parce que la présence d'un "by" dans une action n'est pas suffisante pour savoir si elle est interactive: on a un by dans wcs/wf/export_to_model.py (utilisé seulement si method=='interactive'), wcs/wf/jump.py (utilisé seulement en cas de trigger). Mais c'est une mini-optimisation sans vrai impact concret, et surtout à demander dans un autre ticket, hop)

#7

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

  • Statut changé de En cours à Résolu (à déployer)
commit 95668f69e531584ed5b964735c824264a4a2355f
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Tue May 15 12:58:49 2018 +0200

    workflows: handle concerned/actions roles with conditions on actions (#23839)

    When a workflow is changed security details of all related have to be
    recomputed (rebuild_security).  With the introduction of conditions on
    actions this process now requires to have objects available in the
    context for evaluating conditions.
#8

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

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

Formats disponibles : Atom PDF