From 73c148f0fbdbe8d6f07fd278c3155384be3028d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Wed, 30 Sep 2015 10:58:28 +0200 Subject: [PATCH] Improve voters mixins --- taiga/projects/api.py | 5 ++--- taiga/projects/votes/mixins/viewsets.py | 10 +++++++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/taiga/projects/api.py b/taiga/projects/api.py index 8d3cfe1f..97e0b0a8 100644 --- a/taiga/projects/api.py +++ b/taiga/projects/api.py @@ -44,6 +44,7 @@ from taiga.projects.mixins.on_destroy import MoveOnDestroyMixin from taiga.projects.userstories.models import UserStory, RolePoints from taiga.projects.tasks.models import Task from taiga.projects.issues.models import Issue +from taiga.projects.votes.mixins.viewsets import LikedResourceMixin, FansViewSetMixin from taiga.permissions import service as permissions_service from . import serializers @@ -51,8 +52,6 @@ from . import models from . import permissions from . import services -from .votes.mixins.viewsets import LikedResourceMixin, VotersViewSetMixin - ###################################################### ## Project @@ -292,7 +291,7 @@ class ProjectViewSet(LikedResourceMixin, HistoryResourceMixin, ModelCrudViewSet) return response.NoContent() -class ProjectFansViewSet(VotersViewSetMixin, ModelListViewSet): +class ProjectFansViewSet(FansViewSetMixin, ModelListViewSet): permission_classes = (permissions.ProjectFansPermission,) resource_model = models.Project diff --git a/taiga/projects/votes/mixins/viewsets.py b/taiga/projects/votes/mixins/viewsets.py index 3fbb5cdf..3c2bfed5 100644 --- a/taiga/projects/votes/mixins/viewsets.py +++ b/taiga/projects/votes/mixins/viewsets.py @@ -79,7 +79,7 @@ class VotedResourceMixin(BaseVotedResource): return self._remove_vote("downvote", request, pk) -class VotersViewSetMixin: +class BaseVotersViewSetMixin: # Is a ModelListViewSet with two required params: permission_classes and resource_model serializer_class = serializers.VoterSerializer list_serializer_class = serializers.VoterSerializer @@ -112,3 +112,11 @@ class VotersViewSetMixin: def get_queryset(self): resource = self.resource_model.objects.get(pk=self.kwargs.get("resource_id")) return services.get_voters(resource) + + +class VotersViewSetMixin(BaseVotersViewSetMixin): + pass + + +class FansViewSetMixin(BaseVotersViewSetMixin): + pass