Projet

Général

Profil

Development #64854

Filtre |join : permettre de mettre un retour à la ligne

Ajouté par Marie Kuntz il y a presque 2 ans. Mis à jour il y a 10 mois.

Statut:
Rejeté
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
04 mai 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

J'ai voulu mettre en forme les résultats d'une requête avec un retour à la ligne mais visiblement ça n'est pas possible ou le mot-clé n'est pas évident.
J'ai essayé :

{{ cards|objects:"thematiques"|filter_by:"thematique"|filter_value:"pouet"|getlist:"contenu"|join:newline }}
{{ cards|objects:"thematiques"|filter_by:"thematique"|filter_value:"pouet"|getlist:"contenu"|join:"<br>" }}
{{ cards|objects:"thematiques"|filter_by:"thematique"|filter_value:"pouet"|getlist:"contenu"|join:"\n" }}

(j'affiche le résultat dans un mail)

Serait-il possible de le permettre ?


Fichiers

Historique

#4

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

un retour à la ligne

C'est bien large, selon le contexte d'utilisation le caractère "retour à la ligne" sera visible tel quel (mail en texte brut), ou pas (mail ou affichage html en général)

(j'affiche le résultat dans un mail)

Ça va dépendre du mail, texte ou html, et quand c'est "texte" c'est en fait reStructuredText et ça vient avec ses propres règles.

Pour ce genre de demande il faut tout le contexte, pointer précisément l'endroit où un retour à la ligne doit être visible.

#5

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

Aussi, s'il fallait s'en tenir au sujet du ticket, qui parle du filtre |join, il y aurait à noter que dans certaines situations ça ne marcherait pas, par exemple pour les emails reStructuredText où pour voir des retours à la ligne visible l'option classique est de commencer chacune des lignes par un symbole |

| ligne 1
| ligne 2
| ligne 3

Souvent donc pour cette demande je dirais que |join n'est pas approprié, qu'il y aurait à faire dans le mail une boucle ({% for %}),

#6

Mis à jour par Thomas Noël il y a presque 2 ans

Typiquement :

{% for card in cards|objects:"thematiques"|filter_by:"thematique"|filter_value:"pouet" %}
| {{ card.fields.contenu }}
{% endfor %}

ou en HTML :

<ul>
{% for card in cards|objects:"thematiques"|filter_by:"thematique"|filter_value:"pouet" %}
  <li>{{ card.fields.contenu }}</li>
{% endfor %}
</ul>

etc.

#7

Mis à jour par Marie Kuntz il y a presque 2 ans

Je ne peux pas faire ça car je mets d'abord les valeurs dans des données de traitement, je n'ai donc pas le retour à la ligne à ma disposition.
J'ai essayé :

{% for card in cards|objects:"thematiques"|filter_by:"thematique"|filter_value:"pouet" %}| {{ card.fields.contenu }}{% endfor %}

Mais | n'est pas interprété

#8

Mis à jour par Marie Kuntz il y a presque 2 ans

Bon, ça marche avec

{% for item in cards|objects:"thematiques"|filter_by:"thematique"|filter_value:"pouet"|getlist:"contenu" %}{% newline %}| {{ item }} {% endfor %}

mais vraiment, ça n'est pas pratique, ni intuitif, ni facile à utiliser, et si l'on pouvait avoir un |join:newline (oublions les mails) ça faciliterait la vie.

#9

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

|join:newline (oublions les mails) ça faciliterait la vie.

Je vais répéter ici que la manière pour "voir apparaitre un retour à la ligne dans le rendu" dépendra de l'endroit du rendu; cf par exemple capture attachée, une donnée de traitement d'un champ texte, avec des caractères retour à la ligne dedans, mais pas visibles sur le rendu.

Il faudra considérer les endroits au cas par cas, je vais poser maintenant qu'il n'y aura pas de solution universelle basée sur |join, que ce ticket ne peut donc être résolu.

#10

Mis à jour par Marie Kuntz il y a presque 2 ans

mais c'est le même problème pour newline, non ? selon l'endroit où on le pose, il fonctionne, ou pas ; ça n'a pas empêché de le mettre en place.

#11

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

mais c'est le même problème pour {% newline %}

Ça a surtout été introduit pour remplacer du n'importe quoi fait avec du Python, ça a peu été réfléchi au-delà.

selon l'endroit où on le pose, il fonctionne, ou pas

Je n'ai pas en tête (ou rapidement trouvé) de tickets où il ait été dit que ça ne fonctionnait pas sur un endroit précis; on aurait certaines possibilités sur le tag {% newline %} de connaitre le contexte.

Là aussi, le contexte précis serait important.

Sur ce ticket, il y a encore moins de contexte maintenant qu'au début, la description était pour l'affichage dans un mail, plus loin il y a "oublions les mails".

#12

Mis à jour par Marie Kuntz il y a 10 mois

  • Statut changé de Nouveau à Rejeté

Formats disponibles : Atom PDF