fix: allow creating/updating custom view

This commit is contained in:
Shariq Ansari 2024-06-21 16:15:08 +05:30
parent c06d534744
commit e86a5cf98d
2 changed files with 17 additions and 28 deletions

View File

@ -17,12 +17,12 @@ def create(view):
view.columns = parse_json(view.columns or '[]')
view.rows = parse_json(view.rows or '[]')
default_rows = sync_default_list_rows(view.doctype)
default_rows = sync_default_rows(view.doctype)
view.rows = view.rows + default_rows if default_rows else view.rows
view.rows = remove_duplicates(view.rows)
if not view.columns:
view.columns = sync_default_list_columns(view.doctype)
view.columns = sync_default_columns(view)
doc = frappe.new_doc("CRM View Settings")
doc.name = view.label
@ -36,6 +36,7 @@ def create(view):
doc.filters = json.dumps(view.filters)
doc.order_by = view.order_by
doc.group_by_field = view.group_by_field
doc.column_field = view.column_field
doc.columns = json.dumps(view.columns)
doc.rows = json.dumps(view.rows)
doc.insert()
@ -49,7 +50,7 @@ def update(view):
columns = parse_json(view.columns) or []
rows = parse_json(view.rows) or []
default_rows = sync_default_list_rows(view.doctype)
default_rows = sync_default_rows(view.doctype)
rows = rows + default_rows if default_rows else rows
rows = remove_duplicates(rows)
@ -62,6 +63,7 @@ def update(view):
doc.filters = json.dumps(filters)
doc.order_by = view.order_by
doc.group_by_field = view.group_by_field
doc.column_field = view.column_field
doc.columns = json.dumps(columns)
doc.rows = json.dumps(rows)
doc.save()

View File

@ -297,7 +297,6 @@ const { reload: reloadView, getView } = viewsStore()
const { isManager } = usersStore()
const list = defineModel()
const kanban = defineModel('kanban')
const loadMore = defineModel('loadMore')
const resizeColumn = defineModel('resizeColumn')
const updatedPageCount = defineModel('updatedPageCount')
@ -346,6 +345,7 @@ const view = ref({
icon: '',
filters: {},
order_by: 'modified desc',
column_field: 'status',
columns: '',
rows: '',
load_default_columns: false,
@ -399,23 +399,6 @@ function getParams() {
public: _view?.public || false,
}
let params = {}
if (route.params.viewType === 'kanban') {
params = {
column_field: column_field,
columns: columns,
rows: rows,
}
} else {
params = {
columns: columns,
rows: rows,
page_length: pageLength.value,
page_length_count: pageLengthCount.value,
}
}
return {
doctype: props.doctype,
filters: filters,
@ -426,7 +409,11 @@ function getParams() {
view_type: view_type,
group_by_field: group_by_field,
},
...params,
column_field: column_field,
columns: columns,
rows: rows,
page_length: pageLength.value,
page_length_count: pageLengthCount.value,
}
}
@ -441,17 +428,17 @@ list.value = createResource({
doctype: props.doctype,
filters: params.filters,
order_by: params.order_by,
page_length: params.page_length,
page_length_count: params.page_length_count,
column_field: params.column_field,
columns: data.columns,
rows: data.rows,
default_filters: props.filters,
view: {
custom_view_name: cv?.name || '',
view_type: cv?.type || route.params.viewType || 'list',
group_by_field: params?.view?.group_by_field || 'owner',
},
default_filters: props.filters,
column_field: params.column_field,
columns: data.columns,
rows: data.rows,
page_length: params.page_length,
page_length_count: params.page_length_count,
}
},
})