Updating job list api endpoints to be able to display system jobs if you

can see them and any have run
This commit is contained in:
Matthew Jones 2014-10-17 14:56:17 -04:00
parent bfce078ce4
commit ce50376c7f
2 changed files with 8 additions and 2 deletions

View File

@ -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)

View File

@ -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