From 0bbc020a95813926881b057d9ccb419085850967 Mon Sep 17 00:00:00 2001 From: Joe Rogers <1337joe@users.noreply.github.com> Date: Thu, 19 Jun 2025 05:05:02 +0200 Subject: [PATCH] Schema: Add possible order fields to 'ordering' field description (#9803) * Make optional build order reference nullable * Add valid choices to ordering field description * Bump API version --- src/backend/InvenTree/InvenTree/api_version.py | 5 ++++- src/backend/InvenTree/InvenTree/schema.py | 10 ++++++++++ src/backend/InvenTree/order/serializers.py | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index 200c2be075..cf182612b5 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 = 351 +INVENTREE_API_VERSION = 352 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v352 -> 2025-06-18 : https://github.com/inventree/InvenTree/pull/9803 + - Make PurchaseOrderLineItem link to BuildOrder reference nullable + - Add valid fields to ordering field descriptions v351 -> 2025-06-18 : https://github.com/inventree/InvenTree/pull/9602 - Adds passwort reset API endpoint for admin users diff --git a/src/backend/InvenTree/InvenTree/schema.py b/src/backend/InvenTree/InvenTree/schema.py index f051af08e2..1999b102ca 100644 --- a/src/backend/InvenTree/InvenTree/schema.py +++ b/src/backend/InvenTree/InvenTree/schema.py @@ -91,6 +91,16 @@ class ExtendedAutoSchema(AutoSchema): if parameter['name'] == 'limit': parameter['required'] = True + # Add valid order selections to the ordering field description. + ordering_fields = getattr(self.view, 'ordering_fields', None) + if ordering_fields is not None: + parameters = operation.get('parameters', []) + for parameter in parameters: + if parameter['name'] == 'ordering': + parameter['description'] = ( + f'{parameter["description"]} Possible fields: {", ".join(ordering_fields)}.' + ) + return operation diff --git a/src/backend/InvenTree/order/serializers.py b/src/backend/InvenTree/order/serializers.py index f49af7ae8a..86339c39ae 100644 --- a/src/backend/InvenTree/order/serializers.py +++ b/src/backend/InvenTree/order/serializers.py @@ -649,7 +649,7 @@ class PurchaseOrderLineItemSerializer( ) build_order_detail = build.serializers.BuildSerializer( - source='build_order', read_only=True, many=False + source='build_order', read_only=True, allow_null=True, many=False ) merge_items = serializers.BooleanField(