diff --git a/frappe/core/doctype/user_type/user_type.py b/frappe/core/doctype/user_type/user_type.py index c1fd678141..6a07b5a23b 100644 --- a/frappe/core/doctype/user_type/user_type.py +++ b/frappe/core/doctype/user_type/user_type.py @@ -36,11 +36,8 @@ class UserType(Document): if not self.user_doctypes: return - modules = frappe.get_all("DocType", - fields=["module"], - filters={"name": ("in", [d.document_type for d in self.user_doctypes])}, - distinct=True, - ) + modules = frappe.get_all('DocType', fields=['distinct module as module'], + filters={'name': ('in', [d.document_type for d in self.user_doctypes])}, group_by='module') self.set('user_type_modules', []) for row in modules: diff --git a/frappe/desk/doctype/dashboard/dashboard.py b/frappe/desk/doctype/dashboard/dashboard.py index 0dfd458a37..833447a00b 100644 --- a/frappe/desk/doctype/dashboard/dashboard.py +++ b/frappe/desk/doctype/dashboard/dashboard.py @@ -14,7 +14,7 @@ class Dashboard(Document): if self.is_default: # make all other dashboards non-default frappe.db.sql('''update - tabDashboard set is_default = 0 where name != %s''', self.name) + `tabDashboard` set is_default = 0 where name != %s''', self.name) if frappe.conf.developer_mode and self.is_standard: export_to_files(record_list=[['Dashboard', self.name, self.module + ' Dashboard']], record_module=self.module) diff --git a/frappe/desk/page/setup_wizard/setup_wizard.py b/frappe/desk/page/setup_wizard/setup_wizard.py index 83a5e16009..6d7ecce462 100755 --- a/frappe/desk/page/setup_wizard/setup_wizard.py +++ b/frappe/desk/page/setup_wizard/setup_wizard.py @@ -388,7 +388,6 @@ def make_records(records, debug=False): # LOG every success and failure for record in records: - doctype = record.get("doctype") condition = record.get('__condition') @@ -405,6 +404,7 @@ def make_records(records, debug=False): try: doc.insert(ignore_permissions=True) + frappe.db.commit() except frappe.DuplicateEntryError as e: # print("Failed to insert duplicate {0} {1}".format(doctype, doc.name)) diff --git a/frappe/model/db_query.py b/frappe/model/db_query.py index 16c0d18d9f..3c5d6e81ac 100644 --- a/frappe/model/db_query.py +++ b/frappe/model/db_query.py @@ -128,6 +128,20 @@ class DatabaseQuery(object): args.fields = 'distinct ' + args.fields args.order_by = '' # TODO: recheck for alternative + if args.order_by and args.group_by: + order_field = args.order_by + + for r in (" order by ", " asc", " ASC", " desc", " DESC"): + order_field = order_field.replace(r, "") + + if not order_field in args.fields: + order_fieldm = order_field.replace("`", "") + if "." in order_fieldm: + args.fields += ", MAX(" + order_fieldm.split(".")[1] + ") as `" + order_fieldm + "`" + else: + args.fields += ", MAX(" + order_fieldm + ") as `" + order_fieldm + "`" + args.order_by = args.order_by.replace(order_field, "`" + order_fieldm + "`") + query = """select %(fields)s from %(tables)s %(conditions)s