diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index fc63d601dd..f8d15dc97a 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,11 +1,14 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 446 +INVENTREE_API_VERSION = 447 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v447 -> 2026-02-02 : https://github.com/inventree/InvenTree/pull/11242 + - Adds "sub_part_active" filter to BomItem API endpoint + v446 -> 2026-02-01 : https://github.com/inventree/InvenTree/pull/11232 - Allow ordering of test results by started_datetime and finished_datetime fields - Allow ordering of test results by test_station field diff --git a/src/backend/InvenTree/part/api.py b/src/backend/InvenTree/part/api.py index f8f901a98a..6a6f3326a1 100644 --- a/src/backend/InvenTree/part/api.py +++ b/src/backend/InvenTree/part/api.py @@ -1247,11 +1247,11 @@ class BomFilter(FilterSet): # Filters for linked 'part' part_active = rest_filters.BooleanFilter( - label='Assembly part is active', field_name='part__active' + label=_('Assembly part is active'), field_name='part__active' ) part_trackable = rest_filters.BooleanFilter( - label='Assembly part is trackable', field_name='part__trackable' + label=_('Assembly part is trackable'), field_name='part__trackable' ) part_testable = rest_filters.BooleanFilter( @@ -1259,8 +1259,12 @@ class BomFilter(FilterSet): ) # Filters for linked 'sub_part' + sub_part_active = rest_filters.BooleanFilter( + label=_('Component part is active'), field_name='sub_part__active' + ) + sub_part_trackable = rest_filters.BooleanFilter( - label='Component part is trackable', field_name='sub_part__trackable' + label=_('Component part is trackable'), field_name='sub_part__trackable' ) sub_part_testable = rest_filters.BooleanFilter( @@ -1268,15 +1272,15 @@ class BomFilter(FilterSet): ) sub_part_assembly = rest_filters.BooleanFilter( - label='Component part is an assembly', field_name='sub_part__assembly' + label=_('Component part is an assembly'), field_name='sub_part__assembly' ) sub_part_virtual = rest_filters.BooleanFilter( - label='Component part is virtual', field_name='sub_part__virtual' + label=_('Component part is virtual'), field_name='sub_part__virtual' ) available_stock = rest_filters.BooleanFilter( - label='Has available stock', method='filter_available_stock' + label=_('Has available stock'), method='filter_available_stock' ) def filter_available_stock(self, queryset, name, value): diff --git a/src/frontend/src/tables/bom/BomTable.tsx b/src/frontend/src/tables/bom/BomTable.tsx index 35cc65fb43..808ac1e9eb 100644 --- a/src/frontend/src/tables/bom/BomTable.tsx +++ b/src/frontend/src/tables/bom/BomTable.tsx @@ -425,6 +425,11 @@ export function BomTable({ label: t`Trackable Part`, description: t`Show trackable items` }, + { + name: 'sub_part_active', + label: t`Active Part`, + description: t`Show active items` + }, { name: 'sub_part_assembly', label: t`Assembled Part`,