diff --git a/frappe/client.py b/frappe/client.py index 077d38e9c5df..71c26448fa93 100644 --- a/frappe/client.py +++ b/frappe/client.py @@ -189,21 +189,18 @@ def set_value(doctype: str, name: str | int, fieldname: str | dict[str, Any], va :param fieldname: fieldname string or JSON / dict with key value pair :param value: value if fieldname is JSON / dict""" - values = {} - if value is not None: - values = {fieldname: value} - elif isinstance(fieldname, dict): - values = fieldname - elif isinstance(fieldname, str): - try: - values = json.loads(fieldname) - except ValueError: - values = {fieldname: ""} + if fieldname in (frappe.model.default_fields + frappe.model.child_table_fields): + frappe.throw(_("Cannot edit standard fields")) - forbidden = set(frappe.model.default_fields + frappe.model.child_table_fields) - for field in values: - if field in forbidden: - frappe.throw(_("Cannot edit standard fields")) + if not value: + values = fieldname + if isinstance(fieldname, str): + try: + values = json.loads(fieldname) + except ValueError: + values = {fieldname: ""} + else: + values = {fieldname: value} # check for child table doctype if not frappe.get_meta(doctype).istable: @@ -253,11 +250,6 @@ def save(doc: str | dict[str, Any]): if isinstance(doc, str): doc = json.loads(doc) - forbidden = {"docstatus", "idx"} - for field in doc: - if field in forbidden: - frappe.throw(_("Cannot edit standard fields")) - doc = frappe.get_doc(doc) doc.save() diff --git a/frappe/public/scss/desk/list.scss b/frappe/public/scss/desk/list.scss index b05a5df47eaf..7b4c0106bacb 100644 --- a/frappe/public/scss/desk/list.scss +++ b/frappe/public/scss/desk/list.scss @@ -644,6 +644,7 @@ input.list-header-checkbox { .layout-main-section .frappe-list .result-container { .result { overflow: hidden; + display: block; input.list-row-checkbox, input.list-header-checkbox { width: 15px !important;