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):
|
class CRMViewSettings(Document):
|
||||||
pass
|
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()
|
@frappe.whitelist()
|
||||||
def update(doctype, columns, rows):
|
def update(view):
|
||||||
default_rows = sync_default_list_rows(doctype)
|
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:
|
if default_rows:
|
||||||
rows = rows + default_rows
|
rows = rows + default_rows
|
||||||
|
|
||||||
rows = remove_duplicates(rows)
|
rows = remove_duplicates(rows)
|
||||||
|
|
||||||
if not frappe.db.exists("CRM View Settings", doctype):
|
doc = frappe.get_doc("CRM View Settings", view.name)
|
||||||
# create new CRM View Settings
|
doc.default_columns = default_columns
|
||||||
doc = frappe.new_doc("CRM View Settings")
|
doc.filters = json.dumps(filters)
|
||||||
doc.name = doctype
|
doc.order_by = view.order_by
|
||||||
doc.columns = json.dumps(columns)
|
doc.columns = json.dumps(columns)
|
||||||
doc.rows = json.dumps(rows)
|
doc.rows = json.dumps(rows)
|
||||||
doc.insert()
|
doc.save()
|
||||||
else:
|
return doc
|
||||||
# update existing CRM View Settings
|
|
||||||
doc = frappe.get_doc("CRM View Settings", doctype)
|
@frappe.whitelist()
|
||||||
doc.columns = json.dumps(columns)
|
def delete(name):
|
||||||
doc.rows = json.dumps(rows)
|
if frappe.db.exists("CRM View Settings", name):
|
||||||
doc.save()
|
frappe.delete_doc("CRM View Settings", name)
|
||||||
|
|
||||||
def remove_duplicates(l):
|
def remove_duplicates(l):
|
||||||
return list(dict.fromkeys(l))
|
return list(dict.fromkeys(l))
|
||||||
@ -43,8 +82,3 @@ def sync_default_list_rows(doctype):
|
|||||||
rows = list.default_list_data().get("rows")
|
rows = list.default_list_data().get("rows")
|
||||||
|
|
||||||
return 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