Merge pull request #4213 from cchurch/optimize-job-events

Optimize query for job events to speed up loading job details page.
This commit is contained in:
Chris Church
2016-12-02 16:27:25 -05:00
committed by GitHub
2 changed files with 18 additions and 8 deletions

View File

@@ -3504,6 +3504,17 @@ class JobJobEventsList(BaseJobEventsList):
parent_model = Job
def get_queryset(self):
job = self.get_parent_object()
self.check_parent_access(job)
qs = job.job_events.all()
qs = qs.select_related('host')
qs = qs.prefetch_related('hosts', 'children')
if self.request.user.is_superuser or self.request.user.is_system_auditor:
return qs.all()
host_qs = self.request.user.get_queryset(Host)
return qs.filter(Q(host__isnull=True) | Q(host__in=host_qs))
class JobJobPlaysList(BaseJobEventsList):