diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index 39269523ea..6dd42b96ce 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,11 +1,15 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 373 +INVENTREE_API_VERSION = 374 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v374 -> 2025-07-28 : https://github.com/inventree/InvenTree/pull/10092 + - Add nullable to a few details fields that lack it + - Add the list of searched fields to the search parameter comments + v373 -> 2025-06-21 : https://github.com/inventree/InvenTree/pull/9735 - Adds PluginUserSetting model (and associated endpoints) - Remove NotificationSetting model (and associated endpoints) diff --git a/src/backend/InvenTree/InvenTree/schema.py b/src/backend/InvenTree/InvenTree/schema.py index 1ec31a8272..94f72b63c0 100644 --- a/src/backend/InvenTree/InvenTree/schema.py +++ b/src/backend/InvenTree/InvenTree/schema.py @@ -103,6 +103,16 @@ class ExtendedAutoSchema(AutoSchema): f'{parameter["description"]} Possible fields: {", ".join(ordering_fields)}.' ) + # Add valid search fields to the search description. + search_fields = getattr(self.view, 'search_fields', None) + if search_fields is not None: + parameters = operation.get('parameters', []) + for parameter in parameters: + if parameter['name'] == 'search': + parameter['description'] = ( + f'{parameter["description"]} Searched fields: {", ".join(search_fields)}.' + ) + return operation diff --git a/src/backend/InvenTree/build/serializers.py b/src/backend/InvenTree/build/serializers.py index 0133df3878..628c7d1ee5 100644 --- a/src/backend/InvenTree/build/serializers.py +++ b/src/backend/InvenTree/build/serializers.py @@ -1417,6 +1417,7 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali source='bom_item.part', many=False, read_only=True, + allow_null=True, pricing=False, ) diff --git a/src/backend/InvenTree/order/serializers.py b/src/backend/InvenTree/order/serializers.py index 9206517528..01a1224f09 100644 --- a/src/backend/InvenTree/order/serializers.py +++ b/src/backend/InvenTree/order/serializers.py @@ -1447,7 +1447,11 @@ class SalesOrderAllocationSerializer(InvenTreeModelSerializer): ) shipment_detail = SalesOrderShipmentSerializer( - source='shipment', order_detail=False, many=False, read_only=True + source='shipment', + order_detail=False, + many=False, + read_only=True, + allow_null=True, ) diff --git a/src/backend/InvenTree/part/serializers.py b/src/backend/InvenTree/part/serializers.py index 963199a9d3..ed7f46a8a9 100644 --- a/src/backend/InvenTree/part/serializers.py +++ b/src/backend/InvenTree/part/serializers.py @@ -456,7 +456,9 @@ class PartParameterSerializer( source='template', many=False, read_only=True, allow_null=True ) - updated_by_detail = UserSerializer(source='updated_by', many=False, read_only=True) + updated_by_detail = UserSerializer( + source='updated_by', many=False, read_only=True, allow_null=True + ) class DuplicatePartSerializer(serializers.Serializer):