Improved get_queryset methods on project api resources.
Attaching stars count to querysets.remotes/origin/enhancement/email-actions
parent
1531dcea02
commit
4a4fb30779
|
@ -44,13 +44,14 @@ from . import stars
|
||||||
|
|
||||||
|
|
||||||
class ProjectAdminViewSet(ModelCrudViewSet):
|
class ProjectAdminViewSet(ModelCrudViewSet):
|
||||||
model = models.Project
|
|
||||||
serializer_class = serializers.ProjectDetailSerializer
|
serializer_class = serializers.ProjectDetailSerializer
|
||||||
list_serializer_class = serializers.ProjectSerializer
|
list_serializer_class = serializers.ProjectSerializer
|
||||||
permission_classes = (IsAuthenticated, permissions.ProjectAdminPermission)
|
permission_classes = (IsAuthenticated, permissions.ProjectAdminPermission)
|
||||||
|
|
||||||
def get_queryset(self):
|
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):
|
def pre_save(self, obj):
|
||||||
if not obj.id:
|
if not obj.id:
|
||||||
|
@ -64,11 +65,17 @@ class ProjectAdminViewSet(ModelCrudViewSet):
|
||||||
|
|
||||||
|
|
||||||
class ProjectViewSet(ModelCrudViewSet):
|
class ProjectViewSet(ModelCrudViewSet):
|
||||||
model = models.Project
|
|
||||||
serializer_class = serializers.ProjectDetailSerializer
|
serializer_class = serializers.ProjectDetailSerializer
|
||||||
list_serializer_class = serializers.ProjectSerializer
|
list_serializer_class = serializers.ProjectSerializer
|
||||||
permission_classes = (IsAuthenticated, permissions.ProjectPermission)
|
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'])
|
@detail_route(methods=['get'])
|
||||||
def stats(self, request, pk=None):
|
def stats(self, request, pk=None):
|
||||||
project = self.get_object()
|
project = self.get_object()
|
||||||
|
@ -101,12 +108,6 @@ class ProjectViewSet(ModelCrudViewSet):
|
||||||
project = self.get_object()
|
project = self.get_object()
|
||||||
return Response(services.get_all_tags(project))
|
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):
|
def pre_save(self, obj):
|
||||||
if not obj.id:
|
if not obj.id:
|
||||||
obj.owner = self.request.user
|
obj.owner = self.request.user
|
||||||
|
|
Loading…
Reference in New Issue