Development #17098
avoir un webservice permettant de récuperer le titre d'un agenda
0%
Description
Il est pratique des fois pouvoir récuperer le titre d'un agenda à partir de son slug: par exemple la cellule "calendar" transmet au formulaire wcs le slug de l'agenda selectionné (dans les sessions vars) et wcs de son côté pourrait appeler chrono en webservice pour récuperer son titre pour l'afficher à l'usager pour l'informer pour quelle activité il fait la résa.
Fichiers
Demandes liées
Historique
Mis à jour par Frédéric Péters il y a presque 7 ans
/agenda/(?P<agenda_identifier>[\w-]+)/, qui renverrait les infos d'un agenda, sûr.
Mis à jour par Josué Kouka il y a presque 7 ans
- Lié à Development #17188: Ajouter une api qui renvoit les infos d'un agenda ajouté
Mis à jour par Josué Kouka il y a presque 7 ans
- Fichier 0001-api-add-single-agenda-infos-api-17188.patch 0001-api-add-single-agenda-infos-api-17188.patch ajouté
- Statut changé de Nouveau à En cours
- Assigné à mis à Josué Kouka
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a presque 7 ans
Il y a un gros copié-collé (ligne 79 à 94) qui peut faire l'objet d'une fonction get_agenda_data(agenda) qui sera utilisée ici et dans Agendas::get
Mis à jour par Josué Kouka il y a presque 7 ans
- Fichier 0001-api-add-single-agenda-infos-api-17188.patch 0001-api-add-single-agenda-infos-api-17188.patch ajouté
Thomas Noël a écrit :
Il y a un gros copié-collé (ligne 79 à 94) qui peut faire l'objet d'une fonction get_agenda_data(agenda) qui sera utilisée ici et dans Agendas::get
Avec la modif
Mis à jour par Frédéric Péters il y a presque 7 ans
La ligne blanche dans urls.py elle n'était pas là pour rien, elle servait à délimiter différentes parties de l'API.
Mis à jour par Thomas Noël il y a presque 7 ans
Tassons un peu.
Pour garder un peu la cohérence des noms : s/AgendaAPIView/AgendaView/
Ensuite pour Agendas
def get... agendas = [get_agenda_data(request, agenda) for agenda in Agenda.objects.all().order_by('label')] return Response({'data': agendas})
et pour AgendaView, gagner une ligne
... return Response({'data': get_agenda_data(request, agenda)})
Et à relire encore le code de views.py, factoriser encore avec
def get_agenda_by_identifier(agenda_identifier) try: agenda = Agenda.objects.get(slug=agenda_identifier) except Agenda.DoesNotExist: try: # legacy access by agenda id agenda = Agenda.objects.get(id=int(agenda_identifier)) except (ValueError, Agenda.DoesNotExist): raise Http404()
parce que ce bout de code existe déjà 2 fois et que tu le rajoutes encore une fois de plus.
Mis à jour par Frédéric Péters il y a presque 7 ans
agenda_data = get_agenda_data(request, agenda) agendas.append(agenda_data)
Pas besoin de deux lignes.
except Agenda.DoesNotExist: try: # legacy access by agenda id
Pas besoin de legacy sur un nouveau truc.
Pas besoin de deux lignes blanches entre la classe et la suite, ni entre les deux tests.
Manque un test sur un appel avec mauvais identifiant.
Mis à jour par Josué Kouka il y a presque 7 ans
- Fichier 0001-api-add-agenda-detail-api-17188.patch 0001-api-add-agenda-detail-api-17188.patch ajouté
Pas besoin de deux lignes blanches entre la classe et la suite, ni entre les deux tests.
Je suis juste les recommandations PEP 8 https://www.python.org/dev/peps/pep-0008/#blank-lines
Mis à jour par Frédéric Péters il y a presque 7 ans
La ligne blanche dans urls.py elle n'était pas là pour rien, elle servait à délimiter différentes parties de l'API.
Et maintenant il y a une ligne blacnhe, mais pas à bon endroit…
Je suis juste les recommandations PEP 8 https://www.python.org/dev/peps/pep-0008/#blank-lines
La forme dans Chrono et ailleurs dans nos applications, à suivre, c'est que le .as_view() il vient après une ligne blanche uniquement, mais il y a bien deux lignes blanches après.
Exemple aussi, retour à la ligne qui n'a pas de sens, la ligne tient bien en-dessous des 80 caractères.
return Response({ 'data': get_agenda_data(request, agenda)})
De manière générale donc, tes retours à la ligne tu ne les mets pas du tout aux bons endroits, il faut vraiment que tu passes du temps à lire et relire nos patchs, à porter attention à cet aspect, et à suivre les pratiques.
Je vais corriger avant de pousser le commit.
Mis à jour par Frédéric Péters il y a presque 7 ans
Et maintenant il y a une ligne blacnhe, mais pas à bon endroit…
Quoique, ça se tient quand même.
Mis à jour par Josué Kouka il y a presque 7 ans
- Fichier 0001-api-add-agenda-detail-api-17188.patch 0001-api-add-agenda-detail-api-17188.patch ajouté
Avec correction sur les lignes blanche et le return
Mis à jour par Frédéric Péters il y a presque 7 ans
- Statut changé de En cours à Résolu (à déployer)
Poussé, avec le mauvais numéro de commit dedans :/
commit 28028b681deb00845af67b3a2cd605684d1bd978 Author: Josue Kouka <jkouka@entrouvert.com> Date: Mon Jun 26 14:51:36 2017 +0200 api: add API to retrieve agenda detail (#17188)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Fermé