Bug #23839
condition sur une action sans les variables de la demande
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
Historique
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.
Mis à jour par Frédéric Péters il y a presque 6 ans
- Fichier 0001-workflows-handle-concerned-actions-roles-with-condit.patch 0001-workflows-handle-concerned-actions-roles-with-condit.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
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)
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.
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
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.