Bug #60037
Trace après clic sur un bouton d'action dans un courriel
0%
Description
Ce saut réservé à l'usager :
https://demarches-validation.test.entrouvert.org/backoffice/workflows/89/status/0/items/2/
a été utilisé pour créer un bouton d'action dans un courriel :
https://demarches-validation.test.entrouvert.org/backoffice/workflows/89/status/0/items/3/
Le lien reçu :
https://demarches-validation.test.entrouvert.org/actions/t2yY3Ze8XHiFIieitMNBA4BMrBj02IWm4b69pzykwOKTM2NSOyYKMqEqp5gxb6Dx/
Ouvert dans un chromium vierge de toute session donne une trace :
Exception: type = '<class 'KeyError'>', value = '' Stack trace (most recent call first): File "/usr/lib/python3/dist-packages/wcs/qommon/storage.py", line 585, in get_filename 583 finally: 584 if fd: > 585 fd.close() 586 if cls._reset_class: 587 o.__class__ = cls locals: cls = <class 'wcs.formdef.FormDef'> fd = None filename = '/var/lib/wcs/demarches-validation.test.entrouvert.org/formdefs-url_name/creation-de-compte' ignore_errors = False ignore_migration = False kwargs = {} File "/usr/lib/python3/dist-packages/wcs/qommon/storage.py", line 521, in get_on_index 519 cls.rebuild_indexes() 520 filename = os.path.join(index_dir, str(fix_key(id))) > 521 return cls.get_filename(filename, ignore_errors=ignore_errors, ignore_migration=ignore_migration) 522 523 @classmethod locals: cls = <class 'wcs.formdef.FormDef'> filename = '/var/lib/wcs/demarches-validation.test.entrouvert.org/formdefs-url_name/creation-de-compte' id = 'creation-de-compte' ignore_errors = False ignore_migration = False index = 'url_name' index_dir = '/var/lib/wcs/demarches-validation.test.entrouvert.org/formdefs-url_name' objects_dir = '/var/lib/wcs/demarches-validation.test.entrouvert.org/formdefs' File "/usr/lib/python3/dist-packages/wcs/formdef.py", line 631, in get_by_urlname 629 @classmethod 630 def get_by_urlname(cls, url_name, ignore_migration=False): > 631 return cls.get_on_index(url_name, 'url_name', ignore_migration=ignore_migration) 632 633 def get_url(self, backoffice=False, preview=False): locals: cls = <class 'wcs.formdef.FormDef'> ignore_migration = False url_name = 'creation-de-compte' File "/usr/lib/python3/dist-packages/wcs/forms/actions.py", line 52, in __init__ 50 def __init__(self, token): 51 self.token = token > 52 self.formdef = FormDef.get_by_urlname(self.token.context['form_slug']) 53 self.formdata = self.formdef.data_class().get(self.token.context['form_number_raw']) 54 self.action = None locals: self = <wcs.forms.actions.ActionDirectory object at 0x7fcefd736e10> token = <Token id:t2yY3Ze8XHiFIieitMNBA4BMrBj02IWm4b69pzykwOKTM2NSOyYKMqEqp5gxb6Dx> File "/usr/lib/python3/dist-packages/wcs/forms/actions.py", line 43, in _q_lookup 41 if token.type != 'action': 42 raise errors.TraversalError() > 43 return ActionDirectory(token) 44 45 locals: component = 't2yY3Ze8XHiFIieitMNBA4BMrBj02IWm4b69pzykwOKTM2NSOyYKMqEqp5gxb6Dx' self = <wcs.forms.actions.ActionsDirectory object at 0x7fcf05e05358> token = <Token id:t2yY3Ze8XHiFIieitMNBA4BMrBj02IWm4b69pzykwOKTM2NSOyYKMqEqp5gxb6Dx> File "/usr/lib/python3/dist-packages/quixote/directory.py", line 82, in _q_traverse 80 obj = getattr(self, name) 81 else: > 82 obj = self._q_lookup(component) 83 if obj is None: 84 raise TraversalError(private_msg=('directory %r has no component ' locals: component = 't2yY3Ze8XHiFIieitMNBA4BMrBj02IWm4b69pzykwOKTM2NSOyYKMqEqp5gxb6Dx' name = None path = [''] self = <wcs.forms.actions.ActionsDirectory object at 0x7fcf05e05358> File "/usr/lib/python3/dist-packages/quixote/directory.py", line 88, in _q_traverse 86 if path: 87 if hasattr(obj, '_q_traverse'): > 88 return obj._q_traverse(path) 89 else: 90 raise TraversalError locals: component = 'actions' name = 'actions' obj = <wcs.forms.actions.ActionsDirectory object at 0x7fcf05e05358> path = ['t2yY3Ze8XHiFIieitMNBA4BMrBj02IWm4b69pzykwOKTM2NSOyYKMqEqp5gxb6Dx', ''] self = <modules.root.AlternateRootDirectory object at 0x7fceff77a208> File "/usr/lib/python3/dist-packages/auquotidien/modules/root.py", line 340, in _q_traverse 338 return FormsRootDirectory(cat)._q_traverse(path[1:]) 339 > 340 raise e 341 342 def _q_lookup(self, component): locals: path = ['actions', 't2yY3Ze8XHiFIieitMNBA4BMrBj02IWm4b69pzykwOKTM2NSOyYKMqEqp5gxb6Dx', ''] response = <wcs.qommon.http_response.HTTPResponse object at 0x7fcefd6e7da0> self = <modules.root.AlternateRootDirectory object at 0x7fceff77a208> File "/usr/lib/python3/dist-packages/quixote/publish.py", line 241, in try_publish 239 permanent=True) 240 components = path[1:].split('/') > 241 output = self.root_directory._q_traverse(components) 242 # The callable ran OK, commit any changes to the session 243 self.finish_successful_request() locals: allowed_methods = ['GET', 'HEAD', 'POST', 'PUT'] components = ['actions', 't2yY3Ze8XHiFIieitMNBA4BMrBj02IWm4b69pzykwOKTM2NSOyYKMqEqp5gxb6Dx', ''] method = 'GET' path = '/actions/t2yY3Ze8XHiFIieitMNBA4BMrBj02IWm4b69pzykwOKTM2NSOyYKMqEqp5gxb6Dx/' request = <wcs.compat.CompatHTTPRequest object at 0x7fcefd635940> self = <wcs.compat.CompatWcsPublisher object at 0x7fceff77a2b0> [...] Environment: PATH_INFO '/actions/t2yY3Ze8XHiFIieitMNBA4BMrBj02IWm4b69pzykwOKTM2NSOyYKMqEqp5gxb6Dx/'
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a plus de 2 ans
Ok les boutons d'action c'est pour les démarches pas les fiches, il n'y a pas de front wcs pour les fiches.
Mis à jour par Pierre Cros il y a plus de 2 ans
- Statut changé de Nouveau à Fermé
Thx, je vais passer par un formulaire du coup. (et j'ajoute ça dans la doc)
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Description mis à jour (diff)
- Statut changé de Fermé à Nouveau
Mis à jour par Frédéric Péters il y a plus de 2 ans
Ça a réouvert le ticket parce que j'éditais sa description pour garder uniquement la partie utile de la trace mais tant qu'à l'avoir réouvert, donc, on peut se poser la question quand même de l'utilité de permettre ça sur les fiches, ça ne serait techniquement pas bien compliqué (tout le danger est derrière dans ce que ça peut ouvrir comme demandes supplémentaires à la suite).
Mis à jour par Pierre Cros il y a plus de 2 ans
Mon cas d'usage est pourri : création de compte qui sera à terme gérée entièrement dans A2 je pense, rien de nécessaire pour moi donc.
Mais on peut compter sur la créativité de nos clients, des usages plus légitimes il y en aurait.
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Fichier 0001-misc-add-support-for-email-actions-on-cards-60037.patch 0001-misc-add-support-for-email-actions-on-cards-60037.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 534ece65fa6375d14a4e3fa8217c211286f1a5bf Author: Frédéric Péters <fpeters@entrouvert.com> Date: Thu Dec 23 10:42:10 2021 +0100 misc: add support for email actions on cards (#60037)
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
misc: add support for email actions on cards (#60037)