Projet

Général

Profil

Bug #56974

Bug sur lien quand redirection depuis menu pwa vers une page elle-même re-dirigée

Ajouté par Nicolas Roche 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:
15 septembre 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Avant #56308, le template combo/apps/pwa/templates/combo/pwa/navigation.html affichait un lien vers la page de redirection interne (et la seconde redirection se faisait ensuite si on cliquait).

A présent on affiche directement la seconde redirection, mais on la concatène au domaine combo (dans le template cité ci-dessus).


Fichiers

Révisions associées

Révision eb11afca (diff)
Ajouté par Nicolas Roche il y a plus de 2 ans

pwa: allow absolute redirection url from internal page (#56974)

Historique

#1

Mis à jour par Nicolas Roche il y a plus de 2 ans

(mettre un gabarit permet de contourner)

Ci-joint un test pour reproduire.

#3

Mis à jour par Nicolas Roche il y a plus de 2 ans

J'hésite entre corriger le template (#29435) ou l'interception la redirection en amont (#56308).

Vu que PwaNavigationEntry permet par ailleurs de définir directement une URL externe (qui à priori permet également de contourner le problème) je trouve plus logique que la redirection ne soit pas interceptée lorsque l'on prend la peine de préciser un lien interne.

Cependant je trouve cela lourd d'adapter #56308 pour ne pas faire la redirection quand on vient de la pwa.
Peut-être que le plus simple serait d'adapter le template pour qu'il sache traiter à la fois les URL relatives et absolues.

#4

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

  • Patch proposed changé de Oui à Non

Il ne faut pas réintroduire de redirection inutile.

#5

Mis à jour par Nicolas Roche il y a plus de 2 ans

Il ne faut pas réintroduire de redirection inutile.

Voici un patch qui adapte le gabarit pour traiter les URLs absolues.

#6

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

Plutôt modifier PwaNavigationEntry.get_url pour tout le temps retourner une URL contenant le nom de domaine; (si nécessaire à un moment from combo.middleware import get_request).

#7

Mis à jour par Nicolas Roche il y a plus de 2 ans

une URL contenant le nom de domaine

depuis le modèle, le seul moyen que j'ai trouvé pour récupérer le nom de domaine c'est de passer par le tenant :

site_base = get_request().tenant.domain_url

Il y aurait une autre façon de faire ?
Je demande parce que ça me paraît un peu compliqué, notamment pour faire passer le test dans le middleware ensuite.

#8

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

build_absolute_uri.

#9

Mis à jour par Nicolas Roche il y a plus de 2 ans

(merci)

Plutôt modifier PwaNavigationEntry.get_url pour tout le temps retourner une URL contenant le nom de domaine

j'ai fais ça.

#10

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

Tu peux tout le temps appeler build_absolute_uri.

https://docs.djangoproject.com/en/2.2/ref/request-response/#django.http.HttpRequest.build_absolute_uri

genre

        if get_request():
            url = get_request().build_absolute_uri(url)
#12

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

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

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

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

Et je l'ai poussé pour déployer aujourd'hui,

commit eb11afca1bca7e3af40b4f116c72fbafe98c8f34
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Wed Sep 15 16:40:25 2021 +0200

    pwa: allow absolute redirection url from internal page (#56974)
#14

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

Formats disponibles : Atom PDF