Projet

Général

Profil

Bug #60037

Trace après clic sur un bouton d'action dans un courriel

Ajouté par Pierre Cros il y a plus de 2 ans. Mis à jour il y a plus de 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
23 décembre 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Révision 534ece65 (diff)
Ajouté par Frédéric Péters il y a plus de 2 ans

misc: add support for email actions on cards (#60037)

Historique

#1

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.

#2

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)

#3

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

  • Description mis à jour (diff)
  • Statut changé de Fermé à Nouveau
#4

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

#5

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.

#6

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

#7

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

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

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

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

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

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

Mis à jour par Transition automatique il y a environ 2 ans

Automatic expiration

Formats disponibles : Atom PDF