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):
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue