Development #25305
Permettre à la saisie backoffice d'être initiée avec un utilisateur/canal
0%
Description
Pour pouvoir initier une demande au nom de l'usager sélectionné côté portail accueil/guichet, il faudrait que la page démarrant la saisie par un agent d'une demande puisse recevoir dans sa query string ces infos et les conserver.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a presque 6 ans
- Lié à Development #19756: Personnalisation accrue du portail agent pour en faire aussi la page d'entrée des agents d'accueil ajouté
Mis à jour par Thomas Noël il y a presque 6 ans
Si par hasard tu as une idée de piste où poser ce bout de truc, je prends... j'ai tenté à côté de la gestion du beau __cancelurl ou dans backoffice/submission.py mais rien qui ne soit digne de ne pas être appelé gros-hack-qui-tache.
En fait, je crois que je ne comprends toujours pas wcs/forms/root.py (oui, au bout de 10 ans...)
Mis à jour par Thomas Noël il y a presque 6 ans
- Fichier 0001-submission-handle-NameID-in-query-string-25305.patch 0001-submission-handle-NameID-in-query-string-25305.patch ajouté
- Statut changé de Nouveau à En cours
Le point où j'en suis, qui ne me satisfait pas du tout, y compris fonctionnellement car l'agent arrive sur la première page sans voir l'usager associé sur la barre latérale (comme le code de suivi, de fait, tout n'apparait que sur la page suivante).
Mis à jour par Frédéric Péters il y a presque 6 ans
Côté approche, j'avais plutôt en tête, en présence du paramètre dans la querystring, de créer un brouillon(/prédemande), comme c'est aujourd'hui le cas quand welco appelle l'API, ces parties-ci de l'API :
if json_input.get('context'): formdata.submission_context = json_input['context'] formdata.submission_channel = formdata.submission_context.pop('channel', None) formdata.user_id = formdata.submission_context.pop('user_id', None) ... if meta.get('backoffice-submission'): # keep track of the agent that did the submit if not formdata.submission_context: formdata.submission_context = {} formdata.submission_context['agent_id'] = user.id ... if meta.get('draft'): formdata.status = 'draft' formdata.receipt_time = time.localtime() formdata.store()
Ensuite, une fois le formdata.store() effectué, faire une redirection vers celui-ci (.rstrip('/') sans doute nécessaire), pour embrayer sur le code de saisie normal.
Quelques lignes concentrées dans FormFillPage::_q_index de submission.py.
Mis à jour par Thomas Noël il y a presque 6 ans
- Fichier 0001-submission-allow-NameID-and-channel-is-query-string-.patch 0001-submission-allow-NameID-and-channel-is-query-string-.patch ajouté
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Gros merci pour cette idée, ça marche pas mal du tout.
Mis à jour par Frédéric Péters il y a presque 6 ans
s/is/in/ dans le message de commit; mais avec ça ok. (pas exécuté en local)
Mis à jour par Thomas Noël il y a plus de 5 ans
- Statut changé de Solution proposée à Résolu (à déployer)
commit 439a5bb82cdacb011e3c83f73ebc33af31df3434 Author: Thomas NOEL <tnoel@entrouvert.com> Date: Thu Jul 19 17:13:40 2018 +0200 submission: allow NameID and channel in query string (#25305)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
submission: allow NameID and channel in query string (#25305)