From 0d067192659b312c7944568b0425a531fcd1b1a3 Mon Sep 17 00:00:00 2001 From: Okhin Date: Wed, 25 Sep 2019 16:10:55 +0200 Subject: [PATCH] Ajout d'un article-by-status pour l'API, permettant de filtrer (et donc de compter) les articles dans un status particulier --- apps/rp/api/urls.py | 3 ++- apps/rp/api/views.py | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/rp/api/urls.py b/apps/rp/api/urls.py index 767e89c..6cf4a2d 100644 --- a/apps/rp/api/urls.py +++ b/apps/rp/api/urls.py @@ -1,10 +1,11 @@ from rest_framework import routers -from .views import ArticleViewSet, ArticleSearch, ArticleTag +from .views import ArticleViewSet, ArticleSearch, ArticleTag, ArticleStatus router = routers.DefaultRouter() router.register(r"articles", ArticleViewSet) +router.register(r"articles-by-status/(?P.+)", ArticleStatus) router.register(r"articles-by-tag/(?P.+)", ArticleTag) router.register(r"articles-search/(?P.+)", ArticleSearch) diff --git a/apps/rp/api/views.py b/apps/rp/api/views.py index 18c7c9f..8428057 100644 --- a/apps/rp/api/views.py +++ b/apps/rp/api/views.py @@ -127,3 +127,12 @@ class ArticleTag(viewsets.ModelViewSet, mixins.ListModelMixin): def list(self, request, *args, **kwargs): self.queryset = self.queryset.filter(tags__name__in=[kwargs['filter_tag']]).distinct() return super().list(request, args, kwargs) + + +class ArticleStatus(viewsets.ModelViewSet, mixins.ListModelMixin): + queryset = Article.objects.all() + serializer_class = ArticleSerializer + + def list(self, request, *args, **kwargs): + self.queryset = self.queryset.filter(status=kwargs['filter_status'].upper()) + return super().list(request, args, kwargs) -- GitLab