Projet

Général

Profil

Development #51680

dataviz, unsupported operand type(s) for -: 'int' and 'list'

Ajouté par Frédéric Péters il y a environ 3 ans. Mis à jour il y a environ 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
04 mars 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

File "/usr/lib/python3/dist-packages/combo/apps/dataviz/views.py" in dataviz_graph
  68.         svg = chart.render()

File "/usr/lib/python3/dist-packages/pygal/graph/public.py" in render
  52.         self.setup(**kwargs)

File "/usr/lib/python3/dist-packages/pygal/graph/base.py" in setup
  217.         self._draw()

File "/usr/lib/python3/dist-packages/pygal/graph/graph.py" in _draw
  926.         self._compute_y_labels()

File "/usr/lib/python3/dist-packages/pygal/graph/graph.py" in _compute_y_labels
  853.             self.order_min, self.min_scale, self.max_scale

File "/usr/lib/python3/dist-packages/pygal/util.py" in compute_scale
  154.     if max_ - min_ == 0:

Exception Type: TypeError at /api/dataviz/graph/3/
Exception Value: unsupported operand type(s) for -: 'int' and 'list'

Fichiers

Révisions associées

Révision 7cf5e179 (diff)
Ajouté par Valentin Deniaud il y a environ 3 ans

dataviz: do not accept nested lists as valid data (#51680)

Historique

#2

Mis à jour par Valentin Deniaud il y a environ 3 ans

  • Assigné à mis à Valentin Deniaud
#3

Mis à jour par Valentin Deniaud il y a environ 3 ans

  • Assigné à Valentin Deniaud supprimé

Cellule supprimée, difficile de savoir comment reproduire sans pouvoir remonter à la visualisation bijoe :/

#4

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

Je l'ai retrouvée dans l'historique, elle pointe vers https://statistiques.toodego.com/visualization/7/json/ (qui est un tableau tout vide, pièce jointe).

#5

Mis à jour par Valentin Deniaud il y a environ 3 ans

  • Assigné à mis à Valentin Deniaud
#6

Mis à jour par Valentin Deniaud il y a environ 3 ans

Merci.

Le bug ne se produit que si cell.chart_type == 'line', mais en fait le problème c'est qu'on donne n'importe quoi comme valeurs à pygal. On est censé refuser ces jeux de donnée en amont, ici

383         if loop_labels:
384             if x_labels and y_labels:
385                 # no support for three dimensions
386                 raise UnsupportedDataSet()

Et en effet dans la visualisation bijoe, on a bien {'loop': 'commune', 'drilldown_x': 'formdef', 'drilldown_y': 'receipt_time__month'}. Sauf qu'il n'y a pas de formulaire, du coup le x_labels est vide, du coup on ne détecte pas qu'il y a trois dimensions.

Patch pas folichon.

#7

Mis à jour par Valentin Deniaud il y a environ 3 ans

En fait bijoe n'envoie pas x_labels/y_labels si il n'y a pas de regroupement sélectionné. Donc on peut plutôt se servir de ça pour détecter le cas présent, ça fait du code plus joli.

#8

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

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

Mis à jour par Valentin Deniaud il y a environ 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 68f2c987d0dea96f4bdfafa1c4f952c91a2af429
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Mon Mar 8 17:18:01 2021 +0100

    dataviz: do not accept nested lists as valid data (#51680)
#10

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

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

Formats disponibles : Atom PDF