mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
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:
parent
aca58dedc0
commit
09987ad79b
@ -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"),
|
||||||
)
|
)
|
||||||
|
@ -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):
|
||||||
|
18
InvenTree/part/migrations/0081_alter_partcategory_name.py
Normal file
18
InvenTree/part/migrations/0081_alter_partcategory_name.py
Normal 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'),
|
||||||
|
),
|
||||||
|
]
|
@ -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'
|
||||||
|
18
InvenTree/stock/migrations/0079_alter_stocklocation_name.py
Normal file
18
InvenTree/stock/migrations/0079_alter_stocklocation_name.py
Normal 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'),
|
||||||
|
),
|
||||||
|
]
|
Loading…
Reference in New Issue
Block a user