Projet

Général

Profil

Development #14260

api de recherche "globale"

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

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

L'API actuelle permet de chercher/lister selon un formdata donné, pas de manière globale à tous les formdata.


Fichiers

Révisions associées

Révision 5e594d4c (diff)
Ajouté par Frédéric Péters il y a plus de 6 ans

api: add data and geojson views covering all formdatas (#14260)

Historique

#1

Mis à jour par Frédéric Péters il y a presque 7 ans

Liste "globale" des formdata sous /api/forms/, geojson sous /api/forms/geojson.

#2

Mis à jour par Benjamin Dauvergne il y a presque 7 ans

1. remarque plus de forme qu'autre chose j'aurai bien vu la gestion de limit/offset/order_by partagée avec ManagementDirectory.listing(), je pense qu'il y a des choses factorisables comme avec management_directory.get_global_listing_criterias() qui est ici réutilisé mais il est vrai que le code est touffu

2.

        user_roles = [logged_users_role().id] + (
                get_request().user.roles if get_request().user else [])
est-ce que le cas ou get_request().user est None est bien identifié ? Si oui je verrai bien un commentaire, et si ce cas n'est pas introduit par ce patch peut-être faut-il séparer ce bout dans son propre commit.

3.

                d['form_receipt_datetime'] = make_datetime(self.receipt_time)
ce bout devrait aller dans son propre commit je pense à moins que le problème que cela résout soit introduit par celui-ci.

4. Il manque la doc pour ces nouveaux endpoints si l'API se documente toujours dans les fichiers mallard de w.c.s.

Si j'aurai raté un point du code où tu aurais aimé des commentaires, n'hésite pas à le signaler.

#3

Mis à jour par Frédéric Péters il y a presque 7 ans

1. remarque plus de forme qu'autre chose j'aurai bien vu la gestion de limit/offset/order_by partagée avec ManagementDirectory.listing(), je pense qu'il y a des choses factorisables comme avec management_directory.get_global_listing_criterias() qui est ici réutilisé mais il est vrai que le code est touffu.

Je vais faire un autre truc pour factoriser ça, également dans les vues par formdef; ticket #16529 créé.

2. est-ce que le cas ou get_request().user est None est bien identifié ? Si oui je verrai bien un commentaire, et si ce cas n'est pas introduit par ce patch peut-être faut-il séparer ce bout dans son propre commit.

C'était un cas d'erreur lors du développement mais ça a été corrigé et ça ne doit plus arriver et ce bout de commit n'aurait pas dû être dans le patch, retiré.

3. ce bout devrait aller dans son propre commit je pense à moins que le problème que cela résout soit introduit par celui-ci.

En fait le receipt_time dans les AnyFormData est déjà de type datetime.datetime alors que pour les formdata simples, c'est encore time.struct_time. Comme la direction est d'aller vers datetime (même si c'est suspendu dans #9876), ça me va bien de le laisser ici. J'y ajoute ce commentaire :

                # always get receipt time as a datetime object, this handles
                # both normal formdata (where receipt_time is a time.struct_time)
                # and sql.AnyFormData where it's already a datetime object.

4. Il manque la doc pour ces nouveaux endpoints si l'API se documente toujours dans les fichiers mallard de w.c.s.

Yep ça se fait toujours ici, c'est ajouté. (mais cette page api-get.page devient trop longue, faudra bientôt réfléchir à comment restructurer).

#4

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

Ack

#5

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

  • Statut changé de En cours à Résolu (à déployer)
commit 5e594d4cb80633109a0ee3c691ee409d02aa221a
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Sun May 28 00:17:55 2017 +0200

    api: add data and geojson views covering all formdatas (#14260)
#6

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

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

Formats disponibles : Atom PDF