Projet

Général

Profil

Development #48078

API datetimes : permettre de restreindre les résultats sur des bornes min/max de dates

Ajouté par Emmanuel Cazenave il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
28 octobre 2020
Echéance:
04 décembre 2020
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Des paramétrés min_datetime max_datetime à accepter dans l'URL, pour filtrage.


Fichiers


Demandes liées

Lié à Chrono - Bug #48726: Test qui ne passe que le lundi, le mardi, le samedi et le dimancheFermé20 novembre 2020

Actions

Révisions associées

Révision 6d0e8a57 (diff)
Ajouté par Emmanuel Cazenave il y a plus de 3 ans

agendas: add date filter params on datetimes api (#48078)

Historique

#1

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

  • Description mis à jour (diff)
#2

Mis à jour par Pierre Cros il y a plus de 3 ans

  • Echéance mis à 04 décembre 2020
#3

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

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Emmanuel Cazenave
#4

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

Par dessus #48185.

Contrairement à ce que j'écrivais dans la description, des dates attendues en paramètre et non des datetime, date_start et date_end, comme sur les évènements, avec date_end borne supérieure exclue, comme il se doit.

#5

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

J'ai pas tout lu mais get_min/max_datetime sont devenus pas mal alambiqués, est-ce que ça ne serait pas plus clair comme ça :

def get_min_datetime(agenda, start_datetime=None):
    if agenda.minimal_booking_delay is None:
        return start_datetime
    else:
        # constrain start_datetime by agenda.minimal_booking_delay
        min_datetime = now() + datetime.timedelta(days=agenda.minimal_booking_delay)
        min_datetime = min_datetime.replace(hour=0, minute=0, second=0, microsecond=0)
        if start_datetime is None:
            return min_datetime
        else:
            return max(min_datetime, start_datetime)

#6

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

Benjamin Dauvergne a écrit :

J'ai pas tout lu mais get_min/max_datetime sont devenus pas mal alambiqués, est-ce que comme ça ne serait pas plus clair comme ça :
[...]

Bon je continue quand même, ici faire une 400 propre avec APIError plutôt qu'une trace si la date est mal formatée :

+        start_datetime = None
+        if 'date_start' in request.GET:
+            start_datetime = make_aware(
+                datetime.datetime.combine(parse_date(request.GET['date_start']), datetime.time(0, 0))
+            )
+
+        end_datetime = None
+        if 'date_end' in request.GET:
+            end_datetime = make_aware(
+                datetime.datetime.combine(parse_date(request.GET['date_end']), datetime.time(0, 0))
+            )

Rien d'autre.

#7

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

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

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

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

J'ai tenu compte.

commit 6d0e8a57ad51f22d41784f4014035c51e613a855
Author: Emmanuel Cazenave <ecazenave@entrouvert.com>
Date:   Mon Nov 2 13:55:48 2020 +0100

    agendas: add date filter params on datetimes api (#48078)
#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
#10

Mis à jour par Nicolas Roche il y a plus de 3 ans

  • Lié à Bug #48726: Test qui ne passe que le lundi, le mardi, le samedi et le dimanche ajouté

Formats disponibles : Atom PDF