diff --git a/frappe/public/js/frappe/model/create_new.js b/frappe/public/js/frappe/model/create_new.js index 097f293124..0742eb6ec2 100644 --- a/frappe/public/js/frappe/model/create_new.js +++ b/frappe/public/js/frappe/model/create_new.js @@ -34,6 +34,10 @@ $.extend(frappe.model, { frappe.model.add_to_locals(doc); + if (!parent_doc) { + doc.__run_link_triggers = 1; + } + return doc; }, @@ -228,9 +232,6 @@ $.extend(frappe.model, { callback: function(r) { if(!r.exc) { frappe.model.sync(r.message); - var doc = frappe.model.get_doc(r.message.doctype, r.message.name); - doc.__mapped = true; - frappe.set_route("Form", r.message.doctype, r.message.name); } } diff --git a/frappe/public/js/legacy/form.js b/frappe/public/js/legacy/form.js index 233d09bd69..dde16297c4 100644 --- a/frappe/public/js/legacy/form.js +++ b/frappe/public/js/legacy/form.js @@ -550,13 +550,15 @@ _f.Frm.prototype.setnewdoc = function() { _f.Frm.prototype.trigger_link_fields = function() { // trigger link fields which have default values set - if (this.is_new() && !this.doc.__mapped) { + if (this.is_new() && this.doc.__run_link_triggers) { $.each(this.fields_dict, function(fieldname, field) { if (field.df.fieldtype=="Link" && this.doc[fieldname]) { // triggers add fetch, sets value in model and runs triggers field.set_value(this.doc[fieldname]); } }); + + delete this.doc.__run_link_triggers; } }