Projet

Général

Profil

Bug #50502

erreur "maximum recursion depth exceeded in comparison" lors de l'accès à une vue de fiche personnalisée

Ajouté par Serghei Mihai il y a environ 3 ans. Mis à jour il y a 5 mois.

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

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

Pas sûr des conditions dans lesquelles cela arrive:

Exception:
  type = '<class 'RecursionError'>', value = 'maximum recursion depth exceeded in comparison'

Stack trace (most recent call first):
  File "/usr/lib/python3.7/gettext.py", line 453, in gettext
   451     def gettext(self, message):
   452         missing = object()
>  453         tmsg = self._catalog.get(message, missing)  
   454         if tmsg is missing:
   455             if self._fallback:

  locals: 
     message = 'Recipient'
     missing = <object object at 0x7f4ccafe15d0>
     self = <DjangoTranslation lang:fr>

  File "/usr/lib/python3/dist-packages/django/utils/translation/trans_real.py", line 324, in do_translate
   322         translation_object = getattr(_active, "value", _default)
   323 
>  324         result = getattr(translation_object, translation_function)(eol_message)  
   325 
   326     if isinstance(message, SafeData):

  locals: 
     eol_message = 'Recipient'
     message = 'Recipient'
     translation_function = 'gettext'
     translation_object = <DjangoTranslation lang:fr>

  File "/usr/lib/python3/dist-packages/django/utils/translation/trans_real.py", line 338, in gettext
   336     Returns a string on Python 3 and an UTF-8-encoded bytestring on Python 2.
   337     """ 
>  338     return do_translate(message, 'gettext')  
   339 
   340 

  locals: 
     message = 'Recipient'

  File "/usr/lib/python3/dist-packages/django/utils/translation/__init__.py", line 81, in gettext
    79 
    80 def gettext(message):
>   81     return _trans.gettext(message)  
    82 
    83 

  locals: 
     message = 'Recipient'

  File "/usr/lib/python3/dist-packages/wcs/qommon/__init__.py", line 46, in _
    44     if pub is None:
    45         return message
>   46     return force_str(force_text(pub.gettext(str(message))))  
    47 
    48 

  locals: 
     message = 'Recipient'
     pub = <wcs.compat.CompatWcsPublisher object at 0x7f4ccaa2f898>

  File "/usr/lib/python3/dist-packages/wcs/workflows.py", line 350, in __init__
   348         self.name = name
   349         self.possible_status = []
>  350         self.roles = {'_receiver': _('Recipient')}  
   351         self.global_actions = []
   352         self.criticality_levels = []

  locals: 
     name = 'Par défaut (fiches)'
     self = <Workflow 'Par défaut (fiches)' id:None>

  File "/usr/lib/python3/dist-packages/wcs/carddef.py", line 90, in get_default_workflow
    88                                  ChoiceWorkflowStatusItem, Workflow)
    89         from wcs.wf.remove import RemoveWorkflowStatusItem
>   90         workflow = Workflow(name=_('Default (cards)'))  
    91         workflow.id = '_carddef_default'
    92         workflow.roles = {

  locals: 
     ChoiceWorkflowStatusItem = <class 'wcs.workflows.ChoiceWorkflowStatusItem'>
     EditableWorkflowStatusItem = <class 'wcs.workflows.EditableWorkflowStatusItem'>
     RemoveWorkflowStatusItem = <class 'wcs.wf.remove.RemoveWorkflowStatusItem'>
     Workflow = <class 'wcs.workflows.Workflow'>
     cls = <class 'wcs.carddef.CardDef'>

  File "/usr/lib/python3/dist-packages/wcs/formdef.py", line 440, in get_workflow
   438             return self._workflow
   439         else:
>  440             return self.get_default_workflow()  
   441 
   442     @classmethod

  locals: 
     Workflow = <class 'wcs.workflows.Workflow'>
     self = <CardDef 'Renseignements - démarche - catégorie - objet - services traitants' id:3>

  File "/usr/lib/python3/dist-packages/wcs/formdef.py", line 397, in get_all_fields
   395 
   396     def get_all_fields(self):
>  397         return (self.fields or []) + self.workflow.get_backoffice_fields()  
   398 
   399     def get_widget_fields(self):

  locals: 
     self = <CardDef 'Renseignements - démarche - catégorie - objet - services traitants' id:3>

  File "/usr/lib/python3/dist-packages/wcs/backoffice/management.py", line 1637, in get_formdef_fields
  1635                 yield UserRelatedField(field)
  1636 
> 1637         for field in self.formdef.get_all_fields():  
  1638             yield field
  1639             if not get_publisher().is_using_postgresql():

  locals: 
     field = <StringField _avatar 'Avatar'>
     self = <wcs.backoffice.data_management.CardPage object at 0x7f4cc87f3320>

...
Environment:
HTTP_ACCEPT     'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
HTTP_ACCEPT_ENCODING 'gzip, deflate, br'
HTTP_ACCEPT_LANGUAGE 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3'
HTTP_CONNECTION 'close'
HTTP_HOST       'services-test.demarches.grenoblealpesmetropole.fr'
HTTP_REFERER    'https://services-test.demarches.grenoblealpesmetropole.fr/backoffice/data/demarche-categorie-objet-service-traitant/liste-des-demarches-thematiques/'
HTTP_UPGRADE_INSECURE_REQUESTS '1'
HTTP_USER_AGENT 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0'
HTTP_X_FORWARDED_HOST 'services-test.demarches.grenoblealpesmetropole.fr'
HTTP_X_FORWARDED_PROTO 'https'
HTTP_X_FORWARDED_PROTOCOL 'ssl'
HTTP_X_FORWARDED_SERVER 'test.demarches.grenoblealpesmetropole.fr'
HTTP_X_FORWARDED_SSL 'on'
PATH_INFO       '/backoffice/data/demarche-categorie-objet-service-traitant/pardefaut/'
QUERY_STRING    ''
REQUEST_METHOD  'GET'
REQUEST_URI     '/backoffice/data/demarche-categorie-objet-service-traitant/pardefaut/'

A priori il y a eu des supressions de champs dans le modèle de fiche après la construction de vues personnalisées.

Historique

#2

Mis à jour par Frédéric Péters il y a 5 mois

  • Statut changé de Nouveau à Fermé

Pas sûr des conditions dans lesquelles cela arrive:

Pas l'impression d'avoir revu ça, si jamais ça arrive, espérons que les conditions soient plus claires.

Formats disponibles : Atom PDF