Development #17429
agora: rajouter les webservices d'inscription periscolaires
0%
Description
A partir de la spec en PJ.
Fichiers
Révisions associées
Historique
Mis à jour par Serghei Mihai il y a presque 7 ans
- Echéance mis à 07 juillet 2017
- Assigné à mis à Serghei Mihai
Mis à jour par Serghei Mihai il y a presque 7 ans
- Fichier 0001-agoraplus-add-periscol-inscriptions-endpoints-17429.patch 0001-agoraplus-add-periscol-inscriptions-endpoints-17429.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Testé avec le jeu de données fourni dans la doc.
Mis à jour par Thomas Noël il y a presque 7 ans
Il faudrait être clair sur l'histoire des dates. Clairement, dans Publik, on ne peut pas en envoyer. Donc il faut être sur que ça fonctionne sans.
Pour la partie qui sera l'affichage des résa en cours d'un enfant (get_periscol_child_enrollment_planning, utilisé via combo), il faut un webservice qui prennent le numéro de l'enfant, mais qui puisse aussi prendre un name_id en paramètre optionnel dans la query_string. Et si le name_id est présent, alors il faut vérifier que le child_id appartient à la famille liée.
Mis à jour par Serghei Mihai il y a presque 7 ans
Thomas Noël a écrit :
Il faudrait être clair sur l'histoire des dates. Clairement, dans Publik, on ne peut pas en envoyer. Donc il faut être sur que ça fonctionne sans.
Les dates sont optionnels dans tous les appels, sauf celui de création d'une reservation. Et même dans ce cas la date vient d'une liste proposée par Agora.
Pour la partie qui sera l'affichage des résa en cours d'un enfant (get_periscol_child_enrollment_planning, utilisé via combo), il faut un webservice qui prennent le numéro de l'enfant, mais qui puisse aussi prendre un name_id en paramètre optionnel dans la query_string. Et si le name_id est présent, alors il faut vérifier que le child_id appartient à la famille liée.
Ok, j'avais pas vu ce cas. Je refais le patch.
Mis à jour par Serghei Mihai il y a presque 7 ans
Et le check de l'identifiant de l'enfant si le name_id est précisé.
Mis à jour par Serghei Mihai il y a presque 7 ans
- Fichier 0001-agoraplus-add-periscol-inscriptions-endpoints-17429.patch 0001-agoraplus-add-periscol-inscriptions-endpoints-17429.patch ajouté
(yep, le voici).
Mis à jour par Thomas Noël il y a presque 7 ans
"which" je l'appelerais "reserved_day"
Et renommer « child_in_name_id_family » en « is_child_in_name_id_family »
Mais surtout, dans cette fonction : if child_id in child['id']:
ça doit plutôt être == je pense.
Et peut-être pour se donner bonne conscience, utiliser des urlencode (genre urlencode(('start_date', start_date),('end_date', end_date))
c'est quand même plus rassurant)
Mis à jour par Serghei Mihai il y a presque 7 ans
- Fichier 0001-agoraplus-add-periscol-inscriptions-endpoints-17429.patch 0001-agoraplus-add-periscol-inscriptions-endpoints-17429.patch ajouté
Ok.
Les urlencode faits un par un car l'ordre des clés compte dans l'appel au webservice.
Mis à jour par Thomas Noël il y a presque 7 ans
Astuce découverte grâce à Agora : quand tu envoies une liste de tuple (au lieu d'un dico), urlencode respecte l'ordre.
Mis à jour par Serghei Mihai il y a presque 7 ans
- Fichier 0001-agoraplus-add-periscol-inscriptions-endpoints-17429.patch 0001-agoraplus-add-periscol-inscriptions-endpoints-17429.patch ajouté
Ok.
Patch à jour.
Mis à jour par Thomas Noël il y a presque 7 ans
Il manque mon petit s/which/reserved_day/ ? A ce niveau, avoir -1/0/1 dans l'URL ça me semble pas une bonne idée, je serais pour le recevoir en query_string, avec -1 par défaut comme tu as prévu (ce qui veut dire que c'est facultatif ⇒ query_string).
Idem pour get_periscol_enrollments(self, child, service, date=None):
service est clairement facultatif, il faut le passer en query_string. Et en profiter pour l'appeler d'un bout à l'autre "service_id", ça rend sinon la relecture assez relou.
Lors du normalize_periscol_enrollment, renvoyer l'URL /periscol/enrollment/(?P<enrollment_id>[\w-]+)/planning/
, on aura ainsi pas besoin de la construire dans le formulaire (sur le principe de ce qui est fait dans chrono qui renvoie les URL des événements)
Et le enrollment_id qui revient à la fin reservation_id, aussi (renommer ce dernier "enrollment_id" comme partout ailleurs, là encore ça aide à comprendre)
(et en dehors de ça, j'ai encore du mal à voir comment on va utiliser tout ça dans wcs et combo)
Mis à jour par Serghei Mihai il y a presque 7 ans
- Fichier 0001-agoraplus-add-periscol-inscriptions-endpoints-17429.patch 0001-agoraplus-add-periscol-inscriptions-endpoints-17429.patch ajouté
Ok pour passer les paramètres optionnels dans la query_string.
Je transforme enrollment_id
en reservation_id
dans le webservice de suppression d'une reservation car il s'agit bien d'une réservation à une activité. L'identifiant est celui de la réservation et non activité.
Fonctionnellement c'est demandé de pouvoir poser une reservation et la supprimer à travers des formulaires wcs sans précisions (de la part d'Alfortville).
Mis à jour par Serghei Mihai il y a plus de 6 ans
- Fichier 0001-agoraplus-add-periscol-inscriptions-endpoints-17429.patch 0001-agoraplus-add-periscol-inscriptions-endpoints-17429.patch ajouté
Patch à jour avec corrections de quelques coquilles.
Fonctionnement validé en dev avec des formulaires de création et annulation de réservation.
Mis à jour par Serghei Mihai il y a plus de 6 ans
- Statut changé de En cours à Résolu (à déployer)
J'ai rajouté le filtrage des plannings et des activités conformement aux specs fonctionnelles, validées avec Brice.
commit 24c39fc6653fa94009cacd64337f71f744f5ed3a (origin/master, origin/HEAD) Author: Serghei <serghei.mihai@devlibre.net> Date: Fri Jul 7 11:02:01 2017 +0200 agoraplus: add periscol inscriptions endpoints (#17429)
agoraplus: add periscol inscriptions endpoints (#17429)