fix a few nits w/ workflow approval activity stream records

This commit is contained in:
Ryan Petrello 2019-08-09 15:34:16 -04:00
parent d9f3fed06f
commit 4a75edf549
No known key found for this signature in database
GPG Key ID: F2AA5F2122351777
3 changed files with 15 additions and 8 deletions

View File

@ -4755,7 +4755,7 @@ class ActivityStreamSerializer(BaseSerializer):
('o_auth2_application', ('id', 'name', 'description')),
('credential_type', ('id', 'name', 'description', 'kind', 'managed_by_tower')),
('ad_hoc_command', ('id', 'name', 'status', 'limit')),
('workflow_approval', ('id', 'unified_job_id')),
('workflow_approval', ('id', 'name', 'unified_job_id')),
]
return field_list
@ -4864,7 +4864,7 @@ class ActivityStreamSerializer(BaseSerializer):
def _summarize_parent_ujt(self, obj, fk, summary_fields):
summary_keys = {'job': 'job_template',
'workflow_job_template_node': 'workflow_job_template',
'workflow_approval': 'workflow_approval_template',
'workflow_approval': 'workflow_job_template',
'schedule': 'unified_job_template'}
if fk not in summary_keys:
return

View File

@ -2807,8 +2807,7 @@ class WorkflowApprovalAccess(BaseAccess):
def can_approve_or_deny(self, obj):
if obj.status != 'pending':
return False
wfjt = obj.unified_job_node.workflow_job.unified_job_template
if self.user in wfjt.approval_role or self.user.is_superuser:
if self.user in obj.workflow_job_template.approval_role or self.user.is_superuser:
return True

View File

@ -683,12 +683,14 @@ class WorkflowApproval(UnifiedJob):
self.save()
changes = model_to_dict(self, model_serializer_mapping())
changes['status']=['pending', 'successful']
ActivityStream(
activity_entry = ActivityStream(
operation='update',
object1='workflow_approval',
actor=request.user,
changes=json.dumps(changes),
).save()
)
activity_entry.save()
getattr(activity_entry, 'workflow_approval').add(self.pk)
schedule_task_manager()
return reverse('api:workflow_approval_approve', kwargs={'pk': self.pk}, request=request)
@ -698,11 +700,17 @@ class WorkflowApproval(UnifiedJob):
self.save()
changes = model_to_dict(self, model_serializer_mapping())
changes['status']=['pending', 'failed']
ActivityStream(
activity_entry = ActivityStream(
operation='update',
object1='workflow_approval',
actor=request.user,
changes=json.dumps(changes),
).save()
)
activity_entry.save()
getattr(activity_entry, 'workflow_approval').add(self.pk)
schedule_task_manager()
return reverse('api:workflow_approval_deny', kwargs={'pk': self.pk}, request=request)
@property
def workflow_job_template(self):
return self.unified_job_node.workflow_job.unified_job_template