Development #14622
Permettre des variables de substitution dans les URLs de redirection
0%
Description
Certaines pages sont des URLs de redirection vers des pages d'autres briques Publik, il serait pratique de pouvoir utiliser des variables comme [wcs_url] dans ces URLs.
Surtout pour permettre l'export/import de sites.
Fichiers
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a plus de 7 ans
J'aurai dit oui avant mais ce serait vraiment mieux ergonomiquement d'avoir la même syntaxe que dans w.c.s. mais ça voudrait dire copier ezt_template dans combo...
Mis à jour par Frédéric Péters il y a plus de 7 ans
Pas fan de copier ezt.py, juste une mini "réimplémentation" qui gère juste la substitution ça m'irait.
Mis à jour par Thomas Noël il y a plus de 7 ans
(moi c'est l'inverse, c'est la syntaxe django que je voudrais avoir dans wcs, j'écris ça juste pour faire chier)
Mis à jour par Benjamin Dauvergne il y a plus de 7 ans
Mouais je trouve celle d'ezt plus lisible dans les cas simples, le fait est qu'on ne devrait avoir que des cas simples pour ce genre d'usages, de la même manière qu'il faut éviter trop de logique dans les templates, c'est aux vue de préparer les données pour le rendu.
Si on veut juste de l'interpolation de variable, ça peut être assez court:
import re _item = r'(?:"(?:[^\\"]|\\.)*"|[-\w.]+)' _re_parse = re.compile(r'\[(%s(?: +%s)*)\]|(\[\[\])|\[#[^\]]*\]' % (_item, _item)) _re_args = re.compile(r'"(?:[^\\"]|\\.)*"|[-\w.]+') def ezt_template(template, **ctx): result = [] parts = _re_parse.split(template) for i in range(0, len(parts) // 3): text, directive, bracket = parts[i * 3:i * 3 + 3] if text: result.append(text) if directive: result.append(ctx.get(directive.strip(), '')) if bracket: result.append('[') result.append(parts[-1]) return ''.join(result) if __name__ == '__main__': assert ezt_template('[url]', url='toto') == 'toto'
Mis à jour par Frédéric Péters il y a environ 7 ans
- Assigné à mis à Frédéric Péters
Je vais m'occuper de ça.
Mis à jour par Frédéric Péters il y a environ 7 ans
- Fichier 0001-general-add-support-for-substitution-variables-in-UR.patch 0001-general-add-support-for-substitution-variables-in-UR.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Voilà, en plus des redirections j'ai aussi ajouté ça aux URL définies dans les cellules de fil rss et de lien, et dans le connecteur newsletters.
Mis à jour par Thomas Noël il y a environ 7 ans
Est-ce qu'on s'autorise des .strip() comme dans wcs ? (bof...)
Mis à jour par Frédéric Péters il y a environ 7 ans
- Statut changé de En cours à Résolu (à déployer)
Pour le redirect_url, on fait déjà un strip() dans combo/manager/forms.py.
commit e7915bd4062d2758ff1e96fb04c88cd22e283ab1 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Fri Feb 3 15:12:17 2017 +0100 general: add support for substitution variables in URLs (#14622)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
general: add support for substitution variables in URLs (#14622)