From patchwork Fri Sep 11 15:55:11 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Lespiau X-Patchwork-Id: 516881 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 5B5A314012C for ; Sat, 12 Sep 2015 02:01:34 +1000 (AEST) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 400A91A2BBC for ; Sat, 12 Sep 2015 02:01:34 +1000 (AEST) X-Original-To: patchwork@lists.ozlabs.org Delivered-To: patchwork@lists.ozlabs.org Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by lists.ozlabs.org (Postfix) with ESMTP id D4F891A2B20 for ; Sat, 12 Sep 2015 01:56:11 +1000 (AEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP; 11 Sep 2015 08:56:12 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.17,511,1437462000"; d="scan'208";a="559867314" Received: from jeffzhua-mobl.amr.corp.intel.com (HELO strange.amr.corp.intel.com) ([10.254.88.85]) by FMSMGA003.fm.intel.com with ESMTP; 11 Sep 2015 08:56:10 -0700 From: Damien Lespiau To: patchwork@lists.ozlabs.org Subject: [PATCH 38/51] api: Extract a SeriesList mixin Date: Fri, 11 Sep 2015 16:55:11 +0100 Message-Id: <1441986924-26689-39-git-send-email-damien.lespiau@intel.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1441986924-26689-1-git-send-email-damien.lespiau@intel.com> References: <1441986924-26689-1-git-send-email-damien.lespiau@intel.com> X-BeenThere: patchwork@lists.ozlabs.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Patchwork development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: patchwork-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Patchwork" I'd like another API entry point to present a list of series. Let's gather the common properties we can reuse into a mixin class. Signed-off-by: Damien Lespiau --- patchwork/views/api.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/patchwork/views/api.py b/patchwork/views/api.py index a0904b2..8ab17b3 100644 --- a/patchwork/views/api.py +++ b/patchwork/views/api.py @@ -52,6 +52,16 @@ class UserViewSet(viewsets.ViewSet): serializer = UserSerializer(self) return Response(serializer.data) +class SeriesListMixin: + queryset = Series.objects.all() + serializer_class = SeriesSerializer + paginate_by = 20 + paginate_by_param = 'perpage' + max_paginate_by = 100 + filter_backends = (filters.OrderingFilter, ) + ordering_fields = ('name', 'n_patches', 'submitter__name', 'reviewer__name', + 'submitted', 'last_updated') + class ProjectViewSet(viewsets.ViewSet): permission_classes = (MaintainerPermission, ) model = Project @@ -67,16 +77,9 @@ class ProjectViewSet(viewsets.ViewSet): return Response(serializer.data) class SeriesListViewSet(mixins.ListModelMixin, + SeriesListMixin, viewsets.GenericViewSet): permission_classes = (MaintainerPermission, ) - queryset = Series.objects.all() - serializer_class = SeriesSerializer - paginate_by = 20 - paginate_by_param = 'perpage' - max_paginate_by = 100 - filter_backends = (filters.OrderingFilter, ) - ordering_fields = ('name', 'n_patches', 'submitter__name', 'reviewer__name', - 'submitted', 'last_updated') def get_queryset(self): filter_kwargs = { 'project__linkname': self.kwargs['project_pk'] }