Remove client-side length validation in form inputs (#3911)

* Remove client-side length validation in form inputs

- Let the server throw an error (so the user sees it)

* Update instances of models.URLField to InvenTreeURLField
This commit is contained in:
Oliver 2022-11-10 12:51:15 +11:00 committed by GitHub
parent fb77158496
commit 57a20be5c3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 57 additions and 20 deletions

View File

@ -38,10 +38,8 @@ class InvenTreeURLField(models.URLField):
def __init__(self, **kwargs):
"""Initialization method for InvenTreeURLField"""
# Max length for InvenTreeURLField defaults to 200
if 'max_length' not in kwargs:
kwargs['max_length'] = 200
# Max length for InvenTreeURLField is set to 200
kwargs['max_length'] = 200
super().__init__(**kwargs)

View File

@ -21,7 +21,7 @@ from rest_framework.serializers import DecimalField
from rest_framework.utils import model_meta
from common.models import InvenTreeSetting
from InvenTree.fields import InvenTreeRestURLField
from InvenTree.fields import InvenTreeRestURLField, InvenTreeURLField
from InvenTree.helpers import download_image_from_url
@ -73,6 +73,7 @@ class InvenTreeModelSerializer(serializers.ModelSerializer):
serializer_field_mapping = {
**serializers.ModelSerializer.serializer_field_mapping,
models.URLField: InvenTreeRestURLField,
InvenTreeURLField: InvenTreeRestURLField,
}
def __init__(self, instance=None, data=empty, **kwargs):

View File

@ -0,0 +1,19 @@
# Generated by Django 3.2.16 on 2022-11-10 01:08
import InvenTree.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('company', '0049_company_metadata'),
]
operations = [
migrations.AlterField(
model_name='company',
name='website',
field=InvenTree.fields.InvenTreeURLField(blank=True, help_text='Company website URL', verbose_name='Website'),
),
]

View File

@ -101,7 +101,7 @@ class Company(MetadataMixin, models.Model):
blank=True,
)
website = models.URLField(
website = InvenTreeURLField(
blank=True,
verbose_name=_('Website'),
help_text=_('Company website URL')

View File

@ -0,0 +1,29 @@
# Generated by Django 3.2.16 on 2022-11-10 01:08
import InvenTree.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('order', '0074_auto_20220709_0108'),
]
operations = [
migrations.AlterField(
model_name='purchaseorder',
name='link',
field=InvenTree.fields.InvenTreeURLField(blank=True, help_text='Link to external page', verbose_name='Link'),
),
migrations.AlterField(
model_name='salesorder',
name='link',
field=InvenTree.fields.InvenTreeURLField(blank=True, help_text='Link to external page', verbose_name='Link'),
),
migrations.AlterField(
model_name='salesordershipment',
name='link',
field=InvenTree.fields.InvenTreeURLField(blank=True, help_text='Link to external page', verbose_name='Link'),
),
]

View File

@ -30,7 +30,7 @@ from common.settings import currency_code_default
from company.models import Company, SupplierPart
from InvenTree.exceptions import log_error
from InvenTree.fields import (InvenTreeModelMoneyField, InvenTreeNotesField,
RoundingDecimalField)
InvenTreeURLField, RoundingDecimalField)
from InvenTree.helpers import decimal2string, getSetting, notify_responsible
from InvenTree.models import InvenTreeAttachment, ReferenceIndexingMixin
from InvenTree.status_codes import (PurchaseOrderStatus, SalesOrderStatus,
@ -81,7 +81,7 @@ class Order(MetadataMixin, ReferenceIndexingMixin):
description = models.CharField(max_length=250, verbose_name=_('Description'), help_text=_('Order description'))
link = models.URLField(blank=True, verbose_name=_('Link'), help_text=_('Link to external page'))
link = InvenTreeURLField(blank=True, verbose_name=_('Link'), help_text=_('Link to external page'))
creation_date = models.DateField(blank=True, null=True, verbose_name=_('Creation Date'))
@ -1254,7 +1254,7 @@ class SalesOrderShipment(models.Model):
help_text=_('Reference number for associated invoice'),
)
link = models.URLField(
link = InvenTreeURLField(
blank=True,
verbose_name=_('Link'),
help_text=_('Link to external page')

View File

@ -656,7 +656,7 @@ class StockItem(InvenTreeBarcodeMixin, MetadataMixin, MPTTModel):
link = InvenTreeURLField(
verbose_name=_('External Link'),
blank=True, max_length=200,
blank=True,
help_text=_("Link to external URL")
)

View File

@ -2330,16 +2330,6 @@ function constructInputOptions(name, classes, type, parameters, options={}) {
opts.push(`value='${parameters.default}'`);
}
// Maximum input length
if (parameters.max_length != null) {
opts.push(`maxlength='${parameters.max_length}'`);
}
// Minimum input length
if (parameters.min_length != null) {
opts.push(`minlength='${parameters.min_length}'`);
}
// Maximum value
if (parameters.max_value != null) {
opts.push(`max='${parameters.max_value}'`);