mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-14 02:31:21 +00:00
fix: misleading "Set Default X" fields after saving (#28798)
* fix: misleading "Set Default X" fields after saving * refactor: remove unncessary code and minor formatting * fix: extend to more doctypes and correct fieldnames Co-authored-by: Ankush Menat <ankush@frappe.io>
This commit is contained in:
@@ -162,6 +162,28 @@ class TransactionBase(StatusUpdater):
|
||||
|
||||
return ret
|
||||
|
||||
def reset_default_field_value(self, default_field: str, child_table: str, child_table_field: str):
|
||||
""" Reset "Set default X" fields on forms to avoid confusion.
|
||||
|
||||
example:
|
||||
doc = {
|
||||
"set_from_warehouse": "Warehouse A",
|
||||
"items": [{"from_warehouse": "warehouse B"}, {"from_warehouse": "warehouse A"}],
|
||||
}
|
||||
Since this has dissimilar values in child table, the default field will be erased.
|
||||
|
||||
doc.reset_default_field_value("set_from_warehouse", "items", "from_warehouse")
|
||||
"""
|
||||
child_table_values = set()
|
||||
|
||||
for row in self.get(child_table):
|
||||
child_table_values.add(row.get(child_table_field))
|
||||
|
||||
if len(child_table_values) > 1:
|
||||
self.set(default_field, None)
|
||||
else:
|
||||
self.set(default_field, list(child_table_values)[0])
|
||||
|
||||
def delete_events(ref_type, ref_name):
|
||||
events = frappe.db.sql_list(""" SELECT
|
||||
distinct `tabEvent`.name
|
||||
|
||||
Reference in New Issue
Block a user