Projet

Général

Profil

Development #53789

"modification d'une fiche" n'enregistre pas de modification sur la fiche quand elle s'auto-cible

Ajouté par Nicolas Roche il y a presque 3 ans. Mis à jour il y a presque 3 ans.

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Avec l'action modification d'une fiche est paramétrée comme cela :
  • Préciser l’identifiant de la fiche sur laquelle l’action va s’exécuter : {{ form_internal_id }}

Fichiers

card-poisson.wcs (1,93 ko) card-poisson.wcs Nicolas Roche, 05 mai 2021 17:36
workflow-poisson.wcs (1,41 ko) workflow-poisson.wcs Nicolas Roche, 05 mai 2021 17:36
0001-workflows-allow-a-card-to-modify-itself-53789.patch (2,9 ko) 0001-workflows-allow-a-card-to-modify-itself-53789.patch Thomas Noël, 06 mai 2021 00:22

Révisions associées

Révision 6a37360e (diff)
Ajouté par Thomas Noël il y a presque 3 ans

workflows: allow a card to modify itself (#53789)

Historique

#1

Mis à jour par Nicolas Roche il y a presque 3 ans

Je joins un modèle de fiche et un workflow minimaliste.
Une fois la fiche crée, on voit dans l'inspecteur que la variable "form_var_etat" n'a pas été modifiée.

Et dans le code wf/create_formdata.py::CreateFormdataWorkflowStatusItem::apply_mappings ligne 560

self._set_value(formdata=dest, field=dest_field, value=value)

... on voit que le champ est bien positionné (à priori il ne serait pas sauvé en base).

#3

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

  • Sujet changé de Dans le workflow d'une fiche, l'action "modification d'une fiche" n'enregistre pas de modification sur la fiche. à "modification d'une fiche" n'enregistre pas de modification sur la fiche quand elle s'auto-cible
#4

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

Même cas que #51942 :

diff --git a/wcs/wf/edit_carddata.py b/wcs/wf/edit_carddata.py
index 1edaa85c..1a6e2aa7 100644
--- a/wcs/wf/edit_carddata.py
+++ b/wcs/wf/edit_carddata.py
@@ -52,5 +52,8 @@ class EditCarddataWorkflowStatusItem(CreateCarddataWorkflowStatusItem, ExternalW
             with get_publisher().substitutions.freeze():
                 target_data.store()

+        # update local object as it may have modified itself
+        formdata.refresh_from_storage()
+

 register_item_class(EditCarddataWorkflowStatusItem)

... y'a plus qu'à écrire un test. (noter que je ne m'assigne pas le ticket, pas le temps ce soir)

#5

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

  • Statut changé de Nouveau à Solution validée
  • Assigné à mis à Thomas Noël

(et je me penche sur ce test, donc)

#6

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

#7

Mis à jour par Lauréline Guérin il y a presque 3 ans

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

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit 6a37360efb53fb929835cf54ab42543117bd4740
Author: Thomas NOËL <tnoel@entrouvert.com>
Date:   Wed May 5 23:20:33 2021 +0200

    workflows: allow a card to modify itself (#53789)

#9

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

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

Formats disponibles : Atom PDF