Project

General

Profile

Bug #21486

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

Added by Paul Marillonnet over 1 year ago. Updated over 1 year ago.

Status:
Fermé
Priority:
Normal
Target version:
Start date:
29 Jan 2018
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

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.

0001-WIP-add-additional-read-only-information-in-main-tab.patch View (1.2 KB) Paul Marillonnet, 29 Jan 2018 07:33 PM

Screenshot-2018-1-29 Strasbourg eu - TEST - Porte-documents.png View (11 KB) Frédéric Péters, 29 Jan 2018 07:59 PM

0001-WIP-add-additional-read-only-information-in-main-tab.patch View (2.55 KB) Paul Marillonnet, 07 Mar 2018 05:55 PM

0001-WIP-add-additional-read-only-information-in-main-tab.patch View (2.68 KB) Paul Marillonnet, 07 Mar 2018 06:21 PM

0001-WIP-add-additional-read-only-information-in-main-tab.patch View (3.23 KB) Paul Marillonnet, 09 Mar 2018 12:46 PM

0001-add-additional-read-only-information-in-main-table-2.patch View (3.12 KB) Paul Marillonnet, 13 Mar 2018 02:42 PM

22069

Related issues

Related to Fargo - Development #22516: simplification de la logique d'affichage du titre/nom de fichier des documents dans le tableau principal Fermé 14 Mar 2018

Associated revisions

Revision bf3e756d (diff)
Added by Paul Marillonnet over 1 year ago

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

History

#1 Updated by Paul Marillonnet over 1 year ago

  • Assignee set to Paul Marillonnet

#2 Updated by Paul Marillonnet over 1 year ago

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

#3 Updated by Paul Marillonnet over 1 year ago

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

#4 Updated by Frédéric Péters over 1 year ago

22069

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 Updated by Paul Marillonnet over 1 year ago

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 Updated by Benjamin Dauvergne over 1 year ago

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 Updated by Benjamin Dauvergne over 1 year ago

  • Target version set to 0.23

#9 Updated by Paul Marillonnet over 1 year ago

  • Status changed from Nouveau to En cours

#10 Updated by Paul Marillonnet over 1 year ago

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 Updated by Paul Marillonnet over 1 year ago

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 Updated by Benjamin Dauvergne over 1 year ago

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 Updated by Frédéric Péters over 1 year ago

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 Updated by Frédéric Péters over 1 year ago

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 Updated by Frédéric Péters over 1 year ago

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 Updated by Paul Marillonnet over 1 year ago

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

Voilà le patch à jour.

#19 Updated by Frédéric Péters over 1 year ago

  • Status changed from En cours to 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 Updated by Paul Marillonnet over 1 year ago

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 Updated by Frédéric Péters over 1 year ago

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 Updated by Paul Marillonnet over 1 year ago

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

#23 Updated by Paul Marillonnet over 1 year ago

  • Related to Development #22516: simplification de la logique d'affichage du titre/nom de fichier des documents dans le tableau principal added

#24 Updated by Benjamin Dauvergne over 1 year ago

  • Status changed from Résolu (à déployer) to Fermé

Also available in: Atom PDF