fix: address product bundle review comments

(cherry picked from commit d48a1e0d16)
This commit is contained in:
Mihir Kandoi
2026-06-22 15:53:52 +05:30
committed by Mergify
parent 5ff6071e7d
commit 02c11b6bec
3 changed files with 19 additions and 5 deletions

View File

@@ -14,7 +14,7 @@ frappe.listview_settings["Product Bundle"] = {
return [__("Active"), "green", "is_active,=,1|disabled,=,0|docstatus,=,1"];
}
if (doc.docstatus === 1 && !doc.is_active) {
return [__("Inactive"), "gray", "is_active,=,0|disabled,=,0|docstatus,=,1"];
return [__("Inactive"), "gray", "is_active,=,0|docstatus,=,1"];
}
>>>>>>> a218b8db8c (fix: submittable product bundle issues)
},

View File

@@ -144,6 +144,15 @@ class TestProductBundle(ERPNextTestSuite):
self.assertEqual(rows[0].stock_quantity, rows[0].quantity)
self.assertEqual(rows[0].stock_uom, rows[0].uom)
def test_item_where_used_report_hides_false_check_columns(self):
from erpnext.stock.report.item_where_used.item_where_used import get_columns
columns = get_columns([frappe._dict(stock_quantity=0, is_default=0)])
fieldnames = [column["fieldname"] for column in columns]
self.assertIn("stock_quantity", fieldnames)
self.assertNotIn("is_default", fieldnames)
def test_child_cannot_be_active_bundle(self):
make_product_bundle(self.parent, ["_Test PB Child A"])
outer = make_item("_Test PB Outer", {"is_stock_item": 0, "is_sales_item": 1}).name

View File

@@ -483,18 +483,23 @@ def hide_empty_optional_columns(columns, data):
fields_with_values = set()
for row in data:
for fieldname in optional_fields:
if field_has_value(row, fieldname):
fields_with_values.add(fieldname)
for column in columns:
fieldname = column["fieldname"]
if fieldname in optional_fields and field_has_value(row, column):
fields_with_values.add(column["fieldname"])
return [column for column in columns if column["fieldname"] not in optional_fields - fields_with_values]
def field_has_value(row, fieldname):
def field_has_value(row, column):
fieldname = column["fieldname"]
if fieldname not in row:
return False
value = row.get(fieldname)
if column.get("fieldtype") == "Check":
return bool(value)
return value is not None and value != ""