Remove special characters restriction in category names (#3370)

* [FR]Special characters restriction in category names
Fixes #3358

* remove old validation test
This commit is contained in:
Matthias Mair 2022-07-21 03:33:21 +02:00 committed by GitHub
parent aca58dedc0
commit 09987ad79b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 37 additions and 20 deletions

View File

@ -24,7 +24,6 @@ import InvenTree.format
import InvenTree.helpers import InvenTree.helpers
from common.models import InvenTreeSetting from common.models import InvenTreeSetting
from InvenTree.fields import InvenTreeURLField from InvenTree.fields import InvenTreeURLField
from InvenTree.validators import validate_tree_name
logger = logging.getLogger('inventree') logger = logging.getLogger('inventree')
@ -538,7 +537,6 @@ class InvenTreeTree(MPTTModel):
name = models.CharField( name = models.CharField(
blank=False, blank=False,
max_length=100, max_length=100,
validators=[validate_tree_name],
verbose_name=_("Name"), verbose_name=_("Name"),
help_text=_("Name"), help_text=_("Name"),
) )

View File

@ -80,10 +80,7 @@ def validate_sales_order_reference(value):
def validate_tree_name(value): def validate_tree_name(value):
"""Prevent illegal characters in tree item names.""" """Placeholder for legacy function used in migrations."""
for c in "!@#$%^&*'\"\\/[]{}<>,|+=~`\"": # noqa: P103
if c in str(value):
raise ValidationError(_('Illegal character in name ({x})'.format(x=c)))
def validate_overage(value): def validate_overage(value):

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.14 on 2022-07-20 16:09
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('part', '0080_alter_part_image'),
]
operations = [
migrations.AlterField(
model_name='partcategory',
name='name',
field=models.CharField(help_text='Name', max_length=100, verbose_name='Name'),
),
]

View File

@ -1,6 +1,5 @@
"""Unit tests for the PartCategory model""" """Unit tests for the PartCategory model"""
from django.core.exceptions import ValidationError
from django.test import TestCase from django.test import TestCase
from .models import Part, PartCategory, PartParameter, PartParameterTemplate from .models import Part, PartCategory, PartParameter, PartParameterTemplate
@ -109,19 +108,6 @@ class CategoryTest(TestCase):
part_parameter.pop(item) part_parameter.pop(item)
self.assertEqual(len(part_parameter), 1) self.assertEqual(len(part_parameter), 1)
def test_invalid_name(self):
"""Test that an illegal character is prohibited in a category name"""
cat = PartCategory(name='test/with/illegal/chars', description='Test category', parent=None)
with self.assertRaises(ValidationError) as err:
cat.full_clean()
cat.save() # pragma: no cover
self.assertIn('Illegal character in name', str(err.exception.error_dict.get('name')))
cat.name = 'good name'
cat.save()
def test_delete(self): def test_delete(self):
"""Test that category deletion moves the children properly.""" """Test that category deletion moves the children properly."""
# Delete the 'IC' category and 'Transceiver' should move to be under 'Electronics' # Delete the 'IC' category and 'Transceiver' should move to be under 'Electronics'

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.14 on 2022-07-20 16:09
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('stock', '0078_alter_stockitem_supplier_part'),
]
operations = [
migrations.AlterField(
model_name='stocklocation',
name='name',
field=models.CharField(help_text='Name', max_length=100, verbose_name='Name'),
),
]