Project

General

Profile

Development #58444

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

Added by Lauréline Guerin 7 months ago. Updated 6 months ago.

Status:
Fermé
Priority:
Normal
Category:
-
Target version:
-
Start date:
08 Nov 2021
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

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 ?

Files

Associated revisions

Revision 48a8af32 (diff)
Added by Valentin Deniaud 6 months ago

agendas: add subscription model (#58444)

History

#2

Updated by Valentin Deniaud 7 months ago

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

Updated by Lauréline Guerin 6 months ago

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

Updated by Lauréline Guerin 6 months ago

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

Updated by Stéphane Guiet 6 months ago

  • Assignee set to 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

Updated by Valentin Deniaud 6 months ago

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

Updated by Lauréline Guerin 6 months ago

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

Updated by Valentin Deniaud 6 months ago

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

Updated by Lauréline Guerin 6 months ago

  • Status changed from Solution proposée to Solution validée
#10

Updated by Valentin Deniaud 6 months ago

  • Status changed from Solution validée to 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

Updated by Frédéric Péters 6 months ago

  • Status changed from Résolu (à déployer) to Solution déployée
#13

Updated by Transition automatique 3 months ago

Automatic expiration

Also available in: Atom PDF