Projet

Général

Profil

Development #49248

dataviz: permettre un filtrage temporel avec la nouvelle api

Ajouté par Valentin Deniaud il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
08 décembre 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

On aimerait pouvoir restreindre l'affichage des statistiques entre deux bornes temporelles.

Ces filtres « date de la demande » existent dans bijoe, ça passe par deux champs date.
L'API exposée par authentic permet de spécifier ?start et ?end à cette fin là aussi.

Comment ça doit se traduire ici ? Deux champs date (ou datetime ?), avec derrière les paramètres « start » et « end » hardcodés ?


Fichiers

Révisions associées

Révision c492cf4d (diff)
Ajouté par Valentin Deniaud il y a plus de 3 ans

dataviz: add time range fields (#49248)

Historique

#1

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

Le plan total pour moi commencerait avec la possibilité dans le paramétage de la cellule d'un graphe pour lequel on sait qu'il y a filtrage temporel possible, i.e. ça pourrait être dans la cellule avoir

Filtrage (temporel)
 ( ) année en cours
 (o) année précédente
 ( ) mois en cours
 ( ) mois précédent
 ( ) plage libre
     de <input date> à <input date>

Et ça figerait ainsi l'info; je pense que ce ticket s'arrêterait ici.

Avec le temps et des évolutions à l'API combo pourrait être informé qu'un filtre est possible sur la méthode de connexion, et ça ajouterait un champ

Filtrage (méthode de connexion)
 [x] Mot de passe
 [x] FranceConnect
 [ ] SAML

pour d'autres infos on pourrait imaginer qu'un filtre soit sur un nombre, (exemple ici totalement inutile)

Filtrage (nombre de rôles de l'usager)
 [ ..5 ]

et ainsi de suite, l'API évolue pour exposer un type de filtrage possible, la cellule évolue pour en assurer l'exploitation.

~~

Autre suite, on aurait une cellule "paramètres des graphes", qui agrégerait les filtres connus des différentes cellules configurées dans la page, et dans laquelle l'admin pourrait configurer les filtres à exposer en front; i.e.

Filtres à exposer en front
 [x] Temporel, année en cours
 [x] Temporel, année précédente
 [ ] Temporel, mois en cours
 [ ] Temporel, mois précédent
 [ ] Temporel, plage libre
 [ ] Méthode de connexion, mot de passe
 [ ] Méthode de connexion, FranceConnect

(et peut-être même une liste réordonnable, plutôt que des cases à cocher).

(voilà, tout cela n'est évidemment pas figé mais représente ce que j'imagine aujourd'hui)

#2

Mis à jour par Valentin Deniaud il y a plus de 3 ans

Frédéric Péters a écrit :

Et ça figerait ainsi l'info; je pense que ce ticket s'arrêterait ici.

Tout à fait ce dont j'avais besoin effectivement, merci.

Avec le temps et des évolutions à l'API combo pourrait être informé qu'un filtre est possible sur la méthode de connexion, et ça ajouterait un champ

C'est fait, c'est #49175 (et c'était à faire maintenant parce qu'authentic demande de spécifier un regroupement des données par jour/mois/année, décision de faire comme ça prise là #48865#note-4).

#3

Mis à jour par Valentin Deniaud il y a plus de 3 ans

La base, plus un bout de js pour afficher/cacher les champs « plage libre », mais il manque la partie pour que ce soit joli :

 ( ) plage libre
     de <input date> à <input date>

À vrai dire je ne sais pas trop comment avoir ces deux champs sur une ligne avec leurs labels : introduire un widget custom et son template ? Des classes sur les champs concernés et une bonne couche de CSS ? Et/ou un rendu manuel du formulaire à la place de form.as_p ? Je vais investiguer mais je demande au cas où ce genre de chose existe ailleurs.

#5

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

Les champs From/To apparaissent pour des statistiques venant de bijoe, mais ça n'y a pas d'effet.

J'ai voulu juste mettre From en me disant que ça filtrerait de cette date à aujourd'hui mais ça n'a pas marché :

  File "/home/fred/src/eo/combo/combo/apps/dataviz/views.py", line 43, in dataviz_graph
    chart = cell.get_chart(
  File "/home/fred/src/eo/combo/combo/apps/dataviz/models.py", line 240, in get_chart
    response = requests.get(
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 555, in get
    return self.request('GET', url, **kwargs)
  File "/home/fred/src/eo/combo/combo/utils/requests_wrapper.py", line 121, in request
    params = urlencode(kwargs.get('params', {}))
  File "/home/fred/src/eo/venv3-2.2-39/lib/python3.9/site-packages/django/utils/http.py", line 95, in urlencode
    raise TypeError(
TypeError: Cannot encode None in a query string. Did you mean to pass an empty string or omit the value?
#6

Mis à jour par Valentin Deniaud il y a plus de 3 ans

Frédéric Péters a écrit :

Les champs From/To apparaissent pour des statistiques venant de bijoe, mais ça n'y a pas d'effet.

En effet, corrigé.

J'ai voulu juste mettre From en me disant que ça filtrerait de cette date à aujourd'hui mais ça n'a pas marché :

Yep erreur dj2, corrigé aussi.

#7

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

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

Ok go.

#8

Mis à jour par Valentin Deniaud il y a plus de 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit c492cf4d02e6ee8f6d505915fb5bd64242d3beb1
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Mon Dec 14 15:45:38 2020 +0100

    dataviz: add time range fields (#49248)
#9

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

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

Formats disponibles : Atom PDF