Projet

Général

Profil

Development #35703

dans la vue traitement alimenter les filtres "liste" avec les options effectivement utilisées

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
30 août 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Aujourd'hui c'est fait en tirant les options présentées par la source de données mais celle-ci peut évoluer dans le temps (par exemple une source chrono avec des événements qui ne sont plus disponibles).

L'idée serait (possible en SQL, pas en Pickle) de plutôt moissonner les choix qui se trouvent pour de vrai dans les demandes. (attention au cas des choix multiples).


Fichiers


Demandes liées

Lié à Publik - Development #37534: Améliorer les champs listes utilisés comme critère de rechercheFermé07 novembre 2019

Actions

Révisions associées

Révision 7955c298 (diff)
Ajouté par Frédéric Péters il y a plus de 4 ans

backoffice: use actual data for item(s) field filters (#35703)

Historique

#1

Mis à jour par Emmanuel Cazenave il y a plus de 4 ans

  • Lié à Development #37534: Améliorer les champs listes utilisés comme critère de recherche ajouté
#2

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

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Frédéric Péters
#3

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

Au cas où, la modif qui semble sortie de nulle part dans test_backoffice_csv, c'est parce qu'un filtre est appliqué et le filtre "filter-2-value" disparait alors, dans un navigateur il réapparaitrait (via js) après le changement de la valeur de filter-start-value mais pour le test, c'est plus facile de juste le reposer explicitement.

#4

Mis à jour par Thomas Noël il y a plus de 4 ans

Dans wcs/backoffice/management.py typo sur :

if selected_filter == 'waniting':   # au lieu de waiting

À toi de voir si tu peux/veux ajouter un test qui aurait remonté cette typo.

Rien d'autre à dire, ça me parait pas mal. Peut-être qu'on pourrait mettre l'amélioration de FormData::__getattr__ dans un premier commit à part, mais bof (faudrait un test qui le couvre, toussa). Ah oui aussi le select_distinct, peut-être le coller juste après la définition de select, ce qui te permettra de discrétement retirer la double ligne vide avant le def get_sql_dict_from_data qui suit.

Bon vraiment rien d'important en dehors de la typo, en fait.

#5

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

À toi de voir si tu peux/veux ajouter un test qui aurait remonté cette typo.

J'ai étendu les tests, ça n'en crée pas un qui fasse la différence de situation mais ça a permis d'entrer dans cette branche et de planter sur user qui n'était pas défini. →

-            if selected_filter == 'waniting':
+            if selected_filter == 'waiting':
+                user = get_request().user

+ modifié la position de méthode select_distinct().

#6

Mis à jour par Thomas Noël il y a plus de 4 ans

Je viens voir un truc, sur la partie :

        if selected_filter == 'all':
            criterias.append(NotEqual('status', 'draft'))
        elif selected_filter in ('waiting', 'pending'):
            statuses = ['wf-%s' % x.id for x in self.formdef.workflow.get_not_endpoint_status()]
            criterias.append(Contains('status', statuses))
            if selected_filter == 'waiting':
                user = get_request().user
                user_roles = [logged_users_role().id] + user.get_roles()
                criterias.append(Intersects('actions_roles_array', user_roles))
        elif selected_filter == 'done':
            statuses = ['wf-%s' % x.id for x in self.formdef.workflow.get_endpoint_status()]
            criterias.append(Contains('status', statuses))

en comparant avec ce qui est fait dans "def stats" actuellement (http://git.entrouvert.org/wcs.git/tree/wcs/backoffice/management.py#n1910), il manque la gestion du cas où selected_filter est vide, mais surtout le moment où c'est un statut spécifique... non ?

#7

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

Le cas vide ne doit pas se présenter, selected_filter est tiré de get_filter_from_query() (et par des manipulations d'UI il n'y aura jamais filter= vide dans l'URL) (mais si ça arrive le tableau sera vide). Pour le cas d'un statut précis pointé, yep, et voilà corrigé. (avec un test étendu pour ~montrer ça).

#8

Mis à jour par Thomas Noël il y a plus de 4 ans

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

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit 7955c2980a28779bf20785d05b55b8bc40524701
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Mon Dec 9 17:03:09 2019 +0100

    backoffice: use actual data for item(s) field filters (#35703)
#10

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

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

Formats disponibles : Atom PDF