mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-11-04 07:05:41 +00:00 
			
		
		
		
	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:
		@@ -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)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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):
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								InvenTree/company/migrations/0050_alter_company_website.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								InvenTree/company/migrations/0050_alter_company_website.py
									
									
									
									
									
										Normal 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'),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
@@ -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')
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								InvenTree/order/migrations/0075_auto_20221110_0108.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								InvenTree/order/migrations/0075_auto_20221110_0108.py
									
									
									
									
									
										Normal 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'),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
@@ -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')
 | 
			
		||||
 
 | 
			
		||||
@@ -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")
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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}'`);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user