From 9496f4e2fb391b1c16ab4567aa603d1b24897e36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Mon, 19 May 2014 20:55:29 +0200 Subject: [PATCH] Two small performance improvements --- taiga/projects/api.py | 3 +++ taiga/projects/milestones/api.py | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/taiga/projects/api.py b/taiga/projects/api.py index e559ced1..e9c39e49 100644 --- a/taiga/projects/api.py +++ b/taiga/projects/api.py @@ -181,6 +181,9 @@ class RolesViewSet(ModelCrudViewSet): filter_backends = (filters.IsProjectMemberFilterBackend,) filter_fields = ('project',) + def get_queryset(self): + return self.model.objects.all().prefetch_related('permissions') + # User Stories commin ViewSets diff --git a/taiga/projects/milestones/api.py b/taiga/projects/milestones/api.py index b9dcb599..0d7147c0 100644 --- a/taiga/projects/milestones/api.py +++ b/taiga/projects/milestones/api.py @@ -34,7 +34,13 @@ import datetime class MilestoneViewSet(NotificationSenderMixin, ModelCrudViewSet): - queryset = models.Milestone.objects.all().order_by("-estimated_start") + # TODO: Refactor this, too much prefetch related + queryset = models.Milestone.objects.all().order_by("-estimated_start").prefetch_related( + "user_stories", + "user_stories__role_points", + "user_stories__role_points__points", + "user_stories__role_points__role", + ) serializer_class = serializers.MilestoneSerializer permission_classes = (IsAuthenticated, permissions.MilestonePermission) filter_backends = (filters.IsProjectMemberFilterBackend,)