diff --git a/taiga/projects/api.py b/taiga/projects/api.py index c3753de5..c249d51a 100644 --- a/taiga/projects/api.py +++ b/taiga/projects/api.py @@ -44,13 +44,14 @@ from . import stars class ProjectAdminViewSet(ModelCrudViewSet): - model = models.Project serializer_class = serializers.ProjectDetailSerializer list_serializer_class = serializers.ProjectSerializer permission_classes = (IsAuthenticated, permissions.ProjectAdminPermission) def get_queryset(self): - return models.Project.objects.all() + qs = models.Project.objects.all() + qs = stars.attach_startscount_to_queryset(qs) + return qs def pre_save(self, obj): if not obj.id: @@ -64,11 +65,17 @@ class ProjectAdminViewSet(ModelCrudViewSet): class ProjectViewSet(ModelCrudViewSet): - model = models.Project serializer_class = serializers.ProjectDetailSerializer list_serializer_class = serializers.ProjectSerializer permission_classes = (IsAuthenticated, permissions.ProjectPermission) + def get_queryset(self): + qs = models.Project.objects.all() + qs = stars.attach_startscount_to_queryset(qs) + qs = qs.filter(Q(owner=self.request.user) | + Q(members=self.request.user)) + return qs.distinct() + @detail_route(methods=['get']) def stats(self, request, pk=None): project = self.get_object() @@ -101,12 +108,6 @@ class ProjectViewSet(ModelCrudViewSet): project = self.get_object() return Response(services.get_all_tags(project)) - def get_queryset(self): - qs = super().get_queryset() - qs = qs.filter(Q(owner=self.request.user) | - Q(members=self.request.user)) - return qs.distinct() - def pre_save(self, obj): if not obj.id: obj.owner = self.request.user