Projet

Général

Profil

Development #58444

Gestion des inscriptions - model et API de création d'inscription

Ajouté par Lauréline Guérin il y a plus de 2 ans. Mis à jour il y a plus de 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
08 novembre 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

ticket chapeau #57956

Besoin de gérer des inscriptions dans chrono. Ce ticket traite du model Registration (?) et de l'API de création d'inscription

Proposition:

model:

  • fk agenda event
  • external_user id
  • date min non required
  • date max non required
Faire un endpoint qui permet de créer une inscription.
  • contrainte d'unicité ? sur quels champs ?
  • comment gérer les overlaps de temps ?
    • on jette une erreur ?
    • on étend une inscription existante si les périodes se chevauchent ?
    • on crée une inscription sans overlaps pour compléter la période ?
    • on crée l'inscription, point, on verra dans l'API de récupération comment on gère ça ?

Fichiers

Révisions associées

Révision 48a8af32 (diff)
Ajouté par Valentin Deniaud il y a plus de 2 ans

agendas: add subscription model (#58444)

Historique

#2

Mis à jour par Valentin Deniaud il y a plus de 2 ans

Il y a des cas identifiés où une inscription serait discontinue ? Vu qu'inscription ne vaut pas réservation, je ne vois pas pourquoi on aurait une inscription [janvier, février] et [avril, mai] au lieu de [janvier, avril] avec juste mars pas réservé.
D'ailleurs puisque les inscriptions sont pilotées depuis wcs, ça serait bien d'avoir dans ce ticket les infos du modèle de fiche choisi, ça devrait largement orienter ce ticket ?

Side note, est-ce que c'est toujours open bar les inscriptions ? On laisse 500 enfants s'inscrire au judo même si on peut en caser que 100 par semaine, et on souhaite bon courage aux parents pour réussir à réserver derrière ?

#3

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

question 1 et 3, on va demander à stef ce qu'il en pense
question 2: yep, bonne idée

sinon, sauf mention contraire de la part de stef, je mettrais bien start et end date en required pour commencer, quitte à les rendre optionnels par la suite

#4

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

D'ailleurs puisque les inscriptions sont pilotées depuis wcs, ça serait bien d'avoir dans ce ticket les infos du modèle de fiche choisi, ça devrait largement orienter ce ticket ?

https://demarches-venissieux-test.demarches.sitiv.fr/backoffice/cards/236/ la fiche inscription périscolaire, mais il y a plusieurs fiches d'inscription
on y trouve notamment:
  • enfant
  • lieu de l'activité
  • dates début et fin
  • semaine type
#5

Mis à jour par Stéphane Guiet il y a plus de 2 ans

  • Assigné à mis à Valentin Deniaud

Il y a des cas identifiés où une inscription serait discontinue ?

Non.

D'ailleurs puisque les inscriptions sont pilotées depuis wcs, ça serait bien d'avoir dans ce ticket les infos du modèle de fiche choisi, ça devrait largement orienter ce ticket ?

Plusieurs fiches ici : https://demarches-venissieux-test.demarches.sitiv.fr/backoffice/cards/
Par exemple : https://demarches-venissieux-test.demarches.sitiv.fr/backoffice/cards/235/

Est-ce que c'est toujours open bar les inscriptions ?

Oui, le pilotage de cette ouverture se fait via des dates (exemple : l'inscription à l'accueil de loisirs du Printemps se fait à partir du 15/03 jusqu'au vendredi précédent l'accueil) et-ou on pourrait décider d'arrêter les inscriptions sur un quota de place atteint (inscription acceptée en auto ou par un agent) : là le workflow de l'inscription doit pouvoir faire le boulot.

Ton exemple est un peu forcé mais pour un accueil sur l'été par exemple, il peut y avoir 120 inscriptions et 90 places disponibles. Et effectivement c'est pas le jeu des réservations que la place disponible sera occupée par différents enfant suivant les jours, les semaines etc.
Et là pas de règle fixe : la réservation peut se faire à la journée, à la semaine, avec ou sans intervention de l'agent.
Là aussi via des conditions de sortie de page ou de contrôle via le workflow on doit pouvoir s'en sortir.

#6

Mis à jour par Valentin Deniaud il y a plus de 2 ans

Lauréline Guerin a écrit :

model Registration (?)

Je penche plutôt pour « Subscription » comme tu l'as écrit dans le ticket chapeau.

API de création d'inscription

Est-ce qu'il y aura un formulaire d'inscription par activité ou un formulaire pour s'inscrire à plusieurs activités ? C'est-à-dire est-ce l'API doit permettre de poser plusieurs réservations d'un coup sur autant d'agendas différents ?

date min
date max

Je verrais plutôt start_datetime et end_datetime (il y a plutôt un début et une fin à une inscription qu'une date maximum et une date minimum).

  • contrainte d'unicité ? sur quels champs ?

J'ai bon espoir qu'on s'en sorte avec un truc simple : (agenda, user_external_id). Ça m'a l'air possible parce que comme il n'y a pas d'inscription discontinue (cf plus haut), il n'y a jamais besoin de poser de deuxième inscription. Le seul cas bloquant ce serait si les réinscriptions pour l'année scolaire n+1 ont lieu avant la fin de l'année n. On peut se rassurer en se disant qu'il sera toujours possible de relâcher la contrainte, ce qui ne serait pas vrai dans l'autre sens.
L'API de création agirait donc comme l'API pour réserver une semaine type, l'appeler une nouvelle fois écrase l'inscription précédente. On pourra réfléchir à une API de mise à jour mais même pas sûr qu'on en ait besoin.

#7

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

Je penche plutôt pour « Subscription » comme tu l'as écrit dans le ticket chapeau.

ok

Est-ce qu'il y aura un formulaire d'inscription par activité ou un formulaire pour s'inscrire à plusieurs activités ? C'est-à-dire est-ce l'API doit permettre de poser plusieurs réservations d'un coup sur autant d'agendas différents ?

Pour le moment stef a prévu un formulaire d'inscription par activité (donc 1 inscription par agenda)

Je verrais plutôt start_datetime et end_datetime (il y a plutôt un début et une fin à une inscription qu'une date maximum et une date minimum).

yes

Le seul cas bloquant ce serait si les réinscriptions pour l'année scolaire n+1 ont lieu avant la fin de l'année n.

Et c'est ce qui va se passer: les réinscriptions ont lieu en juin alors que l'année scolaire n'est pas terminée. Les parents devront pouvoir réserver la cantine de l'année en cours et commencer à planifier les résa de la rentrée.

On peut se rassurer en se disant qu'il sera toujours possible de relâcher la contrainte, ce qui ne serait pas vrai dans l'autre sens.

On va vite en avoir besoin :)

On pourra réfléchir à une API de mise à jour mais même pas sûr qu'on en ait besoin.

On verra si besoin

#8

Mis à jour par Valentin Deniaud il y a plus de 2 ans

OK, malgré tout ça je vois encore assez mal ce qui pourrait poser problème ou pas dans les histoires de chevauchements dont parle la description. Je propose de ne pas s'en préoccuper pour l'instant et de construire ça à l'usage, en commençant tout simple.

Valentin Deniaud a écrit :

Je verrais plutôt start_datetime et end_datetime (il y a plutôt un début et une fin à une inscription qu'une date maximum et une date minimum).

Mais ce sont juste des dates, donc start_date. Mais il y a un existant le nommage d'une variable « date de début », avec un paramètre d'API qui s'appelle date_start. Donc pour rester cohérent avec ça, plutôt date_start.

#9

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

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

Mis à jour par Valentin Deniaud il y a plus de 2 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 48a8af32d22502ad776f709bd37a95423f502ca6
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Thu Nov 25 14:07:16 2021 +0100

    agendas: add subscription model (#58444)
#11

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

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

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

Automatic expiration

Formats disponibles : Atom PDF