Projet

Général

Profil

Bug #59661

Donnée calculée avec un prefill sur un cards|objects non trouvé

Ajouté par Lauréline Guérin 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:
14 décembre 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

- Un formdef avec un champ donnée calculée
- la donnée calculée a un prefill qui contient un cards|objects sur un model de fiche qui n'existe pas
Exemple: {{ cards|objects:"inscription-activites-famille"|filter_by:"enfant"|filter_value:form_var_enfant|first|get:"activites_famille_inscription"|default:"" }}
le carddef inscription-activites-famille n'existe pas

Essayer de remplir une démarche, erreur 500

Exception:
  type = '<class 'AttributeError'>', value = 'inscription-activites-famille'

Stack trace (most recent call first):
  File "/usr/lib/python3/dist-packages/wcs/variables.py", line 1288, in __getattr__
  1286             return LazyFormDef(CardDef.get_by_urlname(attr))
  1287         except KeyError:
> 1288             raise AttributeError(attr)
  1289 
  1290 

  locals: 
     attr = 'inscription-activites-famille'
     self = <wcs.variables.CardsSource object at 0x7fe26d225c88>

  File "/usr/lib/python3/dist-packages/wcs/qommon/templatetags/qommon.py", line 696, in objects
   694 def objects(forms_source, slug):
   695     # assume formdef_source is an instance of CardsSource of FormsSource
>  696     return getattr(forms_source, unlazy(slug)).objects
   697 
   698 

Fichiers

Révisions associées

Révision 9ec9d316 (diff)
Ajouté par Lauréline Guérin il y a plus de 2 ans

fields: don't fail on unknown |objects filter (#59661)

Historique

#2

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

  • Tracker changé de Development à Bug
#3

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

  • Sujet changé de Donnée calculée avec un prefill sur un cards|objects non trouvé à Filtre |objects sur un slug qui n'existe pas, éviter de finir en erreur 500

En fait plus vaste que ça: le filter objects peut lever un AttributeError qui finira en 500 dans le cas d'un prefill, un champ commentaire, ...
Faire un try/except au niveau du filter, avec un record_error

#4

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

rattrapage de l'erreur et record au niveau du rendu

#5

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

  • Sujet changé de Filtre |objects sur un slug qui n'existe pas, éviter de finir en erreur 500 à Donnée calculée avec un prefill sur un cards|objects non trouvé
#6

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

note: effet de bord sur get_prefill_value qui renvoie le template brut si le slug n'existe pas

#7

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

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

note: effet de bord sur get_prefill_value qui renvoie le template brut si le slug n'existe pas

Ok pour vivre avec ça.

#8

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit 9ec9d316894a3ee7b6934c2f0743e29a8b1a30a5
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Tue Dec 14 11:46:29 2021 +0100

    fields: don't fail on unknown |objects filter (#59661)
#9

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

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

Automatic expiration

Formats disponibles : Atom PDF