fix: do not override field.options meta

This commit is contained in:
Shariq Ansari 2025-01-16 21:14:05 +05:30
parent 625ccf4c23
commit 5dc0864872

View File

@ -167,7 +167,7 @@ def get_doctype_fields_meta(DocField, doctype, allowed_fieldtypes, restricted_fi
DocField.options, DocField.options,
) )
.where(DocField[parent] == doctype) .where(DocField[parent] == doctype)
.where(DocField.hidden == False) .where(DocField.hidden == False) # noqa: E712
.where(Criterion.any([DocField.fieldtype == i for i in allowed_fieldtypes])) .where(Criterion.any([DocField.fieldtype == i for i in allowed_fieldtypes]))
.where(Criterion.all([DocField.fieldname != i for i in restricted_fields])) .where(Criterion.all([DocField.fieldname != i for i in restricted_fields]))
.run(as_dict=True) .run(as_dict=True)
@ -181,16 +181,17 @@ def get_quick_filters(doctype: str):
quick_filters = [] quick_filters = []
for field in fields: for field in fields:
if field.fieldtype == "Select": options = field.options
field.options = field.options.split("\n") if field.fieldtype == "Select" and options and isinstance(options, str):
field.options = [{"label": option, "value": option} for option in field.options] options = options.split("\n")
field.options.insert(0, {"label": "", "value": ""}) options = [{"label": option, "value": option} for option in options]
options.insert(0, {"label": "", "value": ""})
quick_filters.append( quick_filters.append(
{ {
"label": _(field.label), "label": _(field.label),
"name": field.fieldname, "name": field.fieldname,
"type": field.fieldtype, "type": field.fieldtype,
"options": field.options, "options": options,
} }
) )
@ -278,7 +279,7 @@ def get_data(
columns = frappe.parse_json(list_view_settings.columns) columns = frappe.parse_json(list_view_settings.columns)
rows = frappe.parse_json(list_view_settings.rows) rows = frappe.parse_json(list_view_settings.rows)
is_default = False is_default = False
elif not custom_view or is_default and hasattr(_list, "default_list_data"): elif not custom_view or (is_default and hasattr(_list, "default_list_data")):
rows = default_rows rows = default_rows
columns = _list.default_list_data().get("columns") columns = _list.default_list_data().get("columns")
@ -341,7 +342,7 @@ def get_data(
for kc in kanban_columns: for kc in kanban_columns:
column_filters = {column_field: kc.get("name")} column_filters = {column_field: kc.get("name")}
order = kc.get("order") order = kc.get("order")
if column_field in filters and filters.get(column_field) != kc.name or kc.get("delete"): if (column_field in filters and filters.get(column_field) != kc.name) or kc.get("delete"):
column_data = [] column_data = []
else: else:
column_filters.update(filters.copy()) column_filters.update(filters.copy())