Projet

Général

Profil

Bug #21486

Afficher le titre, la description et la date d'expiration de chaque document dans le tableau principal de listing des documents

Ajouté par Paul Marillonnet il y a plus de 6 ans. Mis à jour il y a environ 6 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
Début:
29 janvier 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

En l'état, l'utilisateur ne voit ces trois informations que lorsqu'il clique sur l'icône d'édition des informations du document.
Il faudrait que ces trois informations soient visibles, en lecture seule, directement à l'affichage du tableau.


Fichiers


Demandes liées

Lié à Fargo - Development #22516: simplification de la logique d'affichage du titre/nom de fichier des documents dans le tableau principalFermé14 mars 2018

Actions

Révisions associées

Révision bf3e756d (diff)
Ajouté par Paul Marillonnet il y a environ 6 ans

add additional read-only information in main table (#21486)

Historique

#1

Mis à jour par Paul Marillonnet il y a plus de 6 ans

  • Assigné à mis à Paul Marillonnet
#2

Mis à jour par Paul Marillonnet il y a plus de 6 ans

Petite galère, encore une fois avec gadjo.css. Dès que c'est résolu, je m'y colle.

#3

Mis à jour par Paul Marillonnet il y a plus de 6 ans

Dans l'idée je vois quelque chose d'assez bref, peut-être simplement comme ça.

#4

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

Petite galère, encore une fois avec gadjo.css. Dès que c'est résolu, je m'y colle.

Attention il faut vraiment travailler dans une intégration graphique Publik. Celle-ci n'utilisera pas gadjo.css mais publik-base-theme, ce qui amènera notamment une largeur limite (là où gadjo laisse au contenu toute la largeur de l'écran). Exemple en pièce jointe, Strasbourg, avec la barre latérale qui prend aussi de l'espace, ça laisse 900 px pour le tableau Fargo. Autre situation l'utilisation en popup pour choisir un fichier, là aussi la taille est réduite.

Dans ces configurations, il deviendra normalement clair qu'on ne peut pas charger le tableau de colonnes supplémentaires, qu'il faut imaginer d'autres choses : on pourrait imaginer le titre remplacer le nom de fichier, on pourrait imaginer la ligne splittée en deux sur sa hauteur pour les premières colonnes, avec la description dans la deuxième ligne et couvrant plusieurs colonnes, la limite de validité reprise dans le texte, etc.

   ---------------------------------------------------------------------
  | Attestation fiscale      |   2 Mo  | 23 jan. 2018 11:22 |  ** |     |
  | Lorem ipsum dolor sit amet, in qui odio fabulas         | *** | (x) |
  | sententiae ut curi duo. (valable jusqu'au 10 juin 2018) | *** |     |
   ---------------------------------------------------------------------
  | ...

Sans doute totalement galère à faire avec django-tables2.

#5

Mis à jour par Paul Marillonnet il y a plus de 6 ans

Edit: fausse manip', je corrige directement ici.

Hmm oui OK je comprends.
Dans l'esprit je verrais bien aussi une icône pour élargir verticalement chaque ligne et afficher plusieurs informations.
Peut-être une icône "flèche vers le bas", présentée d'abord comme :

   ---------------------------------------------------------------------
  | Permis de conduire       |   3 Mo  | 21 jan. 2018 14:34 |  v  | (x) |
   ---------------------------------------------------------------------
  | Attestation fiscale      |   2 Mo  | 23 jan. 2018 11:22 |  v  | (x) |
   ---------------------------------------------------------------------
  | Certif. chasse aux œufs  |  17 Mo  | 28 jan. 2018 07:57 |  v  | (x) |
   ---------------------------------------------------------------------

Qui deviendrait, une fois la flèche vers le bas cliquée :

   ---------------------------------------------------------------------
  | Permis de conduire       |   3 Mo  | 21 jan. 2018 14:34 |  v  | (x) |
   ---------------------------------------------------------------------
  | Attestation fiscale      |   2 Mo  | 23 jan. 2018 11:22 |  ^  | (x) |
  | Lorem ipsum dolor sit amet, in qui odio fabulas         |     |     |
  | sententiae ut curi duo. (valable jusqu'au 10 juin 2018) |     |     |
   ---------------------------------------------------------------------
  | Certif. chasse aux œufs  |  17 Mo  | 28 jan. 2018 07:57 |  v  | (x) |
   ---------------------------------------------------------------------

Et oui je sais pas encore si django-tables2 pourrait m'aider, ne rien changer au problème, ou carrément me mettre des bâtons dans les roues.

#6

Mis à jour par Benjamin Dauvergne il y a environ 6 ans

Je ne vois pas trop de problème à faire ce que demande Fred avec le template django-tables2, voir :

http://git.entrouvert.org/fargo.git/tree/fargo/templates/fargo/table.html?id=bdc7945217e590b5195d291a78785036c74c41ca#n24

Faut juste générer deux tr si nécessaire et jouer correctement avec colspan, rowspan, on utilise déjà des classes pour la coloration des lignes pairs/impairs donc multiplier les tr n'aura pas d'impact de ce coté. rowspan=2 pour pour le td.action-column et ensuite un nouveau tr avec un td.description et un colspan=3.

Pour tes propositions Paul j'irai plutôt au plus court ici, la proposition de Fred me semble suffisante.

#7

Mis à jour par Benjamin Dauvergne il y a environ 6 ans

  • Version cible mis à 0.23
#9

Mis à jour par Paul Marillonnet il y a environ 6 ans

  • Statut changé de Nouveau à En cours
#10

Mis à jour par Paul Marillonnet il y a environ 6 ans

Pour le découpage de la table, peut-être quelque chose comme ça ?

diff --git a/fargo/templates/fargo/table.html b/fargo/templates/fargo/table.html
index a2d002c..44f2030 100644
--- a/fargo/templates/fargo/table.html
+++ b/fargo/templates/fargo/table.html
@@ -28,9 +28,9 @@
       <td {{ column.attrs.td.as_html }}>{% if column.localize == None %}{{ cell }}{% else %}{% if column.localize %}{{ cell|localize }}{% else %}{{ cell|unlocalize }}{% endif %}{% endif %}</td>
     {% endfor %}
       {% with url=row.record.get_thumbnail_url %}
-        <td class="thumbnail">{% if url %}<img src="{{ url }}"/>{% endif %}</td>
+        <td class="thumbnail" rowspan=2>{% if url %}<img src="{{ url }}"/>{% endif %}</td>
       {% endwith %}
-    <td class="action-column">
+    <td class="action-column" rowspan=2>
       {% block action-column %}
       {% if include_edit_link %}
         <a class="icon-edit" rel="popup" href="{% url 'edit' pk=row.record.pk %}"></a>
@@ -44,6 +44,9 @@
       {% endblock %}
    </td>
   </tr>
+  <tr>
+   <td class="description" colspan=3> Maecenas consectetur eget mauris id venenatis. In scelerisque rhoncus ipsum. Phasellus blandit sapien eu diam luctus, dignissim convallis est ultricies.</td>
+  </tr>
 {% endblock table.tbody.row %}

 {% block pagination.cardinality %}

#11

Mis à jour par Paul Marillonnet il y a environ 6 ans

Pour la logique d'affichage des données, après lecture de vos conseils Fred et Benj, je ferai quelque chose comme ça.

Pour l'affichage en lui-même, en particulier pour l'intégration graphique Publik, je doute fort que ça fasse l'affaire.
Je ne sais pas s'il faut imposer une limite de largeur pour la cellule contenant la description.

Quelques trucs encore à régler :
- ce que l'on affiche si le titre du document n'est pas défini.
- pareil pour la date limite de validité.

#12

Mis à jour par Benjamin Dauvergne il y a environ 6 ans

Paul Marillonnet a écrit :

Pour la logique d'affichage des données, après lecture de vos conseils Fred et Benj, je ferai quelque chose comme ça.

Pour l'affichage en lui-même, en particulier pour l'intégration graphique Publik, je doute fort que ça fasse l'affaire.
Je ne sais pas s'il faut imposer une limite de largeur pour la cellule contenant la description.

Quelques trucs encore à régler :
- ce que l'on affiche si le titre du document n'est pas défini.

rien ? le nom du fichier ?

- pareil pour la date limite de validité.

rien.

#14

Mis à jour par Frédéric Péters il y a environ 6 ans

title = tables.Column(verbose_name=_('title').title())

Je sais que c'est ainsi ailleurs mais si on veut une majuscule on met une majsucule, on ne met pas .title() derrière. Le contenu de la colonne titre, en l'absence de titre, ça doit être le nom de fichier.

{% if row.record.description }{{row.record.description}}{ else }{ trans "No description available." }{ endif %}

En absence de description, faut sauter toute la ligne. Et ne pas reprendre le nom de fichier on s'en balance.

#16

Mis à jour par Frédéric Péters il y a environ 6 ans

Quelque chose comme ça ?

Oui.

Modulo ne pas reprendre les classes sur les lignes de description, pour ne pas avoir deux fois la mini-icône de type de fichier, et ne pas reprendre la ligne description du tout, genre :

--- a/fargo/templates/fargo/table.html
+++ b/fargo/templates/fargo/table.html
@@ -48,14 +48,14 @@
       {% endblock %}
    </td>
   </tr>
-  <tr class="{{ forloop.counter|divisibleby:2|yesno:"even,odd" }} {{row.record.css_classes}}">
-   {% if row.record.description %}
-   <td class="description" colspan=3>
+  {% if row.record.description %}
+  <tr class="{{ forloop.counter|divisibleby:2|yesno:"even,odd" }} description-row">
+   <td class="description" colspan="3">
     {{row.record.description}}
     {% if row.record.expiration_date %}({% trans "valid until: " %}{{row.record.expiration_date}}){% endif %}
    </td>
-   {% endif %}
   </tr>
+  {% endif %}
 {% endblock table.tbody.row %}

 {% block pagination.cardinality %}

Et plutôt qu'hardcoder le colspan="3" il faudrait que le nombre de lignes soit calculé, pour qu'on puisse avoir un paramètre pour ne pas avoir la colonne taille, genre.

Dans le ticket lié, aussi, l'info fin de validité est reprise en colonne de première ligne. Je vais faire un autre ticket mais au moins ici ne pas reprendre du tout l'info dans la zone de description, du coup.

#17

Mis à jour par Frédéric Péters il y a environ 6 ans

Dans le ticket lié, aussi, l'info fin de validité est reprise en colonne de première ligne. Je vais faire un autre ticket.

Voilà #22470 pour pouvoir paramétrer les colonnes.

#18

Mis à jour par Paul Marillonnet il y a environ 6 ans

Merci pour le diff, j'ai inclus tes propositions de modification.

Voilà le patch à jour.

#19

Mis à jour par Frédéric Péters il y a environ 6 ans

  • Statut changé de En cours à Résolu (à déployer)

J'ai poussé ça (en mettant juste en plus un class="title" au td avec le titre/nom de fichier)

commit bf3e756d513cd7c772e8bf199e9aa579252618bf
Author: Paul Marillonnet <pmarillonnet@entrouvert.com>
Date:   Mon Jan 29 19:31:44 2018 +0100

    add additional read-only information in main table (#21486)
#20

Mis à jour par Paul Marillonnet il y a environ 6 ans

Peut-être pourra-t-on virer cette ligne :

    {% if row.record.title %}{{ row.record.title }}{% else %}{{ row.record.filename }}{% endif %}

si l'on redéfinit UserDocument.__repr__, de façon similaire à la redéfinition de UserDocument.__unicode__ proposée dans #16825 ?

#21

Mis à jour par Frédéric Péters il y a environ 6 ans

Non __repr__ ça n'est pas destiné à l'affichage. (mais que cette ligne devienne juste {{row.record}}, c'est sans doute bien possible (mais affaire d'un autre ticket).

#22

Mis à jour par Paul Marillonnet il y a environ 6 ans

Oula oui pardon je m'égare. Je vais faire un ticket.

#23

Mis à jour par Paul Marillonnet il y a environ 6 ans

  • Lié à Development #22516: simplification de la logique d'affichage du titre/nom de fichier des documents dans le tableau principal ajouté
#24

Mis à jour par Benjamin Dauvergne il y a environ 6 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF