mirror of
https://github.com/ansible/awx.git
synced 2026-01-13 19:10:07 -03:30
Merge pull request #3447 from beeankha/node_activity_stream
WFJT Node Activity Stream Bug Fix Reviewed-by: https://github.com/softwarefactory-project-zuul[bot]
This commit is contained in:
commit
ace459cf70
@ -4021,7 +4021,7 @@ class WorkflowJobTemplateNodeDetailSerializer(WorkflowJobTemplateNodeSerializer)
|
||||
Influence the api browser sample data to not include workflow_job_template
|
||||
when editing a WorkflowNode.
|
||||
|
||||
Note: I was not able to accomplish this trough the use of extra_kwargs.
|
||||
Note: I was not able to accomplish this through the use of extra_kwargs.
|
||||
Maybe something to do with workflow_job_template being a relational field?
|
||||
'''
|
||||
def build_relational_field(self, field_name, relation_info):
|
||||
@ -5073,6 +5073,17 @@ class ActivityStreamSerializer(BaseSerializer):
|
||||
if fval is not None:
|
||||
job_template_item[field] = fval
|
||||
summary_fields['job_template'].append(job_template_item)
|
||||
if fk == 'workflow_job_template_node':
|
||||
summary_fields['workflow_job_template'] = []
|
||||
workflow_job_template_item = {}
|
||||
workflow_job_template_fields = SUMMARIZABLE_FK_FIELDS['workflow_job_template']
|
||||
workflow_job_template = getattr(thisItem, 'workflow_job_template', None)
|
||||
if workflow_job_template is not None:
|
||||
for field in workflow_job_template_fields:
|
||||
fval = getattr(workflow_job_template, field, None)
|
||||
if fval is not None:
|
||||
workflow_job_template_item[field] = fval
|
||||
summary_fields['workflow_job_template'].append(workflow_job_template_item)
|
||||
if fk == 'schedule':
|
||||
unified_job_template = getattr(thisItem, 'unified_job_template', None)
|
||||
if unified_job_template is not None:
|
||||
|
||||
@ -10,8 +10,10 @@ export default function BuildAnchor($log, $filter) {
|
||||
// catch-all case to avoid generating urls if a resource has been deleted
|
||||
// if a resource still exists, it'll be serialized in the activity's summary_fields
|
||||
if (!activity.summary_fields[resource]){
|
||||
console.log(activity);
|
||||
throw {name : 'ResourceDeleted', message: 'The referenced resource no longer exists'};
|
||||
}
|
||||
let name;
|
||||
switch (resource) {
|
||||
case 'custom_inventory_script':
|
||||
url += 'inventory_scripts/' + obj.id + '/';
|
||||
@ -75,6 +77,10 @@ export default function BuildAnchor($log, $filter) {
|
||||
case 'workflow_job_template':
|
||||
url += `templates/workflow_job_template/${obj.id}`;
|
||||
break;
|
||||
case 'workflow_job_template_node':
|
||||
url += `templates/workflow_job_template/${activity.summary_fields.workflow_job_template[0].id}`;
|
||||
name = activity.summary_fields.workflow_job_template[0].name;
|
||||
break;
|
||||
case 'workflow_job':
|
||||
url += `workflows/${obj.id}`;
|
||||
break;
|
||||
@ -92,7 +98,7 @@ export default function BuildAnchor($log, $filter) {
|
||||
url += resource + 's/' + obj.id + '/';
|
||||
}
|
||||
|
||||
const name = $filter('sanitize')(obj.name || obj.username);
|
||||
name = $filter('sanitize')(name || obj.name || obj.username);
|
||||
|
||||
if (url) {
|
||||
return ` <a href=\"${url}\"> ${name} </a> `;
|
||||
|
||||
@ -85,8 +85,12 @@ export default function BuildDescription(BuildAnchor, $log, i18n) {
|
||||
'from ' + activity.object1 + BuildAnchor(activity.summary_fields.group[0], activity.object1, activity);
|
||||
}
|
||||
else {
|
||||
activity.description += activity.object2 + BuildAnchor(activity.summary_fields[activity.object2][0], activity.object2, activity) +
|
||||
'from ' + activity.object1 + BuildAnchor(activity.summary_fields[activity.object1][0], activity.object1, activity);
|
||||
if (activity.object1 === 'workflow_job_template_node' && activity.object2 === 'workflow_job_template_node') {
|
||||
activity.description += 'two nodes on workflow' + BuildAnchor(activity.summary_fields[activity.object1[0]], activity.object1, activity);
|
||||
} else {
|
||||
activity.description += activity.object2 + BuildAnchor(activity.summary_fields[activity.object2][0], activity.object2, activity) +
|
||||
'from ' + activity.object1 + BuildAnchor(activity.summary_fields[activity.object1][0], activity.object1, activity);
|
||||
}
|
||||
}
|
||||
break;
|
||||
// expected outcome "associated <object2> to <object1>"
|
||||
@ -97,8 +101,12 @@ export default function BuildDescription(BuildAnchor, $log, i18n) {
|
||||
'to ' + activity.object2 + BuildAnchor(activity.summary_fields.group[1], activity.object2, activity);
|
||||
}
|
||||
else {
|
||||
activity.description += activity.object1 + BuildAnchor(activity.summary_fields[activity.object1][0], activity.object1, activity) +
|
||||
'to ' + activity.object2 + BuildAnchor(activity.summary_fields[activity.object2][0], activity.object2, activity);
|
||||
if (activity.object1 === 'workflow_job_template_node' && activity.object2 === 'workflow_job_template_node') {
|
||||
activity.description += 'two nodes on workflow' + BuildAnchor(activity.summary_fields[activity.object1[0]], activity.object1, activity);
|
||||
} else {
|
||||
activity.description += activity.object1 + BuildAnchor(activity.summary_fields[activity.object1][0], activity.object1, activity) +
|
||||
'to ' + activity.object2 + BuildAnchor(activity.summary_fields[activity.object2][0], activity.object2, activity);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'delete':
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user