[Bug] Project code fix (#7599)

* Fix project_code serializer field

- Imroperly marked as "read only"

* Add unit test

* Bump API version

* Add project code label to order serializers

- Making it available in exported dataset
This commit is contained in:
Oliver 2024-07-09 21:09:57 +10:00 committed by GitHub
parent b59ecdaeac
commit 494c12f0e5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 22 additions and 3 deletions

View File

@ -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

View File

@ -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

View File

@ -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',

View File

@ -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')