Projet

Général

Profil

Development #39997

rajouter l'action de workflow d'ajout d'une fiche

Ajouté par Serghei Mihai il y a environ 4 ans. Mis à jour il y a environ 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
19 février 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Cf #37528


Fichiers


Demandes liées

Lié à Publik - Development #37528: Développer des actions de workflow pour la gestion des fiches (ajouter / modifier / supprimer)Fermé07 novembre 201905 mars 2020

Actions

Révisions associées

Révision 84081f50 (diff)
Ajouté par Serghei Mihai il y a environ 4 ans

wf: add action to create card data (#39997)

Historique

#1

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

  • Sujet changé de rajouter des actions d'ajout, édition et suppression d'une fiche à rajouter des actions de workflow d'ajout, édition et suppression d'une fiche

(je pense qu'une action par ticket permettrait d'avancer de manière plus sûre)

#2

Mis à jour par Serghei Mihai il y a environ 4 ans

  • Sujet changé de rajouter des actions de workflow d'ajout, édition et suppression d'une fiche à rajouter des actions de workflow d'ajout d'une fiche

Tu as raison.

#3

Mis à jour par Serghei Mihai il y a environ 4 ans

  • Sujet changé de rajouter des actions de workflow d'ajout d'une fiche à rajouter l'action de workflow d'ajout d'une fiche
#4

Mis à jour par Serghei Mihai il y a environ 4 ans

  • Lié à Development #37528: Développer des actions de workflow pour la gestion des fiches (ajouter / modifier / supprimer) ajouté
#5

Mis à jour par Mikaël Ates (de retour le 29 avril) il y a environ 4 ans

Sûrement cela est-il couvert mais il faut que l'action de création de la fiche puisse prendre en paramètre un uuid d'utilisateur pour l'associer à la fiche (form_user), comme on le fait en créant une fiche en backoffice avec :

{{ eservices_url }}backoffice/data/{{fiche_slug}}/add/?NameID={{uuid}}
#6

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

L'action ici sera exactement l'action de création d'une nouvelle demande, avec case à cocher "reprendre l'usager", des évolutions seront possibles, après.

#7

Mis à jour par Serghei Mihai il y a environ 4 ans

Tout à fait.
Je mets à jour la branche sous peu.

#8

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

+ ok_in_global_action = False

Pourquoi pas ok ?

+ category = 'formdata-action'
+ endpoint = False
+ waitpoint = False
...
+ keep_user = True

Plutôt ne pas redéfinir, à l'identique, ce qui est dans la classe parente, avoir uniquement les différences.

+ form_property_name = 'cards'
...
+ form_property_name = 'links'

Pourquoi les faire apparaitre sous un autre nom, ça reste pour moi des données liées.

+ formdef_label = _('Form')

Et partout ailleurs où _() est utilisé : dans w.c.s. le _ n'est pas lazy, ne peut donc pas être employé là.

#9

Mis à jour par Serghei Mihai il y a environ 4 ans

Remarques prises en compte.
Concerant le nom, je trouve plus clair de différencier les formulaires liés et les fiches.

#10

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

+ Mapping(field_id='2', expression='=form_var_list_raw'),
+ Mapping(field_id='3', expression='=form_var_date'),

Dans les tests (comme ailleurs) j'aimerais éviter le recours aux expressions Python; il y a moyen de changer ça en gabarits ? (oui j'ai laissé passer ça dans #33186, pas une raison).

#11

Mis à jour par Serghei Mihai il y a environ 4 ans

Oui, je garde quand même une expression en python pour quand même vérifier le log correspondant.

De plus je modifie la représentation de l'objet lié en fonction du nom de la classe.
Et je vais passer par links pour les 2 types d'objets liés.

#12

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

- title=_('Form'),
+ title=self.formdef_label,

Sans appel à gettext ça ne sera pas traduit.

#14

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

Sans appel à gettext ça ne sera pas traduit.

C'est toujours le cas. Et pour éviter de passer à côté, c'est pareil pour mappings_label et varname_hint.

Aussi, côté libellés,

"Mappings to card fields" vs "Mappings to new form fields" et "Used to get linked card in expressions." This is used to get linked forms in expressions."

Pas de raison pour moi d'avoir ces différences.

#15

Mis à jour par Serghei Mihai il y a environ 4 ans

Ok, réglé ça et au passage renommé l'action en quelque chose de plus comprehensible.

#16

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

Tu peux rebaser ta branche ?

#17

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

(pour le rebase c'est juste par rapport à un test, ça va se faire sans problème)

Aussi, je pense que l'intention au départ était de mettre toutes les actions sur les fiches dans ce wcs/wf/cards.py mais j'ai l'impression qu'on ne va pas aller vers ça, je serais du coup pour renommer le fichier.

LazyFormDataLinks est importé et pas utilisé.

#18

Mis à jour par Serghei Mihai il y a environ 4 ans

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

Aussi, je pense que l'intention au départ était de mettre toutes les actions sur les fiches dans ce wcs/wf/cards.py mais j'ai l'impression qu'on ne va pas aller vers ça, je serais du coup pour renommer le fichier.

Ou rajouter le code dans create_formdata.py vu que c'est presque la même action?

#19

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

Sauf que ça ne correspond pas à "formdata" et comme l'action définit des classes qui se trouvent désormais dans des pickles, référençant le nom du module, celui-ci est désormais figé.

#20

Mis à jour par Serghei Mihai il y a environ 4 ans

  • Statut changé de Solution proposée à En cours

Ok, je renomme en create_carddata.py

#21

Mis à jour par Serghei Mihai il y a environ 4 ans

#22

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

         for part in self._formdata.iter_evolution_parts():
-            if not isinstance(part, LinkedFormdataEvolutionPart):
-                continue
             if part.varname == varname and part.formdata:

Plutôt comparer avec cls que risquer de partir sur un élément d'évolution qui n'aurait aucun rapport.

#23

Mis à jour par Serghei Mihai il y a environ 4 ans

  • Statut changé de Solution proposée à En cours

Je pense plutôt vérifier la présence de l'attribut formdef pour vérifier si l'évolution est bien de type LinkedFormdataEvolutionPart:

    def __getattr__(self, varname):
        for part in self._formdata.iter_evolution_parts():
            if not hasattr(part, 'formdef'):
                continue
            if part.varname == varname and part.formdata:
                return part.formdata.get_substitution_variables()
        raise AttributeError(varname)

et ainsi pouvoir couvrir les cas ou la demande a créé une autre demande mais aussi une fiche.

#24

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

Je pense plutôt vérifier la présence de l'attribut formdef pour vérifier si l'évolution est bien de type LinkedFormdataEvolutionPart:

Non, vérifier la classe, pas partir sur l'idée qu'un autre objet ne pourra jamais avoir d'attribut formdef.

#25

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

Aussi, depuis #40359, il faudrait importer N_.

#26

Mis à jour par Serghei Mihai il y a environ 4 ans

En fait, pas besoin de retirer la condition car LinkedCardDataEvolutionPart hérite de LinkedFormdataEvolutionPart.

#27

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

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

Mis à jour par Serghei Mihai il y a environ 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 84081f50da468f258d39f146c7153bb1493d1655 (origin/master, origin/HEAD)
Author: Serghei Mihai <smihai@entrouvert.com>
Date:   Tue Nov 26 11:23:50 2019 +0100

    wf: add action to create card data (#39997)
#29

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

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

Formats disponibles : Atom PDF