Project

General

Profile

Development #64854

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

Added by Marie Kuntz (absente) 9 months ago. Updated 9 months ago.

Status:
Nouveau
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
04 May 2022
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

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 ?


Files

History

#4

Updated by Frédéric Péters 9 months ago

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

Updated by Frédéric Péters 9 months ago

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

Updated by Thomas Noël 9 months ago

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

Updated by Marie Kuntz (absente) 9 months ago

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

Updated by Marie Kuntz (absente) 9 months ago

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

Updated by Frédéric Péters 9 months ago

|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

Updated by Marie Kuntz (absente) 9 months ago

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

Updated by Frédéric Péters 9 months ago

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".

Also available in: Atom PDF