diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 7bd09f56af..ef6f08ebd0 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -2983,12 +2983,13 @@ class JobTemplateMixin(object): ''' def _recent_jobs(self, obj): - if hasattr(obj, 'workflow_jobs'): - job_mgr = obj.workflow_jobs - else: - job_mgr = obj.jobs - return [{'id': x.id, 'status': x.status, 'finished': x.finished} - for x in job_mgr.all().order_by('-created')[:10]] + job_mgr = obj.unifiedjob_unified_jobs.non_polymorphic().exclude(job__job_slice_count__gt=1).only( + 'id', 'status', 'finished', 'polymorphic_ctype_id') + type_mapping = {} + for model, ct in ContentType.objects.get_for_models(*UnifiedJob.__subclasses__()).iteritems(): + type_mapping[ct.pk] = model._meta.verbose_name + return [{'id': x.id, 'status': x.status, 'finished': x.finished, 'type': type_mapping[x.polymorphic_ctype_id]} + for x in job_mgr.order_by('-created')[:10]] def get_summary_fields(self, obj): d = super(JobTemplateMixin, self).get_summary_fields(obj) diff --git a/awx/main/tests/unit/api/serializers/test_job_template_serializers.py b/awx/main/tests/unit/api/serializers/test_job_template_serializers.py index a6f41debb9..8b02c5ef8b 100644 --- a/awx/main/tests/unit/api/serializers/test_job_template_serializers.py +++ b/awx/main/tests/unit/api/serializers/test_job_template_serializers.py @@ -71,12 +71,20 @@ class TestJobTemplateSerializerGetRelated(): class TestJobTemplateSerializerGetSummaryFields(): def test__recent_jobs(self, mocker, job_template, jobs): - job_template.jobs.all = mocker.MagicMock(**{'order_by.return_value': jobs}) - job_template.jobs.all.return_value = job_template.jobs.all + job_template.unifiedjob_unified_jobs = mocker.MagicMock(**{ + 'non_polymorphic.return_value': mocker.MagicMock(**{ + 'only.return_value': mocker.MagicMock(**{ + 'order_by.return_value': jobs + }) + }) + }) serializer = JobTemplateSerializer() recent_jobs = serializer._recent_jobs(job_template) + job_template.unifiedjob_unified_jobs.non_polymorphic.assert_called_once_with() + job_template.unifiedjob_unified_jobs.non_polymorphic().only().order_by.assert_called_once_with('-created') + job_template.jobs.all.assert_called_once_with() job_template.jobs.all.order_by.assert_called_once_with('-created') assert len(recent_jobs) == 10