Project

General

Profile

Development #83713

(ne pas) Pouvoir accéder aux filtres de requêtes sur les fiches dans le gabarit de résumé d’une demande

Added by Paul Marillonnet 11 days ago. Updated 7 days ago.

Status:
Solution déployée
Priority:
Normal
Target version:
-
Start date:
20 November 2023
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

Description

Le code de FormDef.get_dependicies fait que l’on tient compte du contenu des gabarits de résumé pour le calcul des dépendances à inclure dans la demande :

    def get_dependencies(self):
        # […]
        for template in list((self.digest_templates or {}).values()) + [
            self.lateral_template,
            self.submission_lateral_template,
        ]:
            yield from get_dependencies_from_template(template)

lequel provoque l’inclusion du modèle de fiche concerné par une expression de type @cards|objects:"…".

Cependant lors du rendering de gabarit de résumé, cards ne se retrouvent pas dans le contexte et une expression de gabarit du genre

{{ cards|objects:"whatever|filter_by… }}

explosera avec une erreur du genre
  type = '<class 'AttributeError'>', value = ''str' object has no attribute 'whatever''

  File ".../wcs/qommon/templatetags/qommon.py", line 784, in objects
   782 def objects(forms_source, slug):
   783     # assume formdef_source is an instance of CardsSource of FormsSource
>  784     return getattr(forms_source, unlazy(slug)).objects
   785 
   786 

  locals: 
     forms_source = ''
     slug = 'whatever'
forms_source n’est pas connue du filtre objects

Certes on peut se dire que l’usage est peut-être un peu téléphoné, mais l’inclusion de la dépendance dans get_dependencies laisse entendre que cet usage devrait être supporté, d’où ce ticket.

Associated revisions

Revision 2b3001e2 (diff)
Added by Frédéric Péters 7 days ago

misc: add explicit error for cards/forms/... usage in digest templates (#83713)

History

#1

Updated by Paul Marillonnet 11 days ago

  • Description updated (diff)
#3

Updated by Frédéric Péters 11 days ago

Plutôt contre, parce que techniquement ça peut devenir une catastrophe de requêtes SQL à des endroits inattendus et fonctionnellement ça pourrait donner l'impression que cette valeur serait dynamiquement recalculée.

Mais il est sans doute utile de travailler à la remontée d'une erreur explicite. (et il sera toujours temps, plus tard, de permettre, alors que si on accepte maintenant on ne pourra pas revenir en arrière).

#4

Updated by Frédéric Péters 11 days ago

  • Assignee set to Frédéric Péters
#5

Updated by Paul Marillonnet 11 days ago

  • Assignee deleted (Frédéric Péters)

Frédéric Péters a écrit :

Plutôt contre, parce que techniquement ça peut devenir une catastrophe de requêtes SQL à des endroits inattendus et fonctionnellement ça pourrait donner l'impression que cette valeur serait dynamiquement recalculée.

Oui, fair enough, ce(tte absence de) dynamisme étant d’ailleurs l’objet d’un quiproquo dans le ticket lié.

#6

Updated by Paul Marillonnet 11 days ago

  • Assignee set to Frédéric Péters

(Pardon, édition simultanée, l’assignation a sauté.)

#7

Updated by Paul Marillonnet 11 days ago

Frédéric Péters a écrit :

Mais il est sans doute utile de travailler à la remontée d'une erreur explicite. (et il sera toujours temps, plus tard, de permettre, alors que si on accepte maintenant on ne pourra pas revenir en arrière).

(Et donc peut-être aussi, pour bien faire les choses, la contraposée voulant que l’on revoie le calcul des dépendances de façon à exclure les gabarits de résumé des sources qui peuvent mener à l’inclusion de certains formulaires et fiches comme dépendances ?)

#8

Updated by Frédéric Péters 11 days ago

(Et donc peut-être aussi, pour bien faire les choses, la contraposée voulant que l’on revoie le calcul des dépendances de façon à exclure les gabarits de résumé des sources qui peuvent mener à l’inclusion de certains formulaires et fiches comme dépendances ?)

Je serais à considérer ça comme anecdotique et pouvant être zappé : comme cards|etc. ne sera pas utilisé dans les gabarits, il n'y aura de toute façon pas de dépendance trouvée via ce chemin.

#9

Updated by Robot Gitea 11 days ago

  • Status changed from Nouveau to En cours

Frédéric Péters (fpeters) a ouvert une pull request sur Gitea concernant cette demande :

#10

Updated by Paul Marillonnet 11 days ago

Frédéric Péters a écrit :

Je serais à considérer ça comme anecdotique et pouvant être zappé : comme cards|etc. ne sera pas utilisé dans les gabarits, il n'y aura de toute façon pas de dépendance trouvée via ce chemin.

Ok.

#11

Updated by Robot Gitea 11 days ago

  • Status changed from En cours to Solution proposée
#12

Updated by Robot Gitea 11 days ago

  • Status changed from Solution proposée to Solution validée

Paul Marillonnet (pmarillonnet) a approuvé une pull request sur Gitea concernant cette demande :

#13

Updated by Frédéric Péters 10 days ago

  • Subject changed from Pouvoir accéder aux filtres de requêtes sur les fiches dans le gabarit de résumé d’une demande (?) to (ne pas) Pouvoir accéder aux filtres de requêtes sur les fiches dans le gabarit de résumé d’une demande
#14

Updated by Robot Gitea 7 days ago

  • Status changed from Solution validée to Résolu (à déployer)

Frédéric Péters (fpeters) a mergé une pull request sur Gitea concernant cette demande :

#15

Updated by Transition automatique 7 days ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF