Projet

Général

Profil

Development #51593

étendre le paramétrage d'association d'usager des actions de création de demande/fiche

Ajouté par Frédéric Péters il y a environ 3 ans. Mis à jour il y a environ 3 ans.

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Lié à w.c.s. - 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.Fermé22 février 2021

Actions

Révisions associées

Révision e886daee (diff)
Ajouté par Frédéric Péters il y a environ 3 ans

workflows: extend create carddata/formdata user association options (#51593)

Historique

#3

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

#4

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

(avoir un seul champ était bien mon idée)

#5

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

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

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

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).

#7

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) »

#8

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.

#10

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

(et dans la branche en plus l'ajout du hint).

#11

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)
#12

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 ?

#13

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.

#14

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.

#15

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).

#16

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.
#17

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

Le patch actualisé avec les adaptations pour les libellés, dont la suppression de la remarque sous le gabarit.

#18

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

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

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)
#20

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
#21

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é

Formats disponibles : Atom PDF