fix: list view setting patch failures

- make idempotent
- ignore ordering (fails as it tries to query order which might not
  exist
This commit is contained in:
Ankush Menat 2023-02-03 13:06:09 +05:30
parent 90c4543065
commit b889bb5b5a

View file

@ -5,22 +5,27 @@ import frappe
def execute():
if frappe.db.table_exists("List View Setting"):
if not frappe.db.table_exists("List View Settings"):
frappe.reload_doc("desk", "doctype", "List View Settings")
if not frappe.db.table_exists("List View Setting"):
return
if not frappe.db.exists("DocType", "List View Setting"):
return
existing_list_view_settings = frappe.get_all("List View Settings", as_list=True)
for list_view_setting in frappe.get_all(
"List View Setting",
fields=["disable_count", "disable_sidebar_stats", "disable_auto_refresh", "name"],
):
name = list_view_setting.pop("name")
if name not in [x[0] for x in existing_list_view_settings]:
list_view_setting["doctype"] = "List View Settings"
list_view_settings = frappe.get_doc(list_view_setting)
# setting name here is necessary because autoname is set as prompt
list_view_settings.name = name
list_view_settings.insert()
frappe.reload_doc("desk", "doctype", "List View Settings")
frappe.delete_doc("DocType", "List View Setting", force=True)
frappe.db.commit()
existing_list_view_settings = frappe.get_all(
"List View Settings", as_list=True, order_by="modified"
)
for list_view_setting in frappe.get_all(
"List View Setting",
fields=["disable_count", "disable_sidebar_stats", "disable_auto_refresh", "name"],
order_by="modified",
):
name = list_view_setting.pop("name")
if name not in [x[0] for x in existing_list_view_settings]:
list_view_setting["doctype"] = "List View Settings"
list_view_settings = frappe.get_doc(list_view_setting)
# setting name here is necessary because autoname is set as prompt
list_view_settings.name = name
list_view_settings.insert()
frappe.delete_doc("DocType", "List View Setting", force=True)