From 5d758bbdf413b6216c6f9fe411bd7183c155934c Mon Sep 17 00:00:00 2001 From: Bhumin Paladiya <139330832+bhumin18@users.noreply.github.com> Date: Fri, 31 Jul 2026 05:54:05 +0530 Subject: [PATCH] Fix admin search for PurchaseOrderLineItem (#12508) Expand search_fields on PurchaseOrderLineItemAdmin to allow searching by part name, part description, supplier SKU, order reference, and supplier name. Previously, only the optional 'reference' field was searchable, making it impossible to find line items by part or order details. - part__part__name: search by underlying Part name - part__part__description: search by Part description - part__SKU: search by Supplier SKU - order__reference: search by Purchase Order reference - order__supplier__name: search by Supplier name Also adds a unit test to verify the search_fields are correctly configured. --- src/backend/InvenTree/order/admin.py | 9 ++++++++- src/backend/InvenTree/order/tests.py | 10 ++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/backend/InvenTree/order/admin.py b/src/backend/InvenTree/order/admin.py index 875ebdb763..0a9d402878 100644 --- a/src/backend/InvenTree/order/admin.py +++ b/src/backend/InvenTree/order/admin.py @@ -94,7 +94,14 @@ class PurchaseOrderLineItemAdmin(admin.ModelAdmin): list_display = ('order', 'part', 'quantity', 'reference') - search_fields = ('reference',) + search_fields = [ + 'part__part__name', + 'part__part__description', + 'part__SKU', + 'order__reference', + 'order__supplier__name', + 'reference', + ] autocomplete_fields = ('order', 'part', 'destination') diff --git a/src/backend/InvenTree/order/tests.py b/src/backend/InvenTree/order/tests.py index bd4adecb93..74f35a5c85 100644 --- a/src/backend/InvenTree/order/tests.py +++ b/src/backend/InvenTree/order/tests.py @@ -728,3 +728,13 @@ class OrderUpdatedAtTest(TestCase): before = self._refresh(instance).updated_at line.delete() self.assertGreaterEqual(self._refresh(instance).updated_at, before) + + def test_po_lineitem_admin_search(self): + """Test search fields for PurchaseOrderLineItemAdmin.""" + from order.admin import PurchaseOrderLineItemAdmin + + admin_class = PurchaseOrderLineItemAdmin + self.assertIn('part__part__name', admin_class.search_fields) + self.assertIn('part__SKU', admin_class.search_fields) + self.assertIn('order__reference', admin_class.search_fields) + self.assertIn('order__supplier__name', admin_class.search_fields)