Projet

Général

Profil

Development #62146

Agenda de garde partagée

Ajouté par Valentin Deniaud il y a environ 2 ans. Mis à jour il y a environ 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
24 février 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Dans ce ticket, tout le socle nécessaire :
  • Modèles
  • Vues backoffice
  • API de création
  • Premières utilisations dans les API tierces (datetimes et réservation de semaine type)

Fichiers

0002-manager-make-some-templates-more-generic-62146.patch (3,82 ko) 0002-manager-make-some-templates-more-generic-62146.patch Valentin Deniaud, 03 mars 2022 17:46
0003-manager-add-shared-custody-views-62146.patch (24,2 ko) 0003-manager-add-shared-custody-views-62146.patch Valentin Deniaud, 03 mars 2022 17:46
0004-api-add-shared-custody-views-62146.patch (8,06 ko) 0004-api-add-shared-custody-views-62146.patch Valentin Deniaud, 03 mars 2022 17:46
0001-agendas-add-shared-custody-models-62146.patch (25,3 ko) 0001-agendas-add-shared-custody-models-62146.patch Valentin Deniaud, 03 mars 2022 17:46
garde-partagee-ajout-periode.png (101 ko) garde-partagee-ajout-periode.png Valentin Deniaud, 03 mars 2022 17:51
garde-partage-ajout-regle.png (101 ko) garde-partage-ajout-regle.png Valentin Deniaud, 03 mars 2022 17:51
garde-partagee-parametrage.png (98,5 ko) garde-partagee-parametrage.png Valentin Deniaud, 03 mars 2022 17:51
garde-partagee-visualisation.png (149 ko) garde-partagee-visualisation.png Valentin Deniaud, 03 mars 2022 17:51
0002-manager-make-some-templates-more-generic-62146.patch (3,82 ko) 0002-manager-make-some-templates-more-generic-62146.patch Valentin Deniaud, 10 mars 2022 10:37
0003-manager-add-shared-custody-views-62146.patch (24,3 ko) 0003-manager-add-shared-custody-views-62146.patch Valentin Deniaud, 10 mars 2022 10:37
0004-api-add-shared-custody-views-62146.patch (8,76 ko) 0004-api-add-shared-custody-views-62146.patch Valentin Deniaud, 10 mars 2022 10:37
0001-agendas-add-shared-custody-models-62146.patch (25,4 ko) 0001-agendas-add-shared-custody-models-62146.patch Valentin Deniaud, 10 mars 2022 10:37

Révisions associées

Révision adad089c (diff)
Ajouté par Valentin Deniaud il y a environ 2 ans

agendas: add shared custody models (#62146)

Révision 0fd2e6a5 (diff)
Ajouté par Valentin Deniaud il y a environ 2 ans

manager: make some templates more generic (#62146)

Révision c0679178 (diff)
Ajouté par Valentin Deniaud il y a environ 2 ans

manager: add shared custody views (#62146)

Révision d82c1946 (diff)
Ajouté par Valentin Deniaud il y a environ 2 ans

api: add shared custody views (#62146)

Historique

#1

Mis à jour par Valentin Deniaud il y a environ 2 ans

0001, les modèles et leurs méthodes (voir #62078 pour du contexte)
0003, les vues backoffice
0004, l'API de création

Pour rappel le mode de fonctionnement visé est de créer l'agenda via API, puis d'aller renseigner les règles de garde dans le backoffice chrono, une fois cela fait ça ouvre de pouvoir visualiser le planning de garde et de l'utiliser dans les API.

Niveau modèles, je ne suis pas sûr du nommage pour l'objet qui permet de spécifier des périodes de garde exceptionnelles (au début je l'avais nommé exception, mais c'était source de confusion). Aussi les parents et les enfants sont stockés dans la même table, je ne sais pas si on veut ça.

Niveau API de création je me suis aperçu au dernier moment qu'on ne savait pas créer l'agenda en un coup, parce qu'il faudrait pouvoir spécifier une liste d'enfants de taille arbitraire. En attendant d'éventuels dev wcs (sérialisation JSON des blocs de champs en une liste de dictionnaires ?), je propose deux API, une pour créer l'agenda à partir des noms/ids des parents et une autre pour ajouter un enfant. On peut aussi virer ce commit en attendant de réfléchir plus, mais ça rend le tout non testable en vrai.

Contrairement à ce qu'on s'était dit initialement (#57960), l'effet miroir m'a paru être un gros gadjet et n'est donc pas présent, à voir plus tard si c'est utile.

Suite du plan :
  • utiliser tout ça dans les API datetimes/fillslots (c'était prévu pour ce ticket et en fait non trop gros)
  • avoir ce qu'il faut pour renseigner les gardes pendant les vacances (indispensable)
  • étoffer l'API de création pour permettre de créer l'agenda depuis wcs sans passer par le BO chrono (et laisser le BO chrono être utile uniquement aux cas très complexes/pour ajouter des périodes exceptionnelles) (presque indispensable)
  • réfléchir aux droits d'édition/visualisation (pour l'instant que admin)
  • permettre une granularité à la demie journée/à l'heure
  • ajouter une date de début/de fin sur l'agenda, pour gérer une éventuelle bascule entre deux modes de garde
#3

Mis à jour par Lauréline Guérin il y a environ 2 ans

Contrairement à ce qu'on s'était dit initialement (#57960), l'effet miroir m'a paru être un gros gadjet et n'est donc pas présent, à voir plus tard si c'est utile.

C'était pour éviter qu'on se retrouve avec des plages sans parent, si mauvais paramétrage.
Peut-être qu'on pourrait définir au niveau de l'agenda un parent par défaut ? Si pour un jour donné aucune règle ou exception ne permet de déterminer un parent, alors fallback sur le default.

#5

Mis à jour par Lauréline Guérin il y a environ 2 ans

0001:
tester aussi des rules avec overlaps dans test_shared_custody_agenda_is_complete (même si en théorie ça n'est pas possible si on passe bien pas l'UI), pour montrer que dans ce cas l'agenda n'est pas considéré comme complet ? et peut-être changer le nom de la méthode pour clarifier qu'on veut un agenda complet sans overlaps ?

Pas de listing des agendas de garde dans chrono ? On y accèdera via un lien dans combo-agent ?

ajouter une date de début/de fin sur l'agenda, pour gérer une éventuelle bascule entre deux modes de garde

Et aussi pour s'assurer qu'un enfant ne se retrouvera pas dans 2 agendas de garde différents pour un jour donné ?

#6

Mis à jour par Valentin Deniaud il y a environ 2 ans

Lauréline Guerin a écrit :

Contrairement à ce qu'on s'était dit initialement (#57960), l'effet miroir m'a paru être un gros gadjet et n'est donc pas présent, à voir plus tard si c'est utile.

C'était pour éviter qu'on se retrouve avec des plages sans parent, si mauvais paramétrage.
Peut-être qu'on pourrait définir au niveau de l'agenda un parent par défaut ? Si pour un jour donné aucune règle ou exception ne permet de déterminer un parent, alors fallback sur le default.

Je pense qu'il faut attendre de voir comment on utilise ces agendas dans les différentes API, et aussi voir très concrètement côté métier comment on s'attend à ce que soit géré un agenda de garde invalide (des créneaux réservables à tord (méthode parent par défaut), ou des créneaux non réservables (méthode ne rien faire de particulier), ou tout les créneaux réservables (méthode ignorer l'agenda) ou juste toutes les APIs qui se mettent en erreur).

tester aussi des rules avec overlaps dans test_shared_custody_agenda_is_complete (même si en théorie ça n'est pas possible si on passe bien pas l'UI), pour montrer que dans ce cas l'agenda n'est pas considéré comme complet ?

Éventuellement, en attendant le vrai boulot qui serait plutôt d'avoir des contraintes SQL pour vraiment interdire la création de telles périodes.

Pas de listing des agendas de garde dans chrono ? On y accèdera via un lien dans combo-agent ?

J'imagine oui, à mon avis il risque d'y avoir trop d'agendas pour qu'une liste sans recherche soit utile.

ajouter une date de début/de fin sur l'agenda, pour gérer une éventuelle bascule entre deux modes de garde

Et aussi pour s'assurer qu'un enfant ne se retrouvera pas dans 2 agendas de garde différents pour un jour donné ?

Oui, et donc à l'échelle de ce patch ça veut simplement dire interdire à un enfant d'être dans deux agendas, je peux ajouter un bout pour garantir ça dans l'API.

#7

Mis à jour par Lauréline Guérin il y a environ 2 ans

Est-ce que tu voudrais merger ce ticket pour avancer sur le sujet des agendas partagés, ou il est en attente d'autres devs dans d'autres tickets ?
Si besoin je peux le valider rapidement à condition que tu ajoutes les tests mentionnés et le bout de code pour interdire à un enfant d'être dans deux agendas :)

#8

Mis à jour par Valentin Deniaud il y a environ 2 ans

Revoici avec les bouts de code en plus, ça peut être validé maintenant mais peut-être à relire en ayant en tête la manière dont ça intervient dans les API (#62598, je poste les patches tout bientôt).

#9

Mis à jour par Lauréline Guérin il y a environ 2 ans

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

Mis à jour par Valentin Deniaud il y a environ 2 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit d82c1946945dc6d382f48092381ae85a638ca5e0
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Tue Feb 22 10:30:12 2022 +0100

    api: add shared custody views (#62146)

commit c0679178ba29485ec29b6e2ab10287e482f5f38f
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Tue Feb 22 15:59:27 2022 +0100

    manager: add shared custody views (#62146)

commit 0fd2e6a51a10d3850835a0c3c4169478f6f94527
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Wed Feb 23 15:30:37 2022 +0100

    manager: make some templates more generic (#62146)

commit adad089c092434e4f5644b1d55d07129c57b0d47
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Tue Feb 22 15:59:27 2022 +0100

    agendas: add shared custody models (#62146)
#11

Mis à jour par Transition automatique il y a environ 2 ans

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

Mis à jour par Transition automatique il y a presque 2 ans

Automatic expiration

Formats disponibles : Atom PDF