Development #51680
dataviz, unsupported operand type(s) for -: 'int' and 'list'
0%
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
Historique
Mis à jour par Valentin Deniaud il y a environ 3 ans
- Assigné à
Valentin Deniaudsupprimé
Cellule supprimée, difficile de savoir comment reproduire sans pouvoir remonter à la visualisation bijoe :/
Mis à jour par Frédéric Péters il y a environ 3 ans
- Fichier stats.json stats.json ajouté
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).
Mis à jour par Valentin Deniaud il y a environ 3 ans
- Fichier 0001-dataviz-do-not-accept-nested-lists-as-valid-data-516.patch 0001-dataviz-do-not-accept-nested-lists-as-valid-data-516.patch ajouté
- Tracker changé de Bug à Development
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
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.
Mis à jour par Valentin Deniaud il y a environ 3 ans
- Fichier 0001-dataviz-do-not-accept-nested-lists-as-valid-data-516.patch 0001-dataviz-do-not-accept-nested-lists-as-valid-data-516.patch ajouté
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.
Mis à jour par Frédéric Péters il y a environ 3 ans
- Statut changé de Solution proposée à Solution validée
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)
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
dataviz: do not accept nested lists as valid data (#51680)