feat: Display system updater reference on timeline

This commit is contained in:
Suraj Shetty 2020-02-06 10:43:44 +05:30
parent c132938883
commit 253cc87f24
3 changed files with 34 additions and 14 deletions

View file

@ -45,7 +45,11 @@ def get_diff(old, new, for_child=False):
# capture data import if set
data_import = new.flags.via_data_import
out = frappe._dict(changed = [], added = [], removed = [], row_changed = [], data_import=data_import)
updater_reference = new.flags.updater_reference
out = frappe._dict(changed = [], added = [], removed = [],
row_changed = [], data_import=data_import, updater_reference=updater_reference)
for df in new.meta.fields:
if df.fieldtype in no_value_fields and df.fieldtype not in table_fields:
continue

View file

@ -132,6 +132,10 @@ def get_context(context):
try:
if allow_update:
doc.set(self.set_property_after_alert, self.property_value)
doc.flags.updater_reference = {
'doctype': self.doctype,
'docname': self.name
}
doc.save()
except Exception as e:
frappe.log_error(title=_('Document update failed'), message=frappe.get_traceback())

View file

@ -560,12 +560,24 @@ frappe.ui.form.Timeline = class Timeline {
return;
}
let data_import_link = frappe.utils.get_form_link(
'Data Import Beta',
data.data_import,
true,
__('via Data Import')
);
let updater_reference_link = null;
if (data.data_import) {
updater_reference_link = frappe.utils.get_form_link(
'Data Import Beta',
data.data_import,
true,
__('via Data Import')
);
} else if (!$.isEmptyObject(data.updater_reference)) {
let updater_reference = data.updater_reference;
updater_reference_link = frappe.utils.get_form_link(
updater_reference.doctype,
updater_reference.docname,
true,
__('via {0}', [updater_reference.doctype])
);
}
// value changed in parent
if (data.changed && data.changed.length) {
@ -573,13 +585,13 @@ frappe.ui.form.Timeline = class Timeline {
data.changed.every(function(p) {
if (p[0]==='docstatus') {
if (p[2]==1) {
let message = data.data_import
? __('submitted this document {0}', [data_import_link])
let message = updater_reference_link
? __('submitted this document {0}', [updater_reference_link])
: __('submitted this document');
out.push(me.get_version_comment(version, message));
} else if (p[2]==2) {
let message = data.data_import
? __('cancelled this document {0}', [data_import_link])
let message = updater_reference_link
? __('cancelled this document {0}', [updater_reference_link])
: __('cancelled this document');
out.push(me.get_version_comment(version, message));
}
@ -600,10 +612,10 @@ frappe.ui.form.Timeline = class Timeline {
}
return parts.length < 3;
});
if(parts.length) {
if (parts.length) {
let message;
if (data.data_import) {
message = __("changed value of {0} {1}", [parts.join(', ').bold(), data_import_link]);
if (updater_reference_link) {
message = __("changed value of {0} {1}", [parts.join(', ').bold(), updater_reference_link]);
} else {
message = __("changed value of {0}", [parts.join(', ').bold()]);
}