mirror of
https://github.com/ansible/awx.git
synced 2026-01-16 04:10:44 -03:30
Move performance boost to access.py.
This commit is contained in:
parent
908b140d28
commit
e63716c0bb
@ -241,10 +241,7 @@ class ListAPIView(generics.ListAPIView, GenericAPIView):
|
||||
# Base class for a read-only list view.
|
||||
|
||||
def get_queryset(self):
|
||||
qs = self.request.user.get_queryset(self.model)
|
||||
if getattr(self.model, 'spawned_by_workflow', False):
|
||||
qs = qs.select_related('unified_job_node__workflow_job')
|
||||
return qs
|
||||
return self.request.user.get_queryset(self.model)
|
||||
|
||||
def paginate_queryset(self, queryset):
|
||||
page = super(ListAPIView, self).paginate_queryset(queryset)
|
||||
|
||||
@ -599,18 +599,18 @@ class UnifiedJobSerializer(BaseSerializer):
|
||||
elif isinstance(obj, AdHocCommand):
|
||||
res['stdout'] = reverse('api:ad_hoc_command_stdout', args=(obj.pk,))
|
||||
if obj.workflow_job_id:
|
||||
res['source_worklflow_job'] = reverse('api:workflow_job_detail', args=(obj.workflow_job_id,))
|
||||
res['source_workflow_job'] = reverse('api:workflow_job_detail', args=(obj.workflow_job_id,))
|
||||
return res
|
||||
|
||||
def get_summary_fields(self, obj):
|
||||
summary_fields = super(UnifiedJobSerializer, self).get_summary_fields(obj)
|
||||
if obj.spawned_by_workflow:
|
||||
summary_fields['source_worklflow_job'] = {}
|
||||
summary_fields['source_workflow_job'] = {}
|
||||
summary_obj = obj.unified_job_node.workflow_job
|
||||
for field in SUMMARIZABLE_FK_FIELDS['job']:
|
||||
val = getattr(summary_obj, field, None)
|
||||
if val is not None:
|
||||
summary_fields['source_worklflow_job'][field] = val
|
||||
summary_fields['source_workflow_job'][field] = val
|
||||
|
||||
return summary_fields
|
||||
|
||||
|
||||
@ -1847,6 +1847,8 @@ class UnifiedJobAccess(BaseAccess):
|
||||
qs = qs.prefetch_related(
|
||||
'unified_job_template',
|
||||
)
|
||||
if self.model.spawned_by_workflow:
|
||||
qs = qs.select_related('unified_job_node__workflow_job')
|
||||
|
||||
# WISH - sure would be nice if the following worked, but it does not.
|
||||
# In the future, as django and polymorphic libs are upgraded, try again.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user