From cca191222004d2d4eaa2402a9383aa1ce632187f Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 14 Feb 2025 17:08:27 +1100 Subject: [PATCH] Adds "is_variant" filter for Part API (#9077) * Adds "is_variant" filter for Part API * Bump API version --- src/backend/InvenTree/InvenTree/api_version.py | 5 ++++- src/backend/InvenTree/part/api.py | 8 ++++++++ src/frontend/src/tables/part/PartTable.tsx | 6 ++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index e5a25889ef..8cc422bc20 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,13 +1,16 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 309 +INVENTREE_API_VERSION = 310 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v310 - 2025-02-14 : https://github.com/inventree/InvenTree/pull/9077 + - Adds 'is_variant' filter to the Part list API + v309 - 2025-02-02 : https://github.com/inventree/InvenTree/pull/9008 - Bug fixes for the "Part" serializer - Fixes for data import API endpoints diff --git a/src/backend/InvenTree/part/api.py b/src/backend/InvenTree/part/api.py index f5ab295cb7..582046c002 100644 --- a/src/backend/InvenTree/part/api.py +++ b/src/backend/InvenTree/part/api.py @@ -895,6 +895,14 @@ class PartFilter(rest_filters.FilterSet): model = Part fields = ['revision_of'] + is_variant = rest_filters.BooleanFilter( + label=_('Is Variant'), method='filter_is_variant' + ) + + def filter_is_variant(self, queryset, name, value): + """Filter by whether the Part is a variant or not.""" + return queryset.filter(variant_of__isnull=not str2bool(value)) + is_revision = rest_filters.BooleanFilter( label=_('Is Revision'), method='filter_is_revision' ) diff --git a/src/frontend/src/tables/part/PartTable.tsx b/src/frontend/src/tables/part/PartTable.tsx index f3c83e5d01..5d90183639 100644 --- a/src/frontend/src/tables/part/PartTable.tsx +++ b/src/frontend/src/tables/part/PartTable.tsx @@ -269,6 +269,12 @@ function partTableFilters(): TableFilter[] { description: t`Filter by parts which are templates`, type: 'boolean' }, + { + name: 'is_variant', + label: t`Is Variant`, + description: t`Filter by parts which are variants`, + type: 'boolean' + }, { name: 'is_revision', label: t`Is Revision`,