Development #25057
changer les templates de vue pour pouvoir fournir toute la page
0%
Description
Certaines pages (remplissage, validation, statut) ont été converties pour être rendues via un template mais il s'agit de templates partiels, dont la sortie va être une chaine de caractère qui à son tour sera passée dans un template plus englobant (wcs/base.html). Plutôt, il faudrait que ces templates {% extends "wcs/base.html" %}, ce qui donnera toute la souplesse nécessaire tout en évitant des risques de recalcul.
Fichiers
Révisions associées
adapt to template changes (#25057)
Historique
Mis à jour par Frédéric Péters il y a presque 6 ans
- Fichier 0001-general-always-use-a-django-template-to-render-pages.patch 0001-general-always-use-a-django-template-to-render-pages.patch ajouté
- Fichier 0001-adapt-to-template-changes-25057.patch 0001-adapt-to-template-changes-25057.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Voilà c'est plutôt moche à cause d'auquotidien avec des thèmes en ezt.
J'aurais aimé dire que pour les sites Publik où le thème ne définit pas de template spécifique ça ne changeait rien, zéro risque, mais c'est quand même un peu faux, et va me falloir un autre argument pour faire valider ça rapidement. (j'en aurais besoin pour GNM).
Mis à jour par Frédéric Péters il y a presque 6 ans
un autre argument pour faire valider ça rapidement.
L'argument c'est que j'ai ajouté aux tests une variante supplémentaire qui se base sur le rendu via un template, qui est un chemin qu'on exerçait déjà (en partie) via publik-base-theme (qui a wcs/base.html), sans que ça ne soit testé. Ce patch passe tous les tests et en ajoute, c'est donc vraiment bon™.
Mis à jour par Frédéric Péters il y a presque 6 ans
(il manquait un petit fichier dans le patch, qui est intégré dans https://git.entrouvert.org/wcs.git/log/?h=wip/25057-full-templates)
Mis à jour par Thomas Noël il y a presque 6 ans
En premier passage rapide, je bloque pour l'instant sur l'ajout du kwargs dans def get_decorate_vars(body, response, generate_breadcrumb=True, **kwargs):
car il y a un kwargs = {}
quelques lignes en dessous... Un reste d'un début d'idée ?
Mis à jour par Thomas Noël il y a presque 6 ans
Frédéric Péters a écrit :
Il est utilisé dans le patch auquo dessous.
Justement, je vois pas où... (j'espère ne pas passer pour un aveugle)...
def get_decorate_vars(body, response, generate_breadcrumb=True, template_context=None, **kwargs): if template_context and 'form_side' in template_context: # force rendering as it will put new variables in the context template_context['form_side'] = template_context['form_side']() for key in ('bigdiv', 'gauche'): if not response.filter.has_key(key): response.filter[key] = None return wcs_get_decorate_vars(body, response, generate_breadcrumb)
Mis à jour par Frédéric Péters il y a presque 6 ans
La signature est différente,
+def get_decorate_vars(body, response, generate_breadcrumb=True, **kwargs):
côté wcs
et +def get_decorate_vars(body, response, generate_breadcrumb=True, template_context=None, **kwargs):
côté auquotidien.
Et template_context est passé dans render_template, dans compat.py.
Mis à jour par Thomas Noël il y a presque 6 ans
- Statut changé de Solution proposée à Solution validée
Ok... désolé.
Bon c'est pas très joli mais difficile de faire autrement tant que auquotidien, effectivement.
Testé en local, j'ai rien vu, rien n'est modifié, rien ne change, rien n'évolue : c'est parfait.
À pousser au plus tôt, histoire de vivre une semaine avec.
Mis à jour par Frédéric Péters il y a presque 6 ans
- Statut changé de Solution validée à Solution déployée
general: always use a django template to render pages (#25057)