Projet

Général

Profil

Development #38009

Rapport de cellules invalides dans Combo

Ajouté par Stéphane Laget il y a plus de 4 ans. Mis à jour il y a environ 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
27 novembre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

A l'instar de ce qui est fait pour les sources données wcs, mais de manière transverse, avoir une page rapport "cellules invalides", qui listerait ces cellules, les cellules qui pointent vers une catégorie n'existant plus, une visu Bi-joe plus dispo, etc.

Dans le menu kebab de l'accueil, une entrée "Rapport d'anomalies" qui amène ainsi sur une liste de liens page/cellule (ex: "page assocations, démarches d'une catégorie"); sans détails ici parce qu'en fait on gagnera à marquer l'erreur directement sur la cellule (cf capture attachée), où il sera possible de la corriger (ou de supprimer la cellule).

Pour la récolte des erreurs, ça se fait donc de manière asynchrone, et le modèle "CellBase" gagnr un attribut invalid_reason_code (string) et une méthode get_invalid_reason() qui traduit le code dans le message intelligible repris dnas l'interface.

Pour un certain nombre de cellules il y a déjà un rendu asynchrone où on peut découvrir l'erreur et enregistrer l'erreur (ex: une cellule "démarches d'une catégorie" qui reçoit une 404 sur l'appel à w.c.s.); pour d'autres (ex les liens) il y aurait à ajouter ça (dans le job "hourly").

Il y a sans doute utilité à aussi ajouter au modèle un invalid_timestamp, qui permettrait par exemple après un certain temps de ne même plus tenter le rendu en front. (en retournant False dans is_visible).


Fichiers

categorie-invalide.png (6,42 ko) categorie-invalide.png Frédéric Péters, 04 février 2020 16:15
0005-cells-invalid-cell-report-38009.patch (6,96 ko) 0005-cells-invalid-cell-report-38009.patch Lauréline Guérin, 21 février 2020 11:14
0006-cells-data-cells-invalid-report-38009.patch (27,9 ko) 0006-cells-data-cells-invalid-report-38009.patch Lauréline Guérin, 21 février 2020 11:14
0004-cells-w.c.s.-cells-invalid-report-38009.patch (22,7 ko) 0004-cells-w.c.s.-cells-invalid-report-38009.patch Lauréline Guérin, 21 février 2020 11:14
0003-cells-if-a-cell-is-invalid-display-it-38009.patch (7,21 ko) 0003-cells-if-a-cell-is-invalid-display-it-38009.patch Lauréline Guérin, 21 février 2020 11:14
0002-cells-a-cell-is-not-visible-after-2-days-of-invalidi.patch (1,96 ko) 0002-cells-a-cell-is-not-visible-after-2-days-of-invalidi.patch Lauréline Guérin, 21 février 2020 11:14
0001-cells-add-invalid-fields-38009.patch (27,3 ko) 0001-cells-add-invalid-fields-38009.patch Lauréline Guérin, 21 février 2020 11:14
0005-cells-invalid-cell-report-38009.patch (7,13 ko) 0005-cells-invalid-cell-report-38009.patch Lauréline Guérin, 02 mars 2020 16:08
0006-cells-data-cells-invalid-report-38009.patch (30,8 ko) 0006-cells-data-cells-invalid-report-38009.patch Lauréline Guérin, 02 mars 2020 16:08
0003-cells-if-a-cell-is-invalid-display-it-38009.patch (10,1 ko) 0003-cells-if-a-cell-is-invalid-display-it-38009.patch Lauréline Guérin, 02 mars 2020 16:08
0004-cells-w.c.s.-cells-invalid-report-38009.patch (23,7 ko) 0004-cells-w.c.s.-cells-invalid-report-38009.patch Lauréline Guérin, 02 mars 2020 16:08
0002-cells-a-cell-is-not-visible-after-2-days-of-invalidi.patch (2,6 ko) 0002-cells-a-cell-is-not-visible-after-2-days-of-invalidi.patch Lauréline Guérin, 02 mars 2020 16:08
0001-cells-add-invalid-fields-38009.patch (3,49 ko) 0001-cells-add-invalid-fields-38009.patch Lauréline Guérin, 02 mars 2020 16:08
0006-cells-data-cells-invalid-report-38009.patch (32 ko) 0006-cells-data-cells-invalid-report-38009.patch Lauréline Guérin, 02 mars 2020 18:22
0006-cells-data-cells-invalid-report-38009.patch (32,1 ko) 0006-cells-data-cells-invalid-report-38009.patch Lauréline Guérin, 03 mars 2020 14:49
0004-cells-w.c.s.-cells-invalid-report-38009.patch (23,7 ko) 0004-cells-w.c.s.-cells-invalid-report-38009.patch Lauréline Guérin, 03 mars 2020 14:49
0003-cells-if-a-cell-is-invalid-display-it-38009.patch (10,4 ko) 0003-cells-if-a-cell-is-invalid-display-it-38009.patch Lauréline Guérin, 03 mars 2020 14:49
0003-cells-if-a-cell-is-invalid-display-it-38009.patch (10,5 ko) 0003-cells-if-a-cell-is-invalid-display-it-38009.patch Lauréline Guérin, 03 mars 2020 15:25
0006-cells-data-cells-invalid-report-38009.patch (32 ko) 0006-cells-data-cells-invalid-report-38009.patch Lauréline Guérin, 03 mars 2020 15:25

Révisions associées

Révision 95786492 (diff)
Ajouté par Lauréline Guérin il y a environ 4 ans

cells: add invalid fields (#38009)

Révision 39234986 (diff)
Ajouté par Lauréline Guérin il y a environ 4 ans

cells: a cell is not visible after 2 days of invalidity (#38009)

Révision 6fa8bf88 (diff)
Ajouté par Lauréline Guérin il y a environ 4 ans

cells: if a cell is invalid, display it (#38009)

Révision 7046049a (diff)
Ajouté par Lauréline Guérin il y a environ 4 ans

cells: w.c.s. cells invalid report (#38009)

Révision 7299d1d8 (diff)
Ajouté par Lauréline Guérin il y a environ 4 ans

cells: invalid cell report (#38009)

Révision cc5aaa93 (diff)
Ajouté par Lauréline Guérin il y a environ 4 ans

cells: data cells invalid report (#38009)

Historique

#1

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

#2

Mis à jour par Lauréline Guérin il y a environ 4 ans

  • Assigné à mis à Lauréline Guérin
  • Priorité changé de Normal à Bas
#3

Mis à jour par Lauréline Guérin il y a environ 4 ans

  • Statut changé de Nouveau à En cours
#4

Mis à jour par Lauréline Guérin il y a environ 4 ans

  • Priorité changé de Bas à Normal
#5

Mis à jour par Lauréline Guérin il y a environ 4 ans

je pose les patchs ici, pour avoir des retours, mais le boulot n'est pas forcément terminé.
J'ai traité les cellules w.c.s. et les cellules de type lien, feed, json du module data. On peut soit s'arrêter là, et créer d'autres tickets pour passer sur les autres cellules, soit je continue dans ce ticket.

#6

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

J'écrivais "modèle "CellBase" gagne un attribut invalid_reason_code" et la branche suit ça mais à voir les migrations j'en viens à me demander si ça ne serait pas mieux d'avoir un modèle sur le côté, genre ValidityInfo, avec GenericForeignKey dedans.

Rapidement, je vois :

  • Pro : pas de migration ajoutée partout, pas d'attributs à éviter dans get_default_form_class, éventuellement à zapper aussi des snapshots et de l'export/import
  • Con : ça ajouterait le coût de la jointure pour que le is_visible() ne fasse pas de requête supplémentaire.

Tu en penses quoi ?

#7

Mis à jour par Lauréline Guérin il y a environ 4 ans

Apparemment, faire du prefetch avec des GenericForeignKey ça se fait; je vais donc essayer :)

#8

Mis à jour par Lauréline Guérin il y a environ 4 ans

  • Statut changé de Solution proposée à En cours
#11

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

En l'exécutant dans mon combo, qui est bien chargé en cellules invalides,

  File "/home/fred/src/eo/combo/combo/apps/wcs/models.py", line 106, in save
    validity_info = populate_cache()
  File "/home/fred/src/eo/combo/combo/apps/wcs/models.py", line 90, in populate_cache
    for form in forms_response_json:
TypeError: 'NoneType' object is not iterable

-                for form in forms_response_json:
+                for form in forms_response_json or []:

Je serais aussi pour poser un timeout sur le requests.get(self.get_url()).

Et pour la présentation, je remplacerais mon /!\ par l'icône adéquate :

-div.cell h3 span.invalid,
-ul.list-of-links span.invalid {
-       color: red;
+.invalid {
+       color: #df2240;
+}
+
+.invalid::before {
+       font-family: FontAwesome;
+       content: "\f071";  /* exclamation-triangle */
+       padding-right: 0.5em;
 }
#12

Mis à jour par Lauréline Guérin il y a environ 4 ans

-                for form in forms_response_json:
+                for form in forms_response_json or []:

=> ok

Je serais aussi pour poser un timeout sur le requests.get(self.get_url()).

=> ajouté

Et pour la présentation, je remplacerais mon /!\ par l'icône adéquate :

J'ai fait un peu différemment pour éviter d'afficher l'icône si le span .invalid est vide

#13

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

J'ai fait un peu différemment pour éviter d'afficher l'icône si le span .invalid est vide

Je serais plutôt pour ne pas inclure le <span class="invalid"> dans ce cas. (je trouve assez moche les <span> vides juste pour le style).

Aussi red → #df2240 c'était pour avoir un rouge offrant un contraste jugé ok côté accessibilité (>= 4.5).

#14

Mis à jour par Lauréline Guérin il y a environ 4 ans

les span invalid vides, j'en ai besoin pour pouvoir le remplir au post d'un formulaire en ajax (exemple: édition d'une cellule lien, ou d'une cellule w.c.s.)

#15

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

zut :/ tant pis, juste mon rouge et je pense ça sera bon.

#17

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

  • Statut changé de Solution proposée à Solution validée

Je trouve ça très sympa, peut-être un dernier truc, je trierais les cellules invalides en fonction de (page.order, cell.order).

#18

Mis à jour par Lauréline Guérin il y a environ 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit cc5aaa93e49c1b9b2980aee98b0ee14c1c60c1b7
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Thu Feb 20 14:39:46 2020 +0100

    cells: data cells invalid report (#38009)

commit 7299d1d835b02b8c7bfa35512ca5c81c2eb7cf10
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Tue Feb 18 13:55:18 2020 +0100

    cells: invalid cell report (#38009)

commit 7046049aa0af0ea8e14c6d4bf4549cea56694e3b
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Mon Feb 17 16:15:21 2020 +0100

    cells: w.c.s. cells invalid report (#38009)

commit 6fa8bf883ab5bb90280d7ee0f2036638f4f148be
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Mon Feb 17 14:09:56 2020 +0100

    cells: if a cell is invalid, display it (#38009)

commit 39234986fe6042e04b83c7eae10502930318d6a5
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Mon Feb 17 10:08:24 2020 +0100

    cells: a cell is not visible after 2 days of invalidity (#38009)

commit 957864921bb44aa5fe41766a52d2b815297df96b
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Mon Feb 17 10:07:57 2020 +0100

    cells: add invalid fields (#38009)

J'ai trié les cellules invalides selon page.order, page.pk, cell.order (j'ai ajouté cell.pk au cas où des pages aient le même order)

#19

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

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF