Merge pull request #55409 from frappe/mergify/bp/version-16-hotfix/pr-55397

fix: item master list view UI cleanup (backport #55397)
This commit is contained in:
Khushi Rawat
2026-05-29 16:30:05 +05:30
committed by GitHub
2 changed files with 44 additions and 5 deletions

View File

@@ -236,7 +236,7 @@
"description": "ERPNext will make a stock ledger entry for each transaction of this item. Keep unchecked for non-stock or service items.", "description": "ERPNext will make a stock ledger entry for each transaction of this item. Keep unchecked for non-stock or service items.",
"fieldname": "is_stock_item", "fieldname": "is_stock_item",
"fieldtype": "Check", "fieldtype": "Check",
"in_list_view": 1, "in_list_view": 0,
"label": "Maintain Stock", "label": "Maintain Stock",
"oldfieldname": "is_stock_item", "oldfieldname": "is_stock_item",
"oldfieldtype": "Select", "oldfieldtype": "Select",
@@ -279,7 +279,8 @@
"fieldname": "is_fixed_asset", "fieldname": "is_fixed_asset",
"fieldtype": "Check", "fieldtype": "Check",
"label": "Is Fixed Asset", "label": "Is Fixed Asset",
"read_only_depends_on": "eval:doc.is_stock_item" "read_only_depends_on": "eval:doc.is_stock_item",
"in_list_view": 1
}, },
{ {
"allow_in_quick_entry": 1, "allow_in_quick_entry": 1,
@@ -592,7 +593,7 @@
"oldfieldtype": "Currency" "oldfieldtype": "Currency"
}, },
{ {
"description": "Minimum stock level to maintain as a buffer. Used to calculate recommended reorder level: Reorder Level = Safety Stock + (Average Daily Consumption \u00d7 Lead Time).", "description": "Minimum stock level to maintain as a buffer. Used to calculate recommended reorder level: Reorder Level = Safety Stock + (Average Daily Consumption × Lead Time).",
"fieldname": "safety_stock", "fieldname": "safety_stock",
"fieldtype": "Float", "fieldtype": "Float",
"label": "Safety Stock", "label": "Safety Stock",
@@ -696,7 +697,8 @@
"fieldname": "is_sales_item", "fieldname": "is_sales_item",
"fieldtype": "Check", "fieldtype": "Check",
"label": "Allow Sales", "label": "Allow Sales",
"show_description_on_click": 1 "show_description_on_click": 1,
"in_list_view": 1
}, },
{ {
"fieldname": "column_break3", "fieldname": "column_break3",
@@ -1069,7 +1071,7 @@
"image_field": "image", "image_field": "image",
"links": [], "links": [],
"make_attachments_public": 1, "make_attachments_public": 1,
"modified": "2026-05-26 10:18:46.862670", "modified": "2026-05-27 10:18:46.862670",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Stock", "module": "Stock",
"name": "Item", "name": "Item",

View File

@@ -8,9 +8,46 @@ frappe.listview_settings["Item"] = {
"end_of_life", "end_of_life",
"disabled", "disabled",
"variant_of", "variant_of",
"is_stock_item",
"is_fixed_asset",
"is_sales_item",
"is_purchase_item",
], ],
filters: [["disabled", "=", "0"]], filters: [["disabled", "=", "0"]],
formatters: {
is_fixed_asset: function (value, df, doc) {
if (doc.is_fixed_asset) return __("Fixed Asset");
if (doc.is_stock_item) return __("Stock");
return __("Service");
},
is_sales_item: function (value, df, doc) {
const sales = cint(doc.is_sales_item);
const purchases = cint(doc.is_purchase_item);
if (sales && purchases) return __("Sales & Purchase");
if (sales) return __("Sales");
if (purchases) return __("Purchase");
return "—";
},
},
onload: function (listview) {
listview.columns = listview.columns.map((col) => {
if (!col.df) return col;
const renames = {
is_fixed_asset: __("Item Type"),
is_sales_item: __("Purpose"),
stock_uom: __("UOM"),
};
if (col.df.fieldname in renames) {
return { ...col, df: { ...col.df, label: renames[col.df.fieldname] } };
}
return col;
});
listview.render_header(true);
},
get_indicator: function (doc) { get_indicator: function (doc) {
if (doc.disabled) { if (doc.disabled) {
return [__("Disabled"), "grey", "disabled,=,Yes"]; return [__("Disabled"), "grey", "disabled,=,Yes"];