fix: added api's to create, update & delete CRM View Settings
This commit is contained in:
parent
0b791516a5
commit
95f16759dd
@ -8,29 +8,68 @@ from frappe.model.document import Document, get_controller
|
||||
class CRMViewSettings(Document):
|
||||
pass
|
||||
|
||||
@frappe.whitelist()
|
||||
def create(view, duplicate=False):
|
||||
view = frappe._dict(view)
|
||||
|
||||
if duplicate:
|
||||
view.filters = json.loads(view.filters)
|
||||
view.columns = json.loads(view.columns)
|
||||
view.rows = json.loads(view.rows)
|
||||
|
||||
doc = frappe.new_doc("CRM View Settings")
|
||||
doc.name = view.label
|
||||
doc.label = view.label
|
||||
doc.dt = view.doctype
|
||||
doc.user = frappe.session.user
|
||||
doc.filters = json.dumps(view.filters)
|
||||
doc.order_by = view.order_by
|
||||
doc.default_columns = view.default_columns or False
|
||||
|
||||
if not view.columns:
|
||||
view.columns = []
|
||||
if not view.rows:
|
||||
view.rows = []
|
||||
|
||||
default_rows = sync_default_list_rows(view.doctype)
|
||||
|
||||
if default_rows:
|
||||
view.rows = view.rows + default_rows
|
||||
|
||||
view.rows = remove_duplicates(view.rows)
|
||||
|
||||
doc.columns = json.dumps(view.columns)
|
||||
doc.rows = json.dumps(view.rows)
|
||||
doc.insert()
|
||||
return doc
|
||||
|
||||
@frappe.whitelist()
|
||||
def update(doctype, columns, rows):
|
||||
default_rows = sync_default_list_rows(doctype)
|
||||
def update(view):
|
||||
view = frappe._dict(view)
|
||||
default_rows = sync_default_list_rows(view.doctype)
|
||||
columns = view.columns or []
|
||||
filters = view.filters
|
||||
rows = view.rows or []
|
||||
default_columns = view.default_columns or False
|
||||
|
||||
if default_rows:
|
||||
rows = rows + default_rows
|
||||
|
||||
rows = remove_duplicates(rows)
|
||||
|
||||
if not frappe.db.exists("CRM View Settings", doctype):
|
||||
# create new CRM View Settings
|
||||
doc = frappe.new_doc("CRM View Settings")
|
||||
doc.name = doctype
|
||||
doc.columns = json.dumps(columns)
|
||||
doc.rows = json.dumps(rows)
|
||||
doc.insert()
|
||||
else:
|
||||
# update existing CRM View Settings
|
||||
doc = frappe.get_doc("CRM View Settings", doctype)
|
||||
doc.columns = json.dumps(columns)
|
||||
doc.rows = json.dumps(rows)
|
||||
doc.save()
|
||||
doc = frappe.get_doc("CRM View Settings", view.name)
|
||||
doc.default_columns = default_columns
|
||||
doc.filters = json.dumps(filters)
|
||||
doc.order_by = view.order_by
|
||||
doc.columns = json.dumps(columns)
|
||||
doc.rows = json.dumps(rows)
|
||||
doc.save()
|
||||
return doc
|
||||
|
||||
@frappe.whitelist()
|
||||
def delete(name):
|
||||
if frappe.db.exists("CRM View Settings", name):
|
||||
frappe.delete_doc("CRM View Settings", name)
|
||||
|
||||
def remove_duplicates(l):
|
||||
return list(dict.fromkeys(l))
|
||||
@ -43,8 +82,3 @@ def sync_default_list_rows(doctype):
|
||||
rows = list.default_list_data().get("rows")
|
||||
|
||||
return rows
|
||||
|
||||
@frappe.whitelist()
|
||||
def reset_to_default(doctype):
|
||||
if frappe.db.exists("CRM View Settings", doctype):
|
||||
frappe.delete_doc("CRM View Settings", doctype)
|
||||
Loading…
x
Reference in New Issue
Block a user