Development #51593
étendre le paramétrage d'association d'usager des actions de création de demande/fiche
0%
Description
Étendre l'action pour passer de "Conserver l'usager" à une option "Association de la demande/fiche à un utilisateur" qui serait "non", "à partir de la demande/fiche en cours" et "à partir d'un gabarit", option qui afficherait alors la possibilité de saisir un gabarit, et là dedans on pourrait mettre quelque chose comme {{whatever_uuid}}, ou {{whatever_email}}.
(il y a peut-être de meilleurs libellés à trouver).
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Thomas Noël il y a environ 3 ans
Point de vue technique : on pourrait penser à un seul champ « à partir d'un gabarit (nameid, email ou id) » qui irait chercher d'abord dans les name_identifier et, si rien n'est trouvé, dans les email. (Prévoir des cas de doublons possibles, dans ce cas prendre le premier utilisateur trouvé, trié par id, et voilà).
Voir ImportFromCsvAfterJob::user_lookup
dans wcs/backoffice/data_management.py
Mis à jour par Frédéric Péters il y a environ 3 ans
- Fichier 0001-workflows-extend-create-carddata-formdata-user-assoc.patch 0001-workflows-extend-create-carddata-formdata-user-assoc.patch ajouté
- Fichier Screenshot_2021-03-15 Backoffice de Auquo - Workflow - create fiche.png Screenshot_2021-03-15 Backoffice de Auquo - Workflow - create fiche.png ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Ce qui donne la capture attachée (offerte pour permettre la discussion sur les libellés et surtout leur traduction).
Côté code rien de particulier si ce n'est peut-être que ça fonctionne sur les données complexes, ça permet à un {{form_user}} de fonctionner (comme un {{form_user_email}} si on voulait chercher sur l'email).
Mis à jour par Thomas Noël il y a environ 3 ans
Y'a quelque chose qui ne va pas dans le CreateFormdataWorkflowStatusItem::perform je pense:
elif self.user_association_mode == 'custom' and self.user_association_template: with get_publisher().complex_data(): try: value = self.compute( self.user_association_template, formdata=formdata, raises=True, allow_complex=True, status_item=self, ) except Exception: # already logged by self.compute pass from wcs.variables import LazyUser value = get_publisher().get_cached_complex_data(value) if isinstance(value, LazyUser): value = value._user if isinstance(value, get_publisher().user_class): new_formdata.user = value else: new_formdata.user = get_publisher().user_class.lookup_by_string(value)
- le « from wcs.variables import LazyUser » est indenté un peu bizarrement, il faudrait mieux le mettre un cran à gauche, et juste au dessus du isinstance(value, LazyUser) ?
- mais surtout, le value ne va pas exister en cas d'Exception sur le self.compute : il faudrait quitter l'affaire ici, et pas juste faire un "pass"
Pour les libellés moi ça me va, mais j'ajouterais un hint sur le template custom pour dire qu'il « doit renvoyer un objet «User», une adresse électronique ou un UUID (NameID) »
Mis à jour par Frédéric Péters il y a environ 3 ans
le « from wcs.variables import LazyUser » est indenté un peu bizarrement, il faudrait mieux le mettre un cran à gauche, et juste au dessus du isinstance(value, LazyUser) ?
Ah oui j'ai glissé un peu le code en cours de route.
mais surtout, le value ne va pas exister en cas d'Exception sur le self.compute : il faudrait quitter l'affaire ici, et pas juste faire un "pass"
En effet, je corrige et j'ajoute un test pour cette situation.
Mis à jour par Frédéric Péters il y a environ 3 ans
Mis à jour par Frédéric Péters il y a environ 3 ans
(et dans la branche en plus l'ajout du hint).
Mis à jour par Pierre Cros il y a environ 3 ans
Proposition de traduction :
Utilisateur associé à la demande : * Aucun * Garder l'utilisateur actuel * Gabarit personnalisé (l'utilisateur associé dépendra de la valeur du gabarit) Gabarit définissant l'utilisateur à associer (via son courriel, son nameid ou son id)
Mis à jour par Frédéric Péters il y a environ 3 ans
Utilisateur associé à la demande :
Et si c'est une fiche ?
i.e. son souhaite donc un libellé différent dans ce cas ?
Mis à jour par Pierre Cros il y a environ 3 ans
Frédéric Péters a écrit :
Et si c'est une fiche ?
i.e. son souhaite donc un libellé différent dans ce cas ?
Si c'est simple oui c'est un peu mieux mais un seul libellé "Utilisateur associé à la demande/fiche :", ça va très bien aussi.
Mis à jour par Frédéric Péters il y a environ 3 ans
ou son id
J'imagine que ça vient de nos mentions de nameid/uuid, en fait ces deux éléments sont identiques, mais sont différents de ce qui est réellement l'id de l'usager, par lequel on ne peut pas faire d'association.
Mis à jour par Frédéric Péters il y a environ 3 ans
La phrase actuelle à ce sujet (en remarque du champ), c'est « Must give a "User" object, an email address or an user UUID (NameID) » (pas sur la capture).
Mis à jour par Pierre Cros il y a environ 3 ans
Je pense que je mettrais pas de remarque et que je garderais :
Gabarit définissant l'utilisateur à associer (via son courriel ou son NameID)
Mais s'il faut impérativement une remarque :
Gabarit définissant l'utilisateur à associer [ ] Le gabarit doit renvoyer le NameID ou le courriel de l'utilisateur à associer.
Mis à jour par Frédéric Péters il y a environ 3 ans
- Fichier 0001-workflows-extend-create-carddata-formdata-user-assoc.patch 0001-workflows-extend-create-carddata-formdata-user-assoc.patch ajouté
Le patch actualisé avec les adaptations pour les libellés, dont la suppression de la remarque sous le gabarit.
Mis à jour par Thomas Noël il y a environ 3 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Frédéric Péters il y a environ 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
Côté traduction dans le fichier de création de fiches via import de CSV on écrit (adresse électronique ou UUID) (et pas "courriel ou NameID") et j'ai repris pareil; le reste suit ce qui a été écrit ici.
commit e886daee6f725be6472ce9427dca7c434e4966ef Author: Frédéric Péters <fpeters@entrouvert.com> Date: Mon Mar 15 09:49:33 2021 +0100 workflows: extend create carddata/formdata user association options (#51593)
Mis à jour par Frédéric Péters il y a environ 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
Mis à jour par Mikaël Ates il y a environ 3 ans
- Lié à Development #51348: Sur l'action de création d'une demande, pouvoir désigner un autre utilisateur que celui de la demande parente, par exemple en indiquant son uuid. ajouté
workflows: extend create carddata/formdata user association options (#51593)