diff --git a/awx/api/serializers.py b/awx/api/serializers.py index f15eb775a4..dd06510d45 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -386,7 +386,7 @@ class UnifiedJobSerializer(BaseSerializer): def get_types(self): if type(self) is UnifiedJobSerializer: - return ['project_update', 'inventory_update', 'job'] + return ['project_update', 'inventory_update', 'job', 'system_job'] else: return super(UnifiedJobSerializer, self).get_types() @@ -413,6 +413,8 @@ class UnifiedJobSerializer(BaseSerializer): serializer_class = InventoryUpdateSerializer elif isinstance(obj, Job): serializer_class = JobSerializer + elif isinstance(obj, SystemJob): + serializer_class = SystemJobSerializer if serializer_class: serializer = serializer_class(instance=obj) ret = serializer.to_native(obj) @@ -444,6 +446,8 @@ class UnifiedJobListSerializer(UnifiedJobSerializer): serializer_class = InventoryUpdateListSerializer elif isinstance(obj, Job): serializer_class = JobListSerializer + elif isinstance(obj, SystemJob): + serializer_class = SystemJobListSerializer if serializer_class: serializer = serializer_class(instance=obj) ret = serializer.to_native(obj) diff --git a/awx/main/access.py b/awx/main/access.py index cb570a0ea9..9511c9a1b3 100644 --- a/awx/main/access.py +++ b/awx/main/access.py @@ -1163,9 +1163,11 @@ class UnifiedJobAccess(BaseAccess): project_update_qs = self.user.get_queryset(ProjectUpdate) inventory_update_qs = self.user.get_queryset(InventoryUpdate).filter(source__in=CLOUD_INVENTORY_SOURCES) job_qs = self.user.get_queryset(Job) + system_job_qs = self.user.get_queryset(SystemJob) qs = qs.filter(Q(ProjectUpdate___in=project_update_qs) | Q(InventoryUpdate___in=inventory_update_qs) | - Q(Job___in=job_qs)) + Q(Job___in=job_qs) | + Q(SystemJob___in=system_job_qs)) # FIXME: select/prefetch to optimize! return qs