fix: create or update default kanban view
This commit is contained in:
parent
f1ef71fe5a
commit
c06d534744
@ -91,20 +91,32 @@ def pin(name, value):
|
|||||||
def remove_duplicates(l):
|
def remove_duplicates(l):
|
||||||
return list(dict.fromkeys(l))
|
return list(dict.fromkeys(l))
|
||||||
|
|
||||||
def sync_default_list_rows(doctype):
|
def sync_default_rows(doctype, type="list"):
|
||||||
list = get_controller(doctype)
|
list = get_controller(doctype)
|
||||||
rows = []
|
rows = []
|
||||||
|
|
||||||
if hasattr(list, "default_list_data"):
|
if type == "kanban" and hasattr(list, "default_kanban_data"):
|
||||||
|
rows = list.default_kanban_data().get("rows")
|
||||||
|
elif hasattr(list, "default_list_data"):
|
||||||
rows = list.default_list_data().get("rows")
|
rows = list.default_list_data().get("rows")
|
||||||
|
|
||||||
return rows
|
return rows
|
||||||
|
|
||||||
def sync_default_list_columns(doctype):
|
def sync_default_columns(view):
|
||||||
list = get_controller(doctype)
|
list = get_controller(view.doctype)
|
||||||
columns = []
|
columns = []
|
||||||
|
|
||||||
if hasattr(list, "default_list_data"):
|
if view.type == "kanban" and view.column_field:
|
||||||
|
field_meta = frappe.get_meta(view.doctype).get_field(view.column_field)
|
||||||
|
if field_meta.fieldtype == "Link":
|
||||||
|
columns = frappe.get_all(
|
||||||
|
field_meta.options,
|
||||||
|
pluck="name",
|
||||||
|
order_by="modified asc",
|
||||||
|
)
|
||||||
|
elif field_meta.fieldtype == "Select":
|
||||||
|
columns = [option for option in field_meta.options.split("\n")]
|
||||||
|
elif hasattr(list, "default_list_data"):
|
||||||
columns = list.default_list_data().get("columns")
|
columns = list.default_list_data().get("columns")
|
||||||
|
|
||||||
return columns
|
return columns
|
||||||
@ -118,12 +130,12 @@ def create_or_update_default_view(view):
|
|||||||
columns = parse_json(view.columns or '[]')
|
columns = parse_json(view.columns or '[]')
|
||||||
rows = parse_json(view.rows or '[]')
|
rows = parse_json(view.rows or '[]')
|
||||||
|
|
||||||
default_rows = sync_default_list_rows(view.doctype)
|
default_rows = sync_default_rows(view.doctype, view.type)
|
||||||
rows = rows + default_rows if default_rows else rows
|
rows = rows + default_rows if default_rows else rows
|
||||||
rows = remove_duplicates(rows)
|
rows = remove_duplicates(rows)
|
||||||
|
|
||||||
if not columns:
|
if not columns:
|
||||||
columns = sync_default_list_columns(view.doctype)
|
columns = sync_default_columns(view)
|
||||||
|
|
||||||
doc = frappe.db.exists(
|
doc = frappe.db.exists(
|
||||||
"CRM View Settings",
|
"CRM View Settings",
|
||||||
@ -143,6 +155,7 @@ def create_or_update_default_view(view):
|
|||||||
doc.filters = json.dumps(filters)
|
doc.filters = json.dumps(filters)
|
||||||
doc.order_by = view.order_by
|
doc.order_by = view.order_by
|
||||||
doc.group_by_field = view.group_by_field
|
doc.group_by_field = view.group_by_field
|
||||||
|
doc.column_field = view.column_field
|
||||||
doc.columns = json.dumps(columns)
|
doc.columns = json.dumps(columns)
|
||||||
doc.rows = json.dumps(rows)
|
doc.rows = json.dumps(rows)
|
||||||
doc.save()
|
doc.save()
|
||||||
@ -159,6 +172,7 @@ def create_or_update_default_view(view):
|
|||||||
doc.filters = json.dumps(filters)
|
doc.filters = json.dumps(filters)
|
||||||
doc.order_by = view.order_by
|
doc.order_by = view.order_by
|
||||||
doc.group_by_field = view.group_by_field
|
doc.group_by_field = view.group_by_field
|
||||||
|
doc.column_field = view.column_field
|
||||||
doc.columns = json.dumps(columns)
|
doc.columns = json.dumps(columns)
|
||||||
doc.rows = json.dumps(rows)
|
doc.rows = json.dumps(rows)
|
||||||
doc.is_default = True
|
doc.is_default = True
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user