From 6d5d653006bd8eabffef3db7bcd3ec196e507399 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 9 May 2014 19:21:23 +0530 Subject: [PATCH] show message for duplicate name error --- frappe/model/base_document.py | 1 + .../public/js/frappe/form/script_manager.js | 32 ++++++++++++------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/frappe/model/base_document.py b/frappe/model/base_document.py index 9b48f37228..ff4a432064 100644 --- a/frappe/model/base_document.py +++ b/frappe/model/base_document.py @@ -189,6 +189,7 @@ class BaseDocument(object): except Exception, e: if e.args[0]==1062: type, value, traceback = sys.exc_info() + frappe.msgprint(_("Duplicate name {0} {1}".format(self.doctype, self.name))) raise frappe.NameError, (self.doctype, self.name, e), traceback else: raise diff --git a/frappe/public/js/frappe/form/script_manager.js b/frappe/public/js/frappe/form/script_manager.js index 69b9a75a82..93cd5c8663 100644 --- a/frappe/public/js/frappe/form/script_manager.js +++ b/frappe/public/js/frappe/form/script_manager.js @@ -26,7 +26,7 @@ frappe.ui.form.ScriptManager = Class.extend({ name = name || this.frm.docname; handlers = this.get_handlers(event_name, doctype, name, callback); if(callback) handlers.push(callback); - + $.each(handlers, function(i, fn) { fn(); }) @@ -38,7 +38,7 @@ frappe.ui.form.ScriptManager = Class.extend({ $.each(frappe.ui.form.handlers[doctype][event_name], function(i, fn) { handlers.push(function() { fn(me.frm, doctype, name) }); }); - } + } if(this.frm.cscript[event_name]) { handlers.push(function() { me.frm.cscript[event_name](me.frm.doc, doctype, name); }); } @@ -49,6 +49,7 @@ frappe.ui.form.ScriptManager = Class.extend({ }, setup: function() { var doctype = this.frm.meta; + var me = this; // js var cs = doctype.__js; @@ -56,6 +57,15 @@ frappe.ui.form.ScriptManager = Class.extend({ var tmp = eval(cs); } + // setup add fetch + $.each(this.frm.fields, function(i, field) { + var df = field.df; + if(df.fieldtype==="Read Only" && df.options && df.options.indexOf(".")!=-1) { + var parts = df.options.split("."); + me.frm.add_fetch(parts[0], parts[1], df.fieldname); + } + }); + // css doctype.__css && frappe.dom.set_style(doctype.__css); }, @@ -72,25 +82,25 @@ frappe.ui.form.ScriptManager = Class.extend({ }, validate_link_and_fetch: function(df, docname, value, callback) { var me = this; - + if(value) { var fetch = ''; - + if(this.frm && this.frm.fetch_dict[df.fieldname]) fetch = this.frm.fetch_dict[df.fieldname].columns.join(', '); - + return frappe.call({ method:'frappe.widgets.form.utils.validate_link', type: "GET", args: { - 'value': value, - 'options': df.options, + 'value': value, + 'options': df.options, 'fetch': fetch - }, + }, no_spinner: true, callback: function(r) { if(r.message=='Ok') { - if(r.fetch_values) + if(r.fetch_values) me.set_fetch_values(df, docname, r.fetch_values); if(callback) callback(value); } else { @@ -111,9 +121,9 @@ frappe.ui.form.ScriptManager = Class.extend({ copy_from_first_row: function(parentfield, current_row, fieldnames) { var doclist = this.frm.doc[parentfield]; if(doclist.length===1 || doclist[0]===current_row) return; - + $.each(fieldnames, function(i, fieldname) { current_row[fieldname] = doclist[0][fieldname]; }); } -}); \ No newline at end of file +});