Merge pull request #4997 from AlanCoding/node_tracking

Get WFJT nodes in activity stream
This commit is contained in:
Alan Rominger
2017-01-30 13:43:41 -05:00
committed by GitHub
4 changed files with 9 additions and 4 deletions

View File

@@ -2973,6 +2973,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
@@ -3014,7 +3018,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()
@@ -3036,7 +3040,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

@@ -3108,7 +3108,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

@@ -2109,7 +2109,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)