diff --git a/patches/april_2013/p05_update_file_data.py b/patches/april_2013/p05_update_file_data.py index 986e5b9b536..1ff48fa60e8 100644 --- a/patches/april_2013/p05_update_file_data.py +++ b/patches/april_2013/p05_update_file_data.py @@ -5,28 +5,36 @@ def execute(): webnotes.reload_doc("core", "doctype", "file_data") webnotes.reset_perms("File Data") - singles = webnotes.conn.sql_list("""select name from tabDocType - where ifnull(issingle,0)=1""") + singles = get_single_doctypes() + for doctype in webnotes.conn.sql_list("""select parent from tabDocField where fieldname='file_list' and fieldtype='Text'"""): - if doctype in singles: - doc = webnotes.doc(doctype, doctype) - if doc.file_list: - update_for_doc(doctype, doc) - webnotes.conn.set_value(doctype, None, "file_list", None) - else: - try: - for doc in webnotes.conn.sql("""select name, file_list from `tab%s` where - ifnull(file_list, '')!=''""" % doctype, as_dict=True): - update_for_doc(doctype, doc) - webnotes.conn.commit() - webnotes.conn.sql("""alter table `tab%s` drop column file_list""" % doctype) - except Exception, e: - if e.args[0]!=1054: raise e + update_file_list(doctype, singles) webnotes.conn.sql("""delete from tabDocField where fieldname='file_list' and parent=%s""", doctype) + # export_to_files([["DocType", doctype]]) + +def get_single_doctypes(): + return webnotes.conn.sql_list("""select name from tabDocType + where ifnull(issingle,0)=1""") + +def update_file_list(doctype, singles): + if doctype in singles: + doc = webnotes.doc(doctype, doctype) + if doc.file_list: + update_for_doc(doctype, doc) + webnotes.conn.set_value(doctype, None, "file_list", None) + else: + try: + for doc in webnotes.conn.sql("""select name, file_list from `tab%s` where + ifnull(file_list, '')!=''""" % doctype, as_dict=True): + update_for_doc(doctype, doc) + webnotes.conn.commit() + webnotes.conn.sql("""alter table `tab%s` drop column file_list""" % doctype) + except Exception, e: + if e.args[0]!=1054: raise e def update_for_doc(doctype, doc): for filedata in doc.file_list.split("\n"): diff --git a/patches/patch_list.py b/patches/patch_list.py index a6dd0a217b3..096fec80abf 100644 --- a/patches/patch_list.py +++ b/patches/patch_list.py @@ -247,4 +247,5 @@ patch_list = [ "execute:webnotes.reload_doc('Stock', 'DocType', 'Delivery Note Item')", "patches.april_2013.p06_default_cost_center", "execute:webnotes.reset_perms('File Data')", + "patches.april_2013.p07_update_file_data_custom_field", ] \ No newline at end of file