diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index de76bcb2ce..eb2b04d7cc 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,12 +1,15 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 216 +INVENTREE_API_VERSION = 217 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v217 - 2024-07-09 : https://github.com/inventree/InvenTree/pull/7599 + - Fixes bug in "project_code" field for order API endpoints + v216 - 2024-07-08 : https://github.com/inventree/InvenTree/pull/7595 - Moves API endpoint for contenttype lookup by model name diff --git a/src/backend/InvenTree/build/serializers.py b/src/backend/InvenTree/build/serializers.py index 873370023b..83b046c0a7 100644 --- a/src/backend/InvenTree/build/serializers.py +++ b/src/backend/InvenTree/build/serializers.py @@ -54,6 +54,7 @@ class BuildSerializer(NotesFieldMixin, DataImportExportSerializerMixin, InvenTre 'part_name', 'part_detail', 'project_code', + 'project_code_label', 'project_code_detail', 'overdue', 'reference', @@ -98,6 +99,8 @@ class BuildSerializer(NotesFieldMixin, DataImportExportSerializerMixin, InvenTre barcode_hash = serializers.CharField(read_only=True) + project_code_label = serializers.CharField(source='project_code.code', read_only=True, label=_('Project Code Label')) + project_code_detail = ProjectCodeSerializer(source='project_code', many=False, read_only=True) @staticmethod diff --git a/src/backend/InvenTree/order/serializers.py b/src/backend/InvenTree/order/serializers.py index 40bc800f93..1226e753ce 100644 --- a/src/backend/InvenTree/order/serializers.py +++ b/src/backend/InvenTree/order/serializers.py @@ -104,8 +104,8 @@ class AbstractOrderSerializer(DataImportExportSerializerMixin, serializers.Seria source='responsible', read_only=True, many=False ) - project_code = serializers.CharField( - source='project_code.code', label=_('Project Code'), read_only=True + project_code_label = serializers.CharField( + source='project_code.code', read_only=True, label='Project Code Label' ) # Detail for project code field @@ -151,6 +151,7 @@ class AbstractOrderSerializer(DataImportExportSerializerMixin, serializers.Seria 'completed_lines', 'link', 'project_code', + 'project_code_label', 'project_code_detail', 'reference', 'responsible', diff --git a/src/backend/InvenTree/order/test_api.py b/src/backend/InvenTree/order/test_api.py index a2257755f2..d496a27de1 100644 --- a/src/backend/InvenTree/order/test_api.py +++ b/src/backend/InvenTree/order/test_api.py @@ -1978,6 +1978,18 @@ class ReturnOrderTests(InvenTreeAPITestCase): self.assertEqual(reference['required'], True) self.assertEqual(reference['type'], 'string') + def test_project_code(self): + """Test the 'project_code' serializer field.""" + self.assignRole('return_order.add') + response = self.options(reverse('api-return-order-list'), expected_code=200) + project_code = response.data['actions']['POST']['project_code'] + + self.assertFalse(project_code['required']) + self.assertFalse(project_code['read_only']) + self.assertEqual(project_code['type'], 'related field') + self.assertEqual(project_code['label'], 'Project Code') + self.assertEqual(project_code['model'], 'projectcode') + def test_list(self): """Tests for the list endpoint.""" url = reverse('api-return-order-list')