diff --git a/src/backend/InvenTree/common/serializers.py b/src/backend/InvenTree/common/serializers.py index 42c455b64d..49c777b476 100644 --- a/src/backend/InvenTree/common/serializers.py +++ b/src/backend/InvenTree/common/serializers.py @@ -733,6 +733,10 @@ class ParameterTemplateSerializer( allow_null=True, ) + def validate_model_type(self, model_type): + """Convert an empty string to None for the model_type field.""" + return model_type or None + @register_importer() class ParameterSerializer( diff --git a/src/backend/InvenTree/common/test_api.py b/src/backend/InvenTree/common/test_api.py index c9c62d8bef..4e77eacf85 100644 --- a/src/backend/InvenTree/common/test_api.py +++ b/src/backend/InvenTree/common/test_api.py @@ -121,6 +121,19 @@ class ParameterAPITests(InvenTreeAPITestCase): self.assertEqual(common.models.ParameterTemplate.objects.count(), N) self.assertFalse(common.models.ParameterTemplate.objects.filter(pk=pk).exists()) + # Let's create a template which does not specify a model_type + data = { + 'name': 'Universal Parameter', + 'units': '', + 'description': 'A parameter template for all models', + 'enabled': False, + } + + response = self.post(url, data, expected_code=201) + + self.assertIsNone(response.data['model_type']) + self.assertFalse(response.data['enabled']) + def test_template_filters(self): """Tests for API filters against ParameterTemplate endpoint.""" from company.models import Company diff --git a/src/backend/InvenTree/part/test_api.py b/src/backend/InvenTree/part/test_api.py index 6f05c6f130..fb70ed442b 100644 --- a/src/backend/InvenTree/part/test_api.py +++ b/src/backend/InvenTree/part/test_api.py @@ -3330,11 +3330,11 @@ class PartTestTemplateTest(PartAPITestBase): self.assertIn('Choices must be unique', str(response.data['choices'])) -class PartParameterTests(PartAPITestBase): - """Unit test for PartParameter API endpoints.""" +class ParameterTests(PartAPITestBase): + """Unit test for Parameter API endpoints.""" def test_export_data(self): - """Test data export functionality for PartParameter objects.""" + """Test data export functionality for Parameter objects.""" url = reverse('api-parameter-list') response = self.options( diff --git a/src/backend/InvenTree/part/test_param.py b/src/backend/InvenTree/part/test_param.py index c1a536bc25..76b3fb241b 100644 --- a/src/backend/InvenTree/part/test_param.py +++ b/src/backend/InvenTree/part/test_param.py @@ -287,8 +287,8 @@ class ParameterTests(TestCase): self.assertAlmostEqual(param.data_numeric, expected, places=2) -class PartParameterTest(InvenTreeAPITestCase): - """Tests for the ParParameter API.""" +class ParameterTest(InvenTreeAPITestCase): + """Tests for the Parameter API.""" superuser = True @@ -496,7 +496,7 @@ class PartParameterTest(InvenTreeAPITestCase): self.assertEqual(actual, expected) -class PartParameterFilterTest(InvenTreeAPITestCase): +class ParameterFilterTest(InvenTreeAPITestCase): """Unit tests for filtering parts by parameter values.""" superuser = True