diff --git a/src/backend/InvenTree/build/serializers.py b/src/backend/InvenTree/build/serializers.py index e1ac881471..7c2c6def2b 100644 --- a/src/backend/InvenTree/build/serializers.py +++ b/src/backend/InvenTree/build/serializers.py @@ -33,7 +33,6 @@ from generic.states.fields import InvenTreeCustomStatusSerializerMixin from InvenTree.mixins import DataImportExportSerializerMixin from InvenTree.serializers import ( FilterableCharField, - FilterableIntegerField, FilterableSerializerMixin, InvenTreeDecimalField, InvenTreeModelSerializer, @@ -164,17 +163,6 @@ class BuildSerializer( filter_name='project_code_detail', ) - project_code = enable_filter( - FilterableIntegerField( - allow_null=True, - required=False, - label=_('Project Code'), - help_text=_('Project code for this build order'), - ), - True, - filter_name='project_code_detail', - ) - @staticmethod def annotate_queryset(queryset): """Add custom annotations to the BuildSerializer queryset, performing database queries as efficiently as possible. diff --git a/src/backend/InvenTree/build/test_api.py b/src/backend/InvenTree/build/test_api.py index 7284bf9b96..7733d437a8 100644 --- a/src/backend/InvenTree/build/test_api.py +++ b/src/backend/InvenTree/build/test_api.py @@ -1086,6 +1086,51 @@ class BuildListTest(BuildAPITest): url = reverse('api-build-list') + def test_api_options(self): + """Test OPTIONS endpoint for the Build list API.""" + data = self.options(self.url, expected_code=200).data + + self.assertEqual(data['name'], 'Build List') + actions = data['actions']['POST'] + + for field_name in [ + 'pk', + 'title', + 'part', + 'part_detail', + 'project_code', + 'project_code_detail', + 'quantity', + ]: + self.assertIn(field_name, actions) + + # Specific checks for certain fields + for field_name in ['part', 'project_code', 'take_from']: + field = actions[field_name] + self.assertEqual(field['type'], 'related field') + + for key in ['model', 'api_url', 'pk_field']: + self.assertIn(key, field) + + def test_detail_fields(self): + """Test inclusion of detail fields.""" + # Test without extra detail fields + for val in [True, False]: + response = self.get( + self.url, + data={'part_detail': val, 'project_code_detail': val, 'limit': 1}, + expected_code=200, + ) + + data = response.data['results'][0] + + if val: + self.assertIn('part_detail', data) + self.assertIn('project_code_detail', data) + else: + self.assertNotIn('part_detail', data) + self.assertNotIn('project_code_detail', data) + def test_get_all_builds(self): """Retrieve *all* builds via the API.""" builds = self.get(self.url) @@ -1195,7 +1240,6 @@ class BuildListTest(BuildAPITest): self.url, [ 'part_detail', - ('project_code_detail', 'project_code'), 'project_code_detail', ('user_detail', 'responsible_detail'), ('user_detail', 'issued_by_detail'), diff --git a/src/backend/InvenTree/common/currency.py b/src/backend/InvenTree/common/currency.py index 63699748bb..307e54d6d5 100644 --- a/src/backend/InvenTree/common/currency.py +++ b/src/backend/InvenTree/common/currency.py @@ -11,7 +11,6 @@ import structlog from moneyed import CURRENCIES import InvenTree.helpers -import InvenTree.ready logger = structlog.get_logger('inventree') @@ -20,9 +19,6 @@ def currency_code_default(create: bool = True): """Returns the default currency code (or USD if not specified).""" from common.settings import get_global_setting - if InvenTree.ready.isRunningMigrations(): - return '' # pragma: no cover - try: code = get_global_setting( 'INVENTREE_DEFAULT_CURRENCY', create=create, cache=True