Projet

Général

Profil

Development #17098

avoir un webservice permettant de récuperer le titre d'un agenda

Ajouté par Serghei Mihai il y a presque 7 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Josué Kouka
Catégorie:
-
Version cible:
-
Début:
22 juin 2017
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

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

Lié à Chrono - Development #17188: Ajouter une api qui renvoit les infos d'un agendaRejeté26 juin 2017

Actions

Historique

#1

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.

#2

Mis à jour par Josué Kouka il y a presque 7 ans

#3

Mis à jour par Josué Kouka il y a presque 7 ans

#4

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

#5

Mis à jour par Josué Kouka il y a presque 7 ans

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

#6

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.

#7

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.

#8

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.

#9

Mis à jour par Josué Kouka il y a presque 7 ans

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

#10

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.

#11

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.

#12

Mis à jour par Josué Kouka il y a presque 7 ans

Avec correction sur les lignes blanche et le return

#13

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)
#14

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

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF