Projet

Général

Profil

Development #72598

Refacto du template user-info.html permettant les surcharges

Ajouté par Thomas Jund il y a plus d'un an. Mis à jour il y a plus d'un an.

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

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

J'ai tenté une surcharge de user-info pour le CD06 : https://gitea.entrouvert.org/entrouvert/publik-base-theme/src/branch/main/templates/variants/alpes-maritimes-2022/includes/user-info.html

Dans cet exemple la surcharge concerne le menu "connecté / logged-in" pour wrapper du code sur l'existant
Exemple simplifié de surcharge :

{% extends "includes/user-info.html" %}
{% block user-info %}
  {% if user.is_authenticated %}
    <div class="du-code-autour">
      <h2>Je suis connecté</h2>
      {{ block.super }}
    </div>
  {% else %}
    {{ block.super }}
  {% endif %}
{% endblock %}

Sur les pages wcs et a2, `{{ user.is_authenticated }}` n'existe pas et le template ne sera pas rendu. Pour que user retourne la bonne valeur il faut l'inclure au sein d'un skeleton :

{% extends "includes/user-info.html" %}
{% block user-info %}
+ {% skeleton_extra_placeholder user-info %}
  {% if user.is_authenticated %}
    <div class="du-code-autour">
      <h2>Je suis connecté</h2>
      {{ block.super }}
    </div>
  {% else %}
    {{ block.super }}
  {% endif %}
+ {% end_skeleton_extra_placeholder %}
{% endblock %}

Mais dans ce cas, `{{ block.super }}` n'existe plus.

Après échange avec Serghei, pour permettre les surcharges, une solution serait de déplacer les templates `login` et `logged-in` dans un include :

{% block user-info %}
  {% skeleton_extra_placeholder user-info %}
    {% if user.is_authenticated %}
      {% include "includes/user-info-logged-in.html" %}
    {% else %}
      {% include "includes/user-info-login.html" %}
    {% endif %}
  {% end_skeleton_extra_placeholder %}
{% endblock %}

Demandes liées

Lié à Intégrations graphiques Publik - Bug #73078: toulouse-2022: l'utilisateur connecté n'est pas détecté dans les toplinks dans le bandeau sur w.c.sFermé06 janvier 2023

Actions
Lié à Intégrations graphiques Publik - Bug #73782: le changement {% include user_info.html %} casse les liens de connexion affichés sur la page 404Nouveau24 janvier 2023

Actions

Révisions associées

Révision bc642785 (diff)
Ajouté par Thomas Jund il y a plus d'un an

template: make user-info template extendable (#72598)

Révision 7d5b04b9 (diff)
Ajouté par Thomas Jund il y a plus d'un an

metz-metropole-2019: remove user-info skeleton (#72598)

Révision d2f86130 (diff)
Ajouté par Thomas Jund il y a plus d'un an

grandlyon-glc: remove user-info skeleton-extra-placeholder (#72598)

Révision e32f01bd (diff)
Ajouté par Thomas Jund il y a plus d'un an

lille-metropole-2022: remove assets library from user-info template (#72598)

Révision 26192e4d (diff)
Ajouté par Thomas Jund il y a plus d'un an

rouen: remove user-info skeleton-extra-placeholder (#72598)

Révision 66152520 (diff)
Ajouté par Thomas Jund il y a plus d'un an

alpes-maritimes-2022: extend block logged-in inside user-info tpl (#72598)

Révision afe05ca1 (diff)
Ajouté par Thomas Jund il y a plus d'un an

villeneuve-dascq: remove user-info skeleton-extra-placeholder (#72598)

Révision ab55513d (diff)
Ajouté par Thomas Jund il y a plus d'un an

toulouse-2022: simplify user-info template (#72598)

extend only login block

Historique

#1

Mis à jour par Frédéric Péters il y a plus d'un an

une solution serait de déplacer les templates `login` et `logged-in`

Par "templates" ici tu fais reférences aux <span class="logged-in"> et <span class="login">.

~~

Je ne sais pas s'il y a quoique ce soit à gagner ici à faire ça de manière globale; le seul petit bout que tu gagnes actuellement dans le gabarit lié c'est ne pas réécrire <div id="toplinks">. Pour si peu, autant gérer totalement comme tu l'entends ton gabarit, je ne capte pas le gain à modifier le gabarit de base.

#2

Mis à jour par Thomas Jund il y a plus d'un an

le seul petit bout que tu gagnes actuellement dans le gabarit lié c'est ne pas réécrire <div id="toplinks">

On gagne le pouvoir de surcharger le template, de quelque manière que ce soit. En l'état actuel aucune surcharge/modification n'est possible.
Avec cette solution, non seulement les surcharges & block optionnels deviennent possibles, mais en plus on pourra supprimer les templates `user-info-*-label` qui ne serviront plus.

#3

Mis à jour par Frédéric Péters il y a plus d'un an

J'ai peut-être du mal à imaginer les choses, ce que je lis ça complique pour moi les choses.

Le propos ne serait pas juste de :

--- a/templates/combo/page_template.html
+++ b/templates/combo/page_template.html
@@ -149,7 +149,9 @@
 {% endblock %}

 {% block top-links %}
+  {% skeleton_extra_placeholder xxx %}
   {% include 'includes/user-info.html' %}
+  {% end_skeleton_extra_placeholder %}
 {% endblock %}
#4

Mis à jour par Thomas Jund il y a plus d'un an

Pas pensé à cette approche qui semble en effet plus simple. Je pars là-dessus.

#5

Mis à jour par Robot Gitea il y a plus d'un an

  • Statut changé de Nouveau à En cours

Thomas Jund (tjund) a ouvert une pull request sur Gitea concernant cette demande :

#6

Mis à jour par Thomas Jund il y a plus d'un an

  • Assigné à changé de Thomas Jund à Benjamin Dauvergne

Je coince sur les templates qui {% load %} des librairies au sein du template user-info.
Avec le skeleton-extra-placeholder autour de l'include, certaines libarairies ne sont pas dispo côté a2 ou wcs, comme `assets`.

Par exemple surcharge MEL 2022 :

{% extends "includes/user-info.html" %}
{% load assets %}

{% block user-info %}
  {{ block.super }}
  {% get_asset "mel:logo" as mel_logo %}

  {% if mel_link and mel_logo %}
    <div class="mel-link-wrapper">
      <a href="{{ mel_link }}">
        <img src="{{site_base}}{% asset_url mel_logo %}" alt="MEL" />
      </a>
    </div>
  {% endif %}
{% endblock %}

Retour à la première proposition avec 2 includes ?

#7

Mis à jour par Frédéric Péters il y a plus d'un an

Tu peux juste {{portal_url}}assets/mel:logo.

#8

Mis à jour par Frédéric Péters il y a plus d'un an

  • Assigné à changé de Benjamin Dauvergne à Thomas Jund
#9

Mis à jour par Frédéric Péters il y a plus d'un an

  • Statut changé de En cours à Solution proposée
#10

Mis à jour par Thomas Jund il y a plus d'un an

Patch pour imio : #72902

#11

Mis à jour par Robot Gitea il y a plus d'un an

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

Serghei Mihai (smihai) a approuvé une pull request sur Gitea concernant cette demande :

N/A

#12

Mis à jour par Robot Gitea il y a plus d'un an

  • Statut changé de Solution validée à Résolu (à déployer)

Thomas Jund (tjund) a mergé une pull request sur Gitea concernant cette demande :

#13

Mis à jour par Transition automatique il y a plus d'un an

  • Statut changé de Résolu (à déployer) à Solution déployée
#14

Mis à jour par Nicolas Roche il y a plus d'un an

  • Lié à Bug #73078: toulouse-2022: l'utilisateur connecté n'est pas détecté dans les toplinks dans le bandeau sur w.c.s ajouté
#17

Mis à jour par Transition automatique il y a environ un an

Automatic expiration

#18

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

  • Lié à Bug #73782: le changement {% include user_info.html %} casse les liens de connexion affichés sur la page 404 ajouté

Formats disponibles : Atom PDF