Projet

Général

Profil

Development #8177

saisie backoffice : permettre de préciser l'usager concerné

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

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Pour le moment une demande saisie depuis le backoffice est nécessairement anonyme; pour faire une saisie "au nom de" il faudrait que l'agent puisse assigner un usager à la demande qu'il saisit.

Ça ne devrait sans doute pas être enregistré (dans formdata.user_id) tant que le formulaire est en brouillon, pour éviter que l'usager en frontoffice ait un accès à la demande alors que l'agent est occupé à la saisir.


Fichiers


Demandes liées

Lié à Publik - Development #37527: Lier des utilisateurs à des fichesFermé07 novembre 2019

Actions
Lié à Chrono - Development #45417: Proposer un lien d'inscription à un événement depuis la vue de listing des événements ou depuis la page d'un événementFermé23 juillet 2020

Actions

Révisions associées

Révision f03e4254 (diff)
Ajouté par Frédéric Péters il y a plus de 3 ans

backoffice: allow selecting user during submission (#8177)

Historique

#1

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

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

Ça ne devrait sans doute pas être enregistré (dans formdata.user_id) tant que le formulaire est en brouillon, pour éviter que l'usager en frontoffice ait un accès à la demande alors que l'agent est occupé à la saisir.

(je note ça ici) Il y a, au niveau de l'api, formdata.submission_context['user_id] qui pourrait devenir "officiel". Affichage pendant la saisie sur colonne de droite, et stockage dans formdata.user_id uniquement quand le statut n'est plus "draft".

#2

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

#3

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

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

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

  • Lié à Development #45417: Proposer un lien d'inscription à un événement depuis la vue de listing des événements ou depuis la page d'un événement ajouté
#5

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

Plutôt clair je pense, quelques notes,

  • ça réutilise l'/api/users/, que ça ouvre donc aux agents qui ont les droits en saisie,
  • c'est actif uniquement pour les demandes (nouveaux attributs has_channel_support & has_user_support, qui sont faux pour les fiches),
  • l'idée est quand se définira formellement la possibilité de lier un usager à une fiche (via paramétrage du modèle, où on pourra définir si oui ou non ou peut-être), has_user_support pourra varier en fonction,
  • has_channel_support est également mis à faux dans le cas où welco est déployé, pour ne rien changer à ce fonctionnement (réception du canal via la query string, enregistrement fixe de celui-ci),
  • devoir suivre welco et les usages existants où un ?NameID= est passé à la saisie ça fait aussi que l'usager n'est plus éditable une fois qu'il est défini.
#7

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

(ceci n'est pas une review)

Je teste la branche en local pour essayer de comprendre #48354
A priori il manque l'inclusion de select2.js, j'ai des erreurs JS et un menu qui s'affiche mal sans ça

diff --git a/wcs/backoffice/root.py b/wcs/backoffice/root.py
index 71e1d5ef..d5f731ec 100644
--- a/wcs/backoffice/root.py
+++ b/wcs/backoffice/root.py
@@ -133,7 +133,7 @@ class RootDirectory(BackofficeRootDirectory):
     def _q_access(self):
         get_response().breadcrumb = [] # reinit, root the breadcrumb in the backoffice
         get_response().breadcrumb.append( ('backoffice/', _('Back Office')) )
-        get_response().add_javascript(['jquery.js', 'qommon.admin.js'])
+        get_response().add_javascript(['jquery.js', 'select2.js', 'qommon.admin.js'])
         req = get_request()

         if self.check_admin_for_all():

#8

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

Tu as bien #47867 ? (il est dans la branche mais sait-on jamais). Tu as l'erreur sur quelle page ?

#9

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

oui, je suis sur la branche wip/8177-user-selection avec 2e601618f2851d4f162a836d4b53c0d2f9c47918 et b0b402ba0924351449bd0e65a1a2c34548d0092b

J'ai l'erreur sur /backoffice/management/listing par exemple
ou /backoffice/management/<form-slug>/

et sur toute page du BO w.c.s. j'ai ce menu

#10

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

Je ne rencontre pas ça, tu as des infos dans la console javascript, pour voir ce qui appellerait select2 ?

#11

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

ici:

$('div.submit-user-selection select').select2(select2_options);

#12

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

Ok, j'ai ajouté un if ($('div.submit-user-selection').length) { devant; sans tester mais ça doit permettre de passer.

#13

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

c'est mieux, merci :)

#14

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

                if self.selected_user_id:
                    r += htmltext('<option value="%s">%s</option>') % (
                        self.selected_user_id,
                        get_publisher().user_class.get(self.selected_user_id)
                    )

Il me semble que get_publisher().user_class.get(self.selected_user_id) crashe si le user id n'existe pas

#15

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

Ça ne devrait pas arriver vu qu'il vient d'être choisi mais sait-on jamais et branche modifiée pour se protéger du crash (ajout de ignore_errors=True), ça afficherait "None" ce qui est moyen mais comme je ne pense pas que cette situation puisse vraiment arriver, ça me semble suffisant.

#16

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

J'ai un peu testé, regardé le diff, ça m'a l'air ok, mais je préfèrerais qu'un autre dev valide, genre Thomas qui a l'air de plus maîtriser le sujet :)

#17

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

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

has_channel_support est également mis à faux dans le cas où welco est déployé, pour ne rien changer à ce fonctionnement (réception du canal via la query string, enregistrement fixe de celui-ci),

Ca sera quand même à revoir, parce que à terme welco est dédié uniquement au canal papier, les autres canaux (telephone, guichet) sont gérés via le portail agent combo directement -- mais c'est plutôt l'objet d'un ticket/projet à part sur ce sujet précis, parcours de saisie backoffice etc.

Fonctionnement on risque de heurter un mur par rapport aux homonymes (je ne compte plus le nombre de Thomas Noël à Massy). Il faudrait à mon avis afficher quelques détails (attributs) de l'usager choisi en dessous. Mais ça peut être un ticket à côté.

On aura un autre soucis qui est le pré-remplissage sur la première page, ça ne pourra pas fonctionner sur les attributs utilisateur. De là, je me demande si on ne devrait pas choisir l'usager avant même de rentrer dans le formulaire ? C'est sans doute un bien trop gros changement.... surtout sachant que le chemin normal fonctionne déjà ainsi (chemin normal : la saisie est initiée depuis la fiche usager sur le portail agent combo).

Bref, je ne suis fonctionnellement pas très convaincu mais le patch est ok.

#18

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

Ca sera quand même à revoir, parce que à terme welco est dédié uniquement au canal papier, les autres canaux (telephone, guichet) sont gérés via le portail agent combo directement -- mais c'est plutôt l'objet d'un ticket/projet à part sur ce sujet précis, parcours de saisie backoffice etc.

En pratique la variable welco_url n'est plus posée automatiquement, mais oui il y aura à un moment, genre si jamais welco se retrouve vraiment utilisé pour le courrier, à refaire un tour.

Fonctionnement on risque de heurter un mur par rapport aux homonymes (je ne compte plus le nombre de Thomas Noël à Massy). Il faudrait à mon avis afficher quelques détails (attributs) de l'usager choisi en dessous. Mais ça peut être un ticket à côté.

Oui j'y ai pensé surtout qu'on a un gabarit de rendu des usagers mais celui-ci est prévu pour fournir des bouts plus longs, avec de l'HTML et cie.

On aura un autre soucis qui est le pré-remplissage sur la première page, ça ne pourra pas fonctionner sur les attributs utilisateur. De là, je me demande si on ne devrait pas choisir l'usager avant même de rentrer dans le formulaire ? (...)

Oui le choix de l'utilisateur avant d'entrer est le parcours recommandé via le portail agent; ici il y avait justement la demande qu'il puisse être choisi après avoir entamé la saisie.

#19

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit f03e42545ef444a0c0bc27e24b0d384536bd7eaf
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Tue Oct 20 15:19:07 2020 +0200

    backoffice: allow selecting user during submission (#8177)
#20

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

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

Formats disponibles : Atom PDF