New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nouvelle API pour gérer les contenus #4767

Open
wants to merge 3 commits into
base: dev
from

Conversation

Projects
None yet
4 participants
@artragis
Contributor

artragis commented Oct 31, 2017

le but de cette PR est de créer une API pour gérer les tutos (pour l'instant, on ne joue pas pour l'affichage des publications).

Cela peut être vu comme le pendant backend de la nouvelle interface de rédaction qui est en cours de maquettage.

Je vais faire deux endpoints ou groupe de endpoints :

  • Gestion des chapitre/extraits/parties.
  • Gestion des métadata (titre, licence, catégorie...)

Ça serait bien que j'ai un petit descriptif de ce que je dois mettre dans ces endpoints pour correspondre aux besoins du frontend

QA

  • Review
  • si vous voyez des cas qui ne sont pas testés dans test_api.py dites-le je les ajoute.

@zestedesavoir zestedesavoir deleted a comment from coveralls Oct 31, 2017

@zestedesavoir zestedesavoir deleted a comment from coveralls Oct 31, 2017

@zestedesavoir zestedesavoir deleted a comment from coveralls Oct 31, 2017

@artragis artragis changed the title from Nouvelle API pour gérer les contenus to [WIP]Nouvelle API pour gérer les contenus Oct 31, 2017

@motet-a motet-a changed the title from [WIP]Nouvelle API pour gérer les contenus to [WIP] Nouvelle API pour gérer les contenus Nov 3, 2017

Show outdated Hide outdated zds/tutorialv2/mixins.py Outdated

@zestedesavoir zestedesavoir deleted a comment from coveralls Nov 7, 2017

@zestedesavoir zestedesavoir deleted a comment from coveralls Nov 9, 2017

@zestedesavoir zestedesavoir deleted a comment from coveralls Nov 9, 2017

@zestedesavoir zestedesavoir deleted a comment from coveralls Nov 10, 2017

@zestedesavoir zestedesavoir deleted a comment from coveralls Nov 10, 2017

@zestedesavoir zestedesavoir deleted a comment from coveralls Nov 10, 2017

@zestedesavoir zestedesavoir deleted a comment from coveralls Nov 13, 2017

@zestedesavoir zestedesavoir deleted a comment from coveralls Nov 13, 2017

@zestedesavoir zestedesavoir deleted a comment from coveralls Nov 22, 2017

@zestedesavoir zestedesavoir deleted a comment from coveralls Nov 22, 2017

@zestedesavoir zestedesavoir deleted a comment from coveralls Nov 22, 2017

@artragis artragis added this to the Version de développement milestone Dec 5, 2017

@artragis artragis changed the title from [WIP] Nouvelle API pour gérer les contenus to Nouvelle API pour gérer les contenus Dec 29, 2017

@artragis

This comment has been minimized.

Show comment
Hide comment
@artragis

artragis Dec 29, 2017

Contributor

J'enlève le wip car je ne vois pas quoi ajouter pour l'instant.

Contributor

artragis commented Dec 29, 2017

J'enlève le wip car je ne vois pas quoi ajouter pour l'instant.

@Anto59290

J'ai fait une première passe de relecture, j'ai eu pas mal de difficultés a comprendre la méthode is_valid de ChildrenListSerializer.

Show outdated Hide outdated zds/tutorialv2/api/permissions.py Outdated
Show outdated Hide outdated zds/tutorialv2/api/serializers.py Outdated
Show outdated Hide outdated zds/tutorialv2/api/serializers.py Outdated
Show outdated Hide outdated zds/tutorialv2/api/serializers.py Outdated
def __init__(self, extracts=None, containers=None, introduction=None, conclusion=None, authors=None,
remove_deleted_children=False, message='', **__):
super(UpdateChildrenListViewModel, self).__init__(extracts, containers, introduction, conclusion, authors)

This comment has been minimized.

@Anto59290

Anto59290 Dec 29, 2017

Contributor

J'imagine que tu as du commencer en Python 2.X, mais du coup plus besoin de l'argument dans le super

@Anto59290

Anto59290 Dec 29, 2017

Contributor

J'imagine que tu as du commencer en Python 2.X, mais du coup plus besoin de l'argument dans le super

This comment has been minimized.

@artragis

artragis Jan 1, 2018

Contributor

j'ai effectivement commencé en 2.7, je modifie ça.

@artragis

artragis Jan 1, 2018

Contributor

j'ai effectivement commencé en 2.7, je modifie ça.

@zestedesavoir zestedesavoir deleted a comment from coveralls Dec 29, 2017

@artragis

This comment has been minimized.

Show comment
Hide comment
@artragis

artragis Jan 1, 2018

Contributor

j'ai eu pas mal de difficultés a comprendre la méthode is_valid de ChildrenListSerializer.

Le principal problème de ce serializer, c'est qu'il n'est pas basé sur un modèle stocké en bdd (puisque c'est du git pur). Du coup il faut tout réécrire à la main.

A la base j'avais voulu rendre la génération d'un contenu générique en s'occupant aussi bien de la création des parties/chapitres que des textes du tuto en soi.

Du coup tu as une disjonctions à faire : soit on est face à une liste de extracts soit face à une liste de containers.

Ensuite, il faut s'assurer qu'il n'y a pas de doublon au sein des demandes d'ajout.

Enfin, il faut s'assurer que chaque container a la bonne forme.

De plus, puisque le serializer gère aussi bien l'ajout d'une partie/extrait que le réordonnancement complet desdits extraits, il faut pouvoir utiliser un flag pour dire "ne fait qu'ajouter à la suite" ou bien "force l'ordre que je te donne".

En soi, je pense qu'il faudrait que je refactore un peu cette fonction pour faire apparaître les étapes de manière plus claire.

Contributor

artragis commented Jan 1, 2018

j'ai eu pas mal de difficultés a comprendre la méthode is_valid de ChildrenListSerializer.

Le principal problème de ce serializer, c'est qu'il n'est pas basé sur un modèle stocké en bdd (puisque c'est du git pur). Du coup il faut tout réécrire à la main.

A la base j'avais voulu rendre la génération d'un contenu générique en s'occupant aussi bien de la création des parties/chapitres que des textes du tuto en soi.

Du coup tu as une disjonctions à faire : soit on est face à une liste de extracts soit face à une liste de containers.

Ensuite, il faut s'assurer qu'il n'y a pas de doublon au sein des demandes d'ajout.

Enfin, il faut s'assurer que chaque container a la bonne forme.

De plus, puisque le serializer gère aussi bien l'ajout d'une partie/extrait que le réordonnancement complet desdits extraits, il faut pouvoir utiliser un flag pour dire "ne fait qu'ajouter à la suite" ou bien "force l'ordre que je te donne".

En soi, je pense qu'il faudrait que je refactore un peu cette fonction pour faire apparaître les étapes de manière plus claire.

@coveralls

This comment has been minimized.

Show comment
Hide comment
@coveralls

coveralls Jan 2, 2018

Coverage Status

Coverage decreased (-0.3%) to 89.256% when pulling b3a62c0 on artragis:tutorial_api into d4e1cf4 on zestedesavoir:dev.

coveralls commented Jan 2, 2018

Coverage Status

Coverage decreased (-0.3%) to 89.256% when pulling b3a62c0 on artragis:tutorial_api into d4e1cf4 on zestedesavoir:dev.

@zestedesavoir zestedesavoir deleted a comment from coveralls Jan 7, 2018

@coveralls

This comment has been minimized.

Show comment
Hide comment
@coveralls

coveralls Jan 8, 2018

Coverage Status

Coverage decreased (-0.3%) to 89.254% when pulling 9a9b285 on artragis:tutorial_api into a815bff on zestedesavoir:dev.

coveralls commented Jan 8, 2018

Coverage Status

Coverage decreased (-0.3%) to 89.254% when pulling 9a9b285 on artragis:tutorial_api into a815bff on zestedesavoir:dev.

@coveralls

This comment has been minimized.

Show comment
Hide comment
@coveralls

coveralls Jan 8, 2018

Coverage Status

Coverage increased (+6.8%) to 80.928% when pulling 648f50c on artragis:tutorial_api into 173d0e0 on zestedesavoir:dev.

coveralls commented Jan 8, 2018

Coverage Status

Coverage increased (+6.8%) to 80.928% when pulling 648f50c on artragis:tutorial_api into 173d0e0 on zestedesavoir:dev.

@artragis artragis removed this from the Version de développement milestone Mar 4, 2018

artragis and others added some commits Jan 11, 2017

Nouvelle API pour gérer les contenus
Cette API permet d'ajouter, trier, modifier des extraits et des espaces hiérarchiques.
Elle est un préambule au travail de génération d'un nouvel éditeur de tutoriel sur le site.
Ajoute un endpoint d'API pour les catégories de tuto.
En effet en corrigeant les problèmes des sérializers je me suis rendu compte
que cela est nécessaire car ces derniers demandent à envoyer les pk des catégories
pour créer/supprimer le contenu.

Notons que le même problème se posera pour les licences mais semble pouvoir être corrigé rapidement.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment