mirror of
https://github.com/ansible/awx.git
synced 2026-05-07 17:37:37 -02:30
Added some select_related fields to a few endpoints so performance sucks less
This commit is contained in:
@@ -553,6 +553,11 @@ class OrganizationList(ListCreateAPIView):
|
|||||||
model = Organization
|
model = Organization
|
||||||
serializer_class = OrganizationSerializer
|
serializer_class = OrganizationSerializer
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
qs = Organization.accessible_objects(self.request.user, {'read': True})
|
||||||
|
qs = qs.select_related('admin_role', 'auditor_role', 'member_role')
|
||||||
|
return qs
|
||||||
|
|
||||||
def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
"""Create a new organzation.
|
"""Create a new organzation.
|
||||||
|
|
||||||
@@ -766,6 +771,11 @@ class TeamList(ListCreateAPIView):
|
|||||||
model = Team
|
model = Team
|
||||||
serializer_class = TeamSerializer
|
serializer_class = TeamSerializer
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
qs = Team.accessible_objects(self.request.user, {'read': True})
|
||||||
|
qs = qs.select_related('admin_role', 'auditor_role', 'member_role')
|
||||||
|
return qs
|
||||||
|
|
||||||
class TeamDetail(RetrieveUpdateDestroyAPIView):
|
class TeamDetail(RetrieveUpdateDestroyAPIView):
|
||||||
|
|
||||||
model = Team
|
model = Team
|
||||||
@@ -866,6 +876,17 @@ class ProjectList(ListCreateAPIView):
|
|||||||
model = Project
|
model = Project
|
||||||
serializer_class = ProjectSerializer
|
serializer_class = ProjectSerializer
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
projects_qs = Project.accessible_objects(self.request.user, {'read': True})
|
||||||
|
projects_qs = projects_qs.select_related(
|
||||||
|
'organization',
|
||||||
|
'admin_role',
|
||||||
|
'auditor_role',
|
||||||
|
'member_role',
|
||||||
|
'scm_update_role',
|
||||||
|
)
|
||||||
|
return projects_qs
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
# Not optimal, but make sure the project status and last_updated fields
|
# Not optimal, but make sure the project status and last_updated fields
|
||||||
# are up to date here...
|
# are up to date here...
|
||||||
@@ -1248,6 +1269,11 @@ class InventoryList(ListCreateAPIView):
|
|||||||
model = Inventory
|
model = Inventory
|
||||||
serializer_class = InventorySerializer
|
serializer_class = InventorySerializer
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
qs = Inventory.accessible_objects(self.request.user, {'read': True})
|
||||||
|
qs = qs.select_related('admin_role', 'auditor_role', 'updater_role', 'executor_role')
|
||||||
|
return qs
|
||||||
|
|
||||||
class InventoryDetail(RetrieveUpdateDestroyAPIView):
|
class InventoryDetail(RetrieveUpdateDestroyAPIView):
|
||||||
|
|
||||||
model = Inventory
|
model = Inventory
|
||||||
|
|||||||
Reference in New Issue
Block a user