From 3cf0179dc963d8b9a92ffd57c5f2fc3b872a035a Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 8 May 2013 12:35:33 +0530 Subject: [PATCH 1/3] [attachments] [fix] on adding and removing attachments, update the select fields with options attach_files: --- public/js/wn/form/attachments.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/public/js/wn/form/attachments.js b/public/js/wn/form/attachments.js index cb9788ac82..f277a79a3d 100644 --- a/public/js/wn/form/attachments.js +++ b/public/js/wn/form/attachments.js @@ -67,6 +67,9 @@ wn.ui.form.Attachments = Class.extend({ for(var i=0; i Date: Wed, 8 May 2013 17:40:10 +0530 Subject: [PATCH 2/3] [attachment select field] [fix] update select list when adding new attachment --- public/js/legacy/widgets/form/fields.js | 2 +- public/js/wn/form/attachments.js | 16 ++++++++++------ webnotes/widgets/form/run_method.py | 3 +++ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/public/js/legacy/widgets/form/fields.js b/public/js/legacy/widgets/form/fields.js index a7ebd8b09f..4f801d7e77 100644 --- a/public/js/legacy/widgets/form/fields.js +++ b/public/js/legacy/widgets/form/fields.js @@ -1088,7 +1088,7 @@ SelectField.prototype.make_input = function() { padding-left: 6px; padding-right: 6px; margin-left: 6px;'>\ ") .click(function() { - cur_frm.attachments.new_attachment(); + cur_frm.attachments.new_attachment(me.df.fieldname); }) .appendTo(this.input_area); } diff --git a/public/js/wn/form/attachments.js b/public/js/wn/form/attachments.js index f277a79a3d..7c43151c70 100644 --- a/public/js/wn/form/attachments.js +++ b/public/js/wn/form/attachments.js @@ -62,7 +62,7 @@ wn.ui.form.Attachments = Class.extend({ var file_list = this.get_file_list(); var file_names = keys(file_list).sort(); - + // add attachment objects for(var i=0; i Date: Thu, 9 May 2013 12:45:18 +0530 Subject: [PATCH 3/3] [rename] [fix] merge should be passed to on_rename method of controller for further processing --- core/doctype/doctype/doctype.py | 2 +- core/doctype/profile/profile.py | 2 +- webnotes/__init__.py | 4 ++-- webnotes/model/doc.py | 7 ++++--- webnotes/model/rename_doc.py | 19 +++++++++++-------- 5 files changed, 19 insertions(+), 15 deletions(-) diff --git a/core/doctype/doctype/doctype.py b/core/doctype/doctype/doctype.py index b0a1aebfbd..9ce5b630b2 100644 --- a/core/doctype/doctype/doctype.py +++ b/core/doctype/doctype/doctype.py @@ -111,7 +111,7 @@ class DocType: webnotes.conn.sql("delete from `tabProperty Setter` where doc_type = %s", self.doc.name) webnotes.conn.sql("delete from `tabSearch Criteria` where doc_type = %s", self.doc.name) - def on_rename(self, new, old): + def on_rename(self, new, old, merge=False): if self.doc.issingle: webnotes.conn.sql("""\ update tabSingles set doctype=%s diff --git a/core/doctype/profile/profile.py b/core/doctype/profile/profile.py index 725aa45d1c..fe6e1fca46 100644 --- a/core/doctype/profile/profile.py +++ b/core/doctype/profile/profile.py @@ -214,7 +214,7 @@ Thank you,
webnotes.conn.sql("""delete from `tabComment` where comment_doctype='Message' and (comment_docname=%s or owner=%s)""", (self.doc.name, self.doc.name)) - def on_rename(self,newdn,olddn): + def on_rename(self,newdn,olddn, merge=False): self.validate_rename(newdn, olddn) tables = webnotes.conn.sql("show tables") diff --git a/webnotes/__init__.py b/webnotes/__init__.py index 2d765d95dc..3538fdee59 100644 --- a/webnotes/__init__.py +++ b/webnotes/__init__.py @@ -342,9 +342,9 @@ def reload_doc(module, dt=None, dn=None): import webnotes.modules return webnotes.modules.reload_doc(module, dt, dn) -def rename_doc(doctype, old, new, debug=0, force=False): +def rename_doc(doctype, old, new, debug=0, force=False, merge=False): from webnotes.model.rename_doc import rename_doc - rename_doc(doctype, old, new, force=force) + rename_doc(doctype, old, new, force=force, merge=merge) def insert(doclist): import webnotes.model diff --git a/webnotes/model/doc.py b/webnotes/model/doc.py index 3b2313ddbb..92ae5f31fb 100755 --- a/webnotes/model/doc.py +++ b/webnotes/model/doc.py @@ -670,9 +670,10 @@ def copy_common_fields(from_doc, to_doc): if doctype_list.get_field(fieldname) and to_doc.fields[fieldname] != value: to_doc.fields[fieldname] = value -def validate_name(doctype, name, case=None): - if webnotes.conn.sql('select name from `tab%s` where name=%s' % (doctype,'%s'), name): - raise NameError, 'Name %s already exists' % name +def validate_name(doctype, name, case=None, merge=False): + if not merge: + if webnotes.conn.sql('select name from `tab%s` where name=%s' % (doctype,'%s'), name): + raise NameError, 'Name %s already exists' % name # no name if not name: return 'No Name Specified for %s' % doctype diff --git a/webnotes/model/rename_doc.py b/webnotes/model/rename_doc.py index 3f5da9d311..b2c4e8c3e8 100644 --- a/webnotes/model/rename_doc.py +++ b/webnotes/model/rename_doc.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals import webnotes from webnotes import _ -import webnotes.utils +from webnotes.utils import cint import webnotes.model.doctype from webnotes.model.doc import validate_name @@ -13,16 +13,19 @@ def rename_doc(doctype, old, new, force=False, merge=False): """ if not webnotes.conn.exists(doctype, old): return - + + force = cint(force) + merge = cint(merge) + # get doclist of given doctype doclist = webnotes.model.doctype.get(doctype) - new = validate_rename(doctype, new, doclist, merge, force) - # call on_rename obj = webnotes.get_obj(doctype, old) if hasattr(obj, 'on_rename'): - new = obj.on_rename(new, old) or new + new = obj.on_rename(new, old, merge) or new + + new = validate_rename(doctype, new, doclist, merge, force) if not merge: rename_parent_and_child(doctype, old, new, doclist) @@ -61,8 +64,8 @@ def validate_rename(doctype, new, doclist, merge, force): if merge and not exists: webnotes.msgprint("%s: %s does not exist, select a new target to merge." % (doctype, new), raise_exception=1) - - if not merge and exists: + + if (not merge) and exists: webnotes.msgprint("%s: %s exists, select a new, new name." % (doctype, new), raise_exception=1) if not webnotes.has_permission(doctype, "write"): @@ -72,7 +75,7 @@ def validate_rename(doctype, new, doclist, merge, force): webnotes.msgprint("%s cannot be renamed" % doctype, raise_exception=1) # validate naming like it's done in doc.py - new = validate_name(doctype, new) + new = validate_name(doctype, new, merge=merge) return new