diff --git a/InvenTree/InvenTree/api_version.py b/InvenTree/InvenTree/api_version.py index 7851efd8dd..f767148199 100644 --- a/InvenTree/InvenTree/api_version.py +++ b/InvenTree/InvenTree/api_version.py @@ -4,11 +4,14 @@ InvenTree API version information # InvenTree API version -INVENTREE_API_VERSION = 40 +INVENTREE_API_VERSION = 41 """ Increment this API version number whenever there is a significant change to the API that any clients need to know about +v41 -> 2022-04-26 + - Fixes 'variant_of' filter for Part list endpoint + v40 -> 2022-04-19 - Adds ability to filter StockItem list by "tracked" parameter - This checks the serial number or batch code fields diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index de6cd4a974..e394efae7e 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -1175,6 +1175,18 @@ class PartList(generics.ListCreateAPIView): except (ValueError, Part.DoesNotExist): pass + # Filter by 'variant_of' + # Note that this is subtly different from 'ancestor' filter (above) + variant_of = params.get('variant_of', None) + + if variant_of is not None: + try: + template = Part.objects.get(pk=variant_of) + variants = template.get_children() + queryset = queryset.filter(pk__in=[v.pk for v in variants]) + except (ValueError, Part.DoesNotExist): + pass + # Filter only parts which are in the "BOM" for a given part in_bom_for = params.get('in_bom_for', None)