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

View File

@ -80,10 +80,7 @@ def validate_sales_order_reference(value):
def validate_tree_name(value):
"""Prevent illegal characters in tree item names."""
for c in "!@#$%^&*'\"\\/[]{}<>,|+=~`\"": # noqa: P103
if c in str(value):
raise ValidationError(_('Illegal character in name ({x})'.format(x=c)))
"""Placeholder for legacy function used in migrations."""
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"""
from django.core.exceptions import ValidationError
from django.test import TestCase
from .models import Part, PartCategory, PartParameter, PartParameterTemplate
@ -109,19 +108,6 @@ class CategoryTest(TestCase):
part_parameter.pop(item)
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):
"""Test that category deletion moves the children properly."""
# 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'),
),
]