get WFJT nodes in activity stream

This commit is contained in:
AlanCoding 2017-01-27 13:46:21 -05:00
parent 6d590ca985
commit 0dbd9e4839
4 changed files with 9 additions and 4 deletions

View File

@ -2958,6 +2958,10 @@ class ActivityStreamSerializer(BaseSerializer):
changes = serializers.SerializerMethodField()
object_association = serializers.SerializerMethodField()
# Needed related fields that are not in the default summary fields
extra_listing = [
('workflow_job_template_node', ('id', 'unified_job_template_id'))
]
class Meta:
model = ActivityStream
@ -2999,7 +3003,7 @@ class ActivityStreamSerializer(BaseSerializer):
rel = {}
if obj.actor is not None:
rel['actor'] = reverse('api:user_detail', args=(obj.actor.pk,))
for fk, __ in SUMMARIZABLE_FK_FIELDS.items():
for fk, __ in SUMMARIZABLE_FK_FIELDS.items() + self.extra_listing:
if not hasattr(obj, fk):
continue
allm2m = getattr(obj, fk).all()
@ -3021,7 +3025,7 @@ class ActivityStreamSerializer(BaseSerializer):
def get_summary_fields(self, obj):
summary_fields = OrderedDict()
for fk, related_fields in SUMMARIZABLE_FK_FIELDS.items():
for fk, related_fields in SUMMARIZABLE_FK_FIELDS.items() + self.extra_listing:
try:
if not hasattr(obj, fk):
continue

View File

@ -3107,7 +3107,7 @@ class WorkflowJobTemplateActivityStreamList(WorkflowsEnforcementMixin, ActivityS
self.check_parent_access(parent)
qs = self.request.user.get_queryset(self.model)
return qs.filter(Q(workflow_job_template=parent) |
Q(workflow_job_template_node__workflow_job_template=parent))
Q(workflow_job_template_node__workflow_job_template=parent)).distinct()
class WorkflowJobList(WorkflowsEnforcementMixin, ListCreateAPIView):

View File

@ -2101,7 +2101,7 @@ class ActivityStreamAccess(BaseAccess):
'job_template', 'job', 'ad_hoc_command',
'notification_template', 'notification', 'label', 'role', 'actor',
'schedule', 'custom_inventory_script', 'unified_job_template',
'workflow_job_template', 'workflow_job')
'workflow_job_template', 'workflow_job', 'workflow_job_template_node')
if self.user.is_superuser or self.user.is_system_auditor:
return qs.all()

View File

@ -126,4 +126,5 @@ activity_stream_registrar.connect(Notification)
activity_stream_registrar.connect(Label)
activity_stream_registrar.connect(User)
activity_stream_registrar.connect(WorkflowJobTemplate)
activity_stream_registrar.connect(WorkflowJobTemplateNode)
activity_stream_registrar.connect(WorkflowJob)