mirror of
https://github.com/ansible/awx.git
synced 2026-02-26 07:26:03 -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:
@@ -4021,7 +4021,7 @@ class WorkflowJobTemplateNodeDetailSerializer(WorkflowJobTemplateNodeSerializer)
|
|||||||
Influence the api browser sample data to not include workflow_job_template
|
Influence the api browser sample data to not include workflow_job_template
|
||||||
when editing a WorkflowNode.
|
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?
|
Maybe something to do with workflow_job_template being a relational field?
|
||||||
'''
|
'''
|
||||||
def build_relational_field(self, field_name, relation_info):
|
def build_relational_field(self, field_name, relation_info):
|
||||||
@@ -5073,6 +5073,17 @@ class ActivityStreamSerializer(BaseSerializer):
|
|||||||
if fval is not None:
|
if fval is not None:
|
||||||
job_template_item[field] = fval
|
job_template_item[field] = fval
|
||||||
summary_fields['job_template'].append(job_template_item)
|
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':
|
if fk == 'schedule':
|
||||||
unified_job_template = getattr(thisItem, 'unified_job_template', None)
|
unified_job_template = getattr(thisItem, 'unified_job_template', None)
|
||||||
if unified_job_template is not 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
|
// 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 a resource still exists, it'll be serialized in the activity's summary_fields
|
||||||
if (!activity.summary_fields[resource]){
|
if (!activity.summary_fields[resource]){
|
||||||
|
console.log(activity);
|
||||||
throw {name : 'ResourceDeleted', message: 'The referenced resource no longer exists'};
|
throw {name : 'ResourceDeleted', message: 'The referenced resource no longer exists'};
|
||||||
}
|
}
|
||||||
|
let name;
|
||||||
switch (resource) {
|
switch (resource) {
|
||||||
case 'custom_inventory_script':
|
case 'custom_inventory_script':
|
||||||
url += 'inventory_scripts/' + obj.id + '/';
|
url += 'inventory_scripts/' + obj.id + '/';
|
||||||
@@ -75,6 +77,10 @@ export default function BuildAnchor($log, $filter) {
|
|||||||
case 'workflow_job_template':
|
case 'workflow_job_template':
|
||||||
url += `templates/workflow_job_template/${obj.id}`;
|
url += `templates/workflow_job_template/${obj.id}`;
|
||||||
break;
|
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':
|
case 'workflow_job':
|
||||||
url += `workflows/${obj.id}`;
|
url += `workflows/${obj.id}`;
|
||||||
break;
|
break;
|
||||||
@@ -92,7 +98,7 @@ export default function BuildAnchor($log, $filter) {
|
|||||||
url += resource + 's/' + obj.id + '/';
|
url += resource + 's/' + obj.id + '/';
|
||||||
}
|
}
|
||||||
|
|
||||||
const name = $filter('sanitize')(obj.name || obj.username);
|
name = $filter('sanitize')(name || obj.name || obj.username);
|
||||||
|
|
||||||
if (url) {
|
if (url) {
|
||||||
return ` <a href=\"${url}\"> ${name} </a> `;
|
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);
|
'from ' + activity.object1 + BuildAnchor(activity.summary_fields.group[0], activity.object1, activity);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
activity.description += 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') {
|
||||||
'from ' + activity.object1 + BuildAnchor(activity.summary_fields[activity.object1][0], activity.object1, activity);
|
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;
|
break;
|
||||||
// expected outcome "associated <object2> to <object1>"
|
// 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);
|
'to ' + activity.object2 + BuildAnchor(activity.summary_fields.group[1], activity.object2, activity);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
activity.description += 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') {
|
||||||
'to ' + activity.object2 + BuildAnchor(activity.summary_fields[activity.object2][0], activity.object2, activity);
|
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;
|
break;
|
||||||
case 'delete':
|
case 'delete':
|
||||||
|
|||||||
Reference in New Issue
Block a user