Development #47337
API de création d'événement
0%
Description
Dans l'idée qu'une proposition d'événement arrive dans w.c.s., soit relue validée et que ça l'ajoute au lot des événements annoncés pour un agenda.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 3 ans
- Assigné à mis à Nicolas Roche (absent jusqu'au 3 avril)
Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 3 ans
- Fichier workflow-ajouts-evenements.wcs workflow-ajouts-evenements.wcs ajouté
- Fichier 0001-api-add-a-Publik-api-to-add-events-47337.patch 0001-api-add-a-Publik-api-to-add-events-47337.patch ajouté
- Statut changé de Nouveau à En cours
Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 3 ans
- Fichier 0001-api-add-add-event-endpoint-47337.patch 0001-api-add-add-event-endpoint-47337.patch ajouté
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Solution proposée à En cours
- Patch proposed changé de Oui à Non
(vraisemblablement à rebaser)
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Dupliqué par Support #48870: Création d'un événement dans un workflow ajouté
Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 2 ans
- Fichier 0001-api-add-add-event-endpoint-47337.patch 0001-api-add-add-event-endpoint-47337.patch ajouté
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Re-basé.
Mis à jour par Frédéric Péters il y a plus de 2 ans
Je dirais d'intégrer dès maintenant les champs supplémentaires permettant de gérer la récurrence.
Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 2 ans
Il y a une liste de jours à passer pour ajouter des événements récurrents :
recurrence_days = ArrayField( models.IntegerField(choices=WEEKDAY_CHOICES), verbose_name=_('Recurrence days'), blank=True, null=True, )
Du coup ça ne pourra pas être utilisable depuis WCS.
form_workflow_data_ajout_error_response_errors_recurrence_days : ['Attendait une liste d\'éléments mais a reçu "str".']
Est-ce que je le fait quand même ?
Mis à jour par Frédéric Péters il y a plus de 2 ans
Il faut faire quelque chose d'exploitable; de manière pratique ici ça serait qu'en alternative (ou pas) accepter une chaine type "0,3,5" (pour [lundi, mercredi, vendredi]).
Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 2 ans
- Fichier 0001-api-add-add-event-endpoint-47337.patch 0001-api-add-add-event-endpoint-47337.patch ajouté
accepter une chaine type "0,3,5" (pour [lundi, mercredi, vendredi]).
Fait.
Mis à jour par Valentin Deniaud il y a plus de 2 ans
event = Event.objects.create(agenda=agenda, **payload)
Il faudrait tester le cas où un évènement serait créé en précisant un slug, quand un évènement avec ce slug existe déjà : j'imagine que cette ligne va lever une exception, qu'il faudra rattraper et transformer en jolie APIError.
Sur le même thème, il faudrait vérifier que 'start_datetime' et 'places' sont toujours présents dans le payload : ça devrait bien se faire au niveau du serializer.
Sans importance, # add a recurent event
il manque un R.
Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 2 ans
- Fichier 0001-api-add-add-event-endpoint-47337.patch 0001-api-add-add-event-endpoint-47337.patch ajouté
Il faudrait tester le cas où un évènement serait créé en précisant un slug
Mea-culpa j'ai laissé cette clé dans les tests alors qu'elle n'est pas traitée par le serializer.
(DRF ne râle pas si on lui passe plus de contenu que ce à quoi il s'attend)
https://stackoverflow.com/questions/53772216/how-to-fail-any-django-rest-framework-requests-with-unknown-parameters
C'est peut-être plus simple ainsi, c'est a dire que l'on ne puisse pas indiquer le slug via l'API ?
Sinon, remarques prises en comptes : j'ai complété les tests.
Mis à jour par Lauréline Guérin il y a plus de 2 ans
Je crois qu'il manque un create_all_recurrences
dans le cas d'un event avec récurrence et fin de récurrence (cf import et form)
Mis à jour par Valentin Deniaud il y a plus de 2 ans
Nicolas Roche a écrit :
Il faudrait tester le cas où un évènement serait créé en précisant un slug
Mea-culpa j'ai laissé cette clé dans les tests alors qu'elle n'est pas traitée par le serializer.
Dac mais du coup on a pas le slug de l'évènement créé alors que c'est lui qui sert dans les appels (le support de l'id est legacy). Pour ne pas s'embêter on pourrait retourner le dico de get_event_detail
, comme pour l'API EventStatus.
Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 2 ans
- Fichier 0001-api-add-add-event-endpoint-47337.patch 0001-api-add-add-event-endpoint-47337.patch ajouté
Merci pour les remarques (prises en compte).
Pour le format de retour j'ai ajouté les 3 champs propres aux événements récurent à get_event_detail
.
Mis à jour par Valentin Deniaud il y a plus de 2 ans
Nicolas Roche a écrit :
Pour le format de retour j'ai ajouté les 3 champs propres aux événements récurent à
get_event_detail
.
Je trouve ça bien d'adapter get_event_detail
pour que ça fonctionne avec les évènements récurrents. En plus de l'adaptation que tu as faite il faudrait aussi ne pas inclure les champs qui n'ont pas de sens : tout ce qui est 'api', ainsi que 'places' et 'disabled'.
À vérifier, tu peux peut-être te passer de validate_recurrence_days
en mettant child=IntegerField(min_value=0, max_value=6)
dans le champ recurrence_days.
if event.recurrence_days: if event.recurrence_end_date:
Un petit
and
pour s'économiser une indentation ?Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 2 ans
- Fichier 0001-api-add-add-event-endpoint-47337.patch 0001-api-add-add-event-endpoint-47337.patch ajouté
Fait, merci.
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 9bf248a09563ec8aca154cd97c95e9829c1634a9 Author: Nicolas ROCHE <nroche@entrouvert.com> Date: Tue Dec 8 16:27:57 2020 +0100 api: add add-event endpoint (#47337)
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
api: add add-event endpoint (#47337)