Projet

Général

Profil

Development #24205

Gestion d'ouvertures exceptionnelles

Ajouté par Thomas Noël il y a presque 6 ans. Mis à jour il y a 12 mois.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Version cible:
-
Début:
31 mai 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

On permet actuellement des exceptions de fermeture.

Il faut aussi prévoir des exceptions d'ouverture, typiquement "le service sera ouvert ce samedi 2 juin de 9h à 18h"

Historique

#1

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

La logique de chrono, c'est de gérer des exception sur les créneaux récurrents existants. A priori il est difficile (lire "impossible") de changer cette logique (à discuter).

Donc, si on veut ouvrir le samedi 2 juin de 9h à 12h :
  • ajout d'un creneau récurrent samedi 9h-12h (donc, potentiellement "tous les samedi")
  • une exception générale de tous les samedis (déjà possible via ics)
  • une exception particulière d'ouverture le samedi 2 juin (l'objet de ce ticket)

Cela implique aussi que ce qui gagne à la fin, ce sont les ouvertures exceptionnelles.

Je vois donc à développer :
  • sur toute exception, définir s'il s'agit d'une ouverture ou fermeture exceptionnelle
  • modifier l'algo de calcul des exceptions pour prendre en charge d'abord les fermetures, puis les ouvertures
  • bonus : permettre une exception récurrente tous les xxx-di, de telle à telle date, telle à telle heure (pour la gestion d'exception récurrente sans passer par un ics)

PS: Dans l'ordre des manipulations qui seront faites en vrai, pour éviter d'avoir quelques minutes où tous les samedis sont ouverts, on ferait : 1. ajout de l'exception générale 2. création du créneau récurrent 3. ajout de l'exception particulière.

#3

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

  • Sujet changé de Exceptions d'ouverture à Gestion d'ouvertures exceptionnelles
#4

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

Ça me paraîtrait plus simple et plus générique de faire de TimePeriod un objet ayant une date de début et de fin, ça en fait une sorte d'évènement récurrent. Pour faire une ouverture exceptionnelle, et bien début = fin, idéalement TimePeriod aurait tous les paramètres d'un évènement iCalendar (début, fin, durée, récurrence, exceptions), on devrait pouvoir définir presque un calendrier complet avec quelques timeperiod et pas toujours 5.

#5

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

Autre suggestion transformer weekday en bitmask pour stocker d'un seul coup un planning régulier (l'idée c'est de s'approcher de plus en plus des fonctionnalités des RRULE qui nous intéressent).

En gros pour un planning pour un planning régulier 8h/12h-14h/17h sur jours ouvrés on aurait que deux TimePeriod à créer avec weekday=set([1,2,3,4,5]).

#6

Mis à jour par Benjamin Dauvergne il y a 12 mois

  • Statut changé de Nouveau à Fermé
  • Planning mis à Non

Ça existe, TimePeriod accepte une date maintenant.

Formats disponibles : Atom PDF