diff --git a/frappe/installer.py b/frappe/installer.py index 6f21267c2e..eb0bee903d 100755 --- a/frappe/installer.py +++ b/frappe/installer.py @@ -43,7 +43,7 @@ def install_db(root_login="root", root_password=None, db_name=None, source_sql=N create_auth_table() setup_global_search_table() - create_list_settings_table() + create_user_settings_table() frappe.flags.in_install_db = False @@ -70,7 +70,7 @@ def create_database_and_user(force, verbose): # close root connection frappe.db.close() -def create_list_settings_table(): +def create_user_settings_table(): frappe.db.sql_ddl("""create table if not exists __UserSettings ( `user` VARCHAR(180) NOT NULL, `doctype` VARCHAR(180) NOT NULL, diff --git a/frappe/patches.txt b/frappe/patches.txt index cb4a6e4970..c601da5697 100644 --- a/frappe/patches.txt +++ b/frappe/patches.txt @@ -143,7 +143,6 @@ frappe.patches.v7_0.set_user_fullname frappe.patches.v7_0.desktop_icons_hidden_by_admin_as_blocked frappe.patches.v7_0.add_communication_in_doc frappe.patches.v7_0.update_send_after_in_bulk_email -frappe.patches.v7_0.setup_list_settings execute:frappe.db.sql('''delete from `tabSingles` where doctype="Email Settings"''') # 2016-06-13 execute:frappe.db.sql("delete from `tabWeb Page` where ifnull(template_path, '')!=''") frappe.patches.v7_0.rename_newsletter_list_to_email_group @@ -169,7 +168,7 @@ execute:frappe.rename_doc('Country', 'Macedonia, Republic of', 'Macedonia', igno execute:frappe.rename_doc('Country', 'Iran, Islamic Republic of', 'Iran', ignore_if_exists=True) execute:frappe.rename_doc('Country', 'Tanzania, United Republic of', 'Tanzania', ignore_if_exists=True) execute:frappe.rename_doc('Country', 'Syrian Arab Republic', 'Syria', ignore_if_exists=True) -frappe.patches.v8_0.rename_listsettings_to_usersettings +frappe.patches.v8_0.rename_listsettings_to_usersettings #1 frappe.patches.v7_2.update_communications frappe.patches.v8_0.deprecate_integration_broker frappe.patches.v8_0.setup_email_inbox #2017-03-29 diff --git a/frappe/patches/v7_0/cleanup_list_settings.py b/frappe/patches/v7_0/cleanup_list_settings.py index 711b908c34..a68342e72e 100644 --- a/frappe/patches/v7_0/cleanup_list_settings.py +++ b/frappe/patches/v7_0/cleanup_list_settings.py @@ -1,20 +1,19 @@ -from frappe.installer import create_list_settings_table -from frappe.model.utils.list_settings import update_list_settings import frappe, json def execute(): - list_settings = frappe.db.sql("select user, doctype, data from __ListSettings", as_dict=1) - for ls in list_settings: - if ls and ls.data: - data = json.loads(ls.data) - if not data.has_key("fields"): - continue - fields = data["fields"] - for field in fields: - if "name as" in field: - fields.remove(field) - data["fields"] = fields + if frappe.db.table_exists("__ListSettings"): + list_settings = frappe.db.sql("select user, doctype, data from __ListSettings", as_dict=1) + for ls in list_settings: + if ls and ls.data: + data = json.loads(ls.data) + if not data.has_key("fields"): + continue + fields = data["fields"] + for field in fields: + if "name as" in field: + fields.remove(field) + data["fields"] = fields - frappe.db.sql("update __ListSettings set data = %s where user=%s and doctype=%s", - (json.dumps(data), ls.user, ls.doctype)) + frappe.db.sql("update __ListSettings set data = %s where user=%s and doctype=%s", + (json.dumps(data), ls.user, ls.doctype)) diff --git a/frappe/patches/v7_0/setup_list_settings.py b/frappe/patches/v7_0/setup_list_settings.py deleted file mode 100644 index 80bcd95810..0000000000 --- a/frappe/patches/v7_0/setup_list_settings.py +++ /dev/null @@ -1,16 +0,0 @@ -from frappe.installer import create_list_settings_table -from frappe.model.utils.list_settings import update_list_settings -import frappe, json - -def execute(): - create_list_settings_table() - - for user in frappe.db.get_all('User', {'user_type': 'System User'}): - defaults = frappe.defaults.get_defaults_for(user.name) - for key, value in defaults.iteritems(): - if key.startswith('_list_settings:'): - doctype = key.replace('_list_settings:', '') - columns = ['`tab{1}`.`{0}`'.format(*c) for c in json.loads(value)] - - update_list_settings(doctype, {'fields': columns}) - diff --git a/frappe/patches/v8_0/rename_listsettings_to_usersettings.py b/frappe/patches/v8_0/rename_listsettings_to_usersettings.py index 0db09f9dc2..df2e739851 100644 --- a/frappe/patches/v8_0/rename_listsettings_to_usersettings.py +++ b/frappe/patches/v8_0/rename_listsettings_to_usersettings.py @@ -1,26 +1,43 @@ +from frappe.installer import create_user_settings_table +from frappe.model.utils.user_settings import update_user_settings import frappe, json def execute(): - for us in frappe.db.sql('''select user, doctype, data from __ListSettings''', as_dict=True): - try: - data = json.loads(us.data) - except: - continue + if frappe.db.table_exists("__ListSettings"): + for us in frappe.db.sql('''select user, doctype, data from __ListSettings''', as_dict=True): + try: + data = json.loads(us.data) + except: + continue - if 'List' in data: - continue + if 'List' in data: + continue - if 'limit' in data: - data['page_length'] = data['limit'] - del data['limit'] + if 'limit' in data: + data['page_length'] = data['limit'] + del data['limit'] - new_data = dict(List=data) - new_data = json.dumps(new_data) + new_data = dict(List=data) + new_data = json.dumps(new_data) - frappe.db.sql('''update __ListSettings - set data=%(new_data)s - where user=%(user)s - and doctype=%(doctype)s''', - {'new_data': new_data, 'user': us.user, 'doctype': us.doctype}) + frappe.db.sql('''update __ListSettings + set data=%(new_data)s + where user=%(user)s + and doctype=%(doctype)s''', + {'new_data': new_data, 'user': us.user, 'doctype': us.doctype}) - frappe.db.sql("RENAME TABLE __ListSettings to __UserSettings") \ No newline at end of file + frappe.db.sql("RENAME TABLE __ListSettings to __UserSettings") + elif not frappe.db.table_exists("__UserSettings"): + create_user_settings_table() + + for user in frappe.db.get_all('User', {'user_type': 'System User'}): + defaults = frappe.defaults.get_defaults_for(user.name) + for key, value in defaults.iteritems(): + if key.startswith('_list_settings:'): + doctype = key.replace('_list_settings:', '') + columns = ['`tab{1}`.`{0}`'.format(*c) for c in json.loads(value)] + for col in columns: + if "name as" in col: + columns.remove(col) + + update_user_settings(doctype, {'fields': columns}) \ No newline at end of file