Projet

Général

Profil

Development #73174

statistiques, permettre de sélectionner plusieurs formulaires

Ajouté par Valentin Deniaud il y a plus d'un an. Mis à jour il y a environ un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
09 janvier 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

C'est le dernier gros truc qui empêche de déprécier bijoe.

Révisions associées

Révision d0a2e4c2 (diff)
Ajouté par Valentin Deniaud il y a environ un an

statistics: drop legacy category filter support (#73174)

Révision 02433859 (diff)
Ajouté par Valentin Deniaud il y a environ un an

statistics: allow filtering by multiple formdefs (#73174)

Historique

#1

Mis à jour par Valentin Deniaud il y a plus d'un an

Obstacle ici, on s'appuie sur la méthode get_period_query https://gitea.entrouvert.org/entrouvert/wcs/src/branch/main/wcs/sql.py#L4641.

Or elle est limitée à un seul formulaire (ou tous) par la ligne suivante :

            if criteria.__class__.__name__ == 'Equal' and criteria.attribute == 'formdef_id':
                # if there's a formdef_id specified, switch to using the
                # specific table so we have access to all fields
                table_name = get_formdef_table_name(formdef_class.get(criteria.value))

Il faudrait réussir à lever cette limite. Le cas d'usage est, par exemple :
  • Formulaire A avec un champ booléen d'identifiant technique '1' et d'identifiant textuel 'bool'
  • Formulaire B avec un champ booléen d'identifiant technique '2' et d'identifiant textuel 'bool'
  • Compter les demandes de A et de B où le champ 'bool' vaut true en une requête

(si on se limite à A (situtation actuelle), ça donne une requête du type select count(*) from formdata_42_a where f1 = true (et formdata_43_b/f2 pour B))

Je veux bien l'avis de quelqu'un à l'aise avec le stockage des données dans wcs sur la question et éventuellement des pistes pour avancer.

#2

Mis à jour par Frédéric Péters il y a plus d'un an

On n'a pas de quoi faire une récupération d'info sur des champs via une requête unique.

Le bout de piste que j'ai imaginé à un moment ce serait l'ajout d'une colonne jsonb dans laquelle les données marquées "afficher dans les stats" seraient dupliquées, avec en clés les varnames; cette colonne jsonb serait alors reprise dans la table globale wcs_all_forms.

#3

Mis à jour par Valentin Deniaud il y a plus d'un an

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

Le bout de piste que j'ai imaginé à un moment ce serait l'ajout d'une colonne jsonb dans laquelle les données marquées "afficher dans les stats" seraient dupliquées, avec en clés les varnames; cette colonne jsonb serait alors reprise dans la table globale wcs_all_forms.

Je me lance là dedans ou cette piste est à mûrir davantage ? -> gros morceau traité dans #73770

#4

Mis à jour par Valentin Deniaud il y a plus d'un an

  • Assigné à mis à Valentin Deniaud
#5

Mis à jour par Valentin Deniaud il y a environ un an

Éléments de plan, lors d'une stat portant sur plusieurs formulaires :
  • Les sous-filtres à afficher doivent être seulement les champs communs aux formulaires.
    • C'est plus simple techniquement mais la raison n'est pas technique : soit F1 et F2 des formulaires avec un champ A en commun. Si on va cocher « Statistiques » dans les options d'affichage de A sur F1, et que ça le fait apparaître dans les statistiques, alors elles apparaîtront « fausses » car il n'y aura pas les données de A pour F2. Donc ne pas afficher A à ce stade empêche les erreurs de configuration.
  • En revanche les options pour chaque sous-filtres peuvent être agrégées sans risque.
    • C'est à dire que si un champ liste a pour options ['Paris', 'Marseille'] sur F1 et ['Toulouse', 'Paris'] sur F2, on doit permettre de filtrer sur toutes les villes et pas juste 'Paris'.
#6

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de Nouveau à Solution proposée

Valentin Deniaud (vdeniaud) a ouvert une pull request sur Gitea concernant cette demande :

#7

Mis à jour par Robot Gitea il y a environ un an

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

Frédéric Péters (fpeters) a relu et demandé des modifications sur une pull request sur Gitea concernant cette demande :

#8

Mis à jour par Valentin Deniaud il y a environ un an

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

Mis à jour par Robot Gitea il y a environ un an

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

Frédéric Péters (fpeters) a approuvé une pull request sur Gitea concernant cette demande :

#10

Mis à jour par Robot Gitea il y a environ un an

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

Frédéric Péters (fpeters) a mergé une pull request sur Gitea concernant cette demande :

#11

Mis à jour par Transition automatique il y a environ un an

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

Mis à jour par Transition automatique il y a 12 mois

Automatic expiration

Formats disponibles : Atom PDF