diff --git a/frappe/__init__.py b/frappe/__init__.py index 10da594bd5..f6aa7f9e1d 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -23,7 +23,7 @@ if sys.version[0] == '2': reload(sys) sys.setdefaultencoding("utf-8") -__version__ = '11.1.2' +__version__ = '11.1.3' __title__ = "Frappe Framework" local = Local() diff --git a/frappe/desk/query_report.py b/frappe/desk/query_report.py index 0bc1c939ef..8954a9d36c 100644 --- a/frappe/desk/query_report.py +++ b/frappe/desk/query_report.py @@ -191,7 +191,9 @@ def run(report_name, filters=None, user=None): def get_prepared_report_result(report, filters, dn="", user=None): latest_report_data = {} # Only look for completed prepared reports with given filters. - doc_list = frappe.get_all("Prepared Report", filters={"status": "Completed", "report_name": report.name, "filters": json.dumps(filters), "owner": user}) + doc_list = frappe.get_all("Prepared Report", + filters={"status": "Completed", "report_name": report.name, "filters": filters, "owner": user}) + doc = None if len(doc_list): if dn: diff --git a/frappe/patches.txt b/frappe/patches.txt index a79dbf2146..c8623b78de 100644 --- a/frappe/patches.txt +++ b/frappe/patches.txt @@ -234,4 +234,5 @@ frappe.patches.v11_0.migrate_report_settings_for_new_listview frappe.patches.v11_0.delete_all_prepared_reports frappe.patches.v11_0.fix_order_by_in_reports_json execute:frappe.delete_doc('Page', 'applications', ignore_missing=True) +frappe.patches.v11_0.set_missing_creation_and_modified_value_for_user_permissions frappe.patches.v12_0.set_primary_key_in_series diff --git a/frappe/patches/v11_0/remove_skip_for_doctype.py b/frappe/patches/v11_0/remove_skip_for_doctype.py index c3b9ffff80..edd385e317 100644 --- a/frappe/patches/v11_0/remove_skip_for_doctype.py +++ b/frappe/patches/v11_0/remove_skip_for_doctype.py @@ -43,9 +43,9 @@ def execute(): # only specific doctypes are selected # split this into multiple records and delete linked_doctypes = get_linked_doctypes(user_permission.allow, True).keys() - + linked_doctypes = list(linked_doctypes) - + # append the doctype for which we have build the user permission linked_doctypes += [user_permission.allow] @@ -56,14 +56,16 @@ def execute(): user_permission.skip_for_doctype = None for doctype in applicable_for_doctypes: if doctype: - # Maintain sequence (name, user, allow, for_value, applicable_for, apply_to_all_doctypes) + # Maintain sequence (name, user, allow, for_value, applicable_for, apply_to_all_doctypes, creation, modified) new_user_permissions_list.append(( frappe.generate_hash("", 10), user_permission.user, user_permission.allow, user_permission.for_value, doctype, - 0 + 0, + user_permission.creation, + user_permission.modified )) else: # No skip_for_doctype found! Just update apply_to_all_doctypes. @@ -72,7 +74,7 @@ def execute(): if new_user_permissions_list: frappe.db.sql(''' INSERT INTO `tabUser Permission` - (`name`, `user`, `allow`, `for_value`, `applicable_for`, `apply_to_all_doctypes`) + (`name`, `user`, `allow`, `for_value`, `applicable_for`, `apply_to_all_doctypes`, `creation`, `modified`) VALUES {} '''.format( # nosec ', '.join(['%s'] * len(new_user_permissions_list)) diff --git a/frappe/patches/v11_0/set_missing_creation_and_modified_value_for_user_permissions.py b/frappe/patches/v11_0/set_missing_creation_and_modified_value_for_user_permissions.py new file mode 100644 index 0000000000..84d6d6c994 --- /dev/null +++ b/frappe/patches/v11_0/set_missing_creation_and_modified_value_for_user_permissions.py @@ -0,0 +1,6 @@ +import frappe + +def execute(): + frappe.db.sql('''UPDATE `tabUser Permission` + SET `modified`=NOW(), `creation`=NOW() + WHERE `creation` IS NULL''') \ No newline at end of file