diff --git a/frappe/__init__.py b/frappe/__init__.py index 9e428561c8..24b899dcb0 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -17,7 +17,7 @@ from faker import Faker from .exceptions import * from .utils.jinja import (get_jenv, get_template, render_template, get_email_from_template, get_jloader) -__version__ = '10.1.53' +__version__ = '10.1.54' __title__ = "Frappe Framework" local = Local() diff --git a/frappe/contacts/report/addresses_and_contacts/addresses_and_contacts.py b/frappe/contacts/report/addresses_and_contacts/addresses_and_contacts.py index 94613a5e95..10a1f0f4cd 100644 --- a/frappe/contacts/report/addresses_and_contacts/addresses_and_contacts.py +++ b/frappe/contacts/report/addresses_and_contacts/addresses_and_contacts.py @@ -91,10 +91,10 @@ def get_reference_details(reference_doctype, reference_list, doctype, reference_ records = frappe.get_list(doctype, filters=filters, fields=fields, as_list=True) for d in records: - details = reference_details.get(d[0]) + details = reference_details.get(d[0]) or {} details.setdefault(frappe.scrub(doctype), []).append(d[1:]) return reference_details def add_blank_columns_for(doctype): - return ["" for field in field_map.get(doctype, [])] \ No newline at end of file + return ["" for field in field_map.get(doctype, [])] diff --git a/frappe/desk/page/setup_wizard/setup_wizard.py b/frappe/desk/page/setup_wizard/setup_wizard.py index eef203ab04..b7014c74b1 100755 --- a/frappe/desk/page/setup_wizard/setup_wizard.py +++ b/frappe/desk/page/setup_wizard/setup_wizard.py @@ -54,9 +54,12 @@ def setup_complete(args): and clears cache. If wizard breaks, calls `setup_wizard_exception` hook""" # Setup complete: do not throw an exception, let the user continue to desk - if cint(frappe.db.get_single_value('System Settings', 'setup_complete')): + if (frappe.cache().hget("setup_wizard", "in_setup") or + cint(frappe.db.get_single_value('System Settings', 'setup_complete'))): return + frappe.cache().hset("setup_wizard", "in_setup", True) + args = parse_args(args) stages = get_setup_stages(args) @@ -70,17 +73,19 @@ def setup_complete(args): for task in stage.get('tasks'): current_task = task task.get('fn')(task.get('args')) - except Exception: handle_setup_exception(args) return {'status': 'fail', 'fail': current_task.get('fail_msg')} else: run_setup_success(args) return {'status': 'ok'} + finally: + frappe.cache().hdel("setup_wizard", "in_setup") def update_global_settings(args): - if args.language and args.language != "english": + if args.language and args.language != "English": set_default_language(get_language_code(args.lang)) + frappe.db.commit() frappe.clear_cache() update_system_settings(args) @@ -236,6 +241,7 @@ def load_messages(language): javascript files""" frappe.clear_cache() set_default_language(get_language_code(language)) + frappe.db.commit() m = get_dict("page", "setup-wizard") for path in frappe.get_hooks("setup_wizard_requires"): diff --git a/frappe/translate.py b/frappe/translate.py index e92ab271eb..9ca08b042e 100644 --- a/frappe/translate.py +++ b/frappe/translate.py @@ -72,7 +72,8 @@ def get_lang_code(lang): def set_default_language(lang): """Set Global default language""" - frappe.db.set_default("lang", lang) + if frappe.db.get_default("lang") != lang: + frappe.db.set_default("lang", lang) frappe.local.lang = lang def get_all_languages(): diff --git a/requirements.txt b/requirements.txt index 3f44cdf2e4..fafdf4494a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -55,4 +55,5 @@ google-auth-oauthlib faker stripe coverage +urllib3==1.23 GitPython==2.1.11