Projet

Général

Profil

Bug #42332

Erreur dans le filtrage de rendez-vous bookés (dans get_all_slots())

Ajouté par Benjamin Dauvergne il y a presque 4 ans. Mis à jour il y a presque 4 ans.

Statut:
Rejeté
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Version cible:
-
Début:
30 avril 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

Je pense qu'il y a actuellement une erreur arithmétique dans le filtrage des rendez-vous déjà bookés :

            agenda.event_set.filter(
                agenda=agenda,
                start_datetime__gte=used_min_datetime,
                start_datetime__lte=used_max_datetime + meeting_duration_td
            )

logiquement la condition d'un chevauchement de taille non nulle avec [min_datetime,max_datetime] et si on avait un attribute end_datetime sur Event ce serait :
start_datetime < max_datetime
end_datetime > min_datetime
# (mesure([a,b] ∩ [c,d]) > 0) ⇔ (a < d et c < b)) 

comme a pas de end_datetime mais qu'on le calcule via start_datetime + meeting_duration_td ça devient :
start_datetime < max_datetime
start_datetime + meeting_duration_td > min_datetime

et donc :
start_datetime < max_datetime
start_datetime > min_datetime - meeting_duration_td

ou
start_datetime__lt=used_max_datetime,
start_datetime__gt=used_min_datetime - meeting_duration_td,


Demandes liées

Lié à Chrono - Development #42169: perfs, structure/algos sur les intervallesFermé27 avril 2020

Actions

Historique

#1

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

#2

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

  • Description mis à jour (diff)
#3

Mis à jour par Emmanuel Cazenave il y a presque 4 ans

C'est quoi la traduction en français ?

#4

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

  • Statut changé de Nouveau à Rejeté

Je n'avais pas vu que get_min_datetime()/get_max_datetime() étaient toujours calés à 0h00 ou minuit du jour concerné, il n'y a pas de problème dans ce cas (sauf si une page d'ouverture commence à 0h00 un jour, on va attendre que ça arrive).

Formats disponibles : Atom PDF