From 276dd6c94e367b6d5a8154f807419d00144edef9 Mon Sep 17 00:00:00 2001 From: Jathn Date: Fri, 29 Aug 2025 17:49:37 +0300 Subject: [PATCH] Fixes #19896: allow decimal number boundaries for custom fields --- netbox/extras/forms/filtersets.py | 4 ++-- ...130_update_custom_fields_numeric_bounds.py | 23 +++++++++++++++++++ netbox/extras/models/customfields.py | 8 +++++-- 3 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 netbox/extras/migrations/0130_update_custom_fields_numeric_bounds.py diff --git a/netbox/extras/forms/filtersets.py b/netbox/extras/forms/filtersets.py index 27881f17a..bd502029e 100644 --- a/netbox/extras/forms/filtersets.py +++ b/netbox/extras/forms/filtersets.py @@ -102,11 +102,11 @@ class CustomFieldFilterForm(SavedFiltersMixin, FilterForm): choices=BOOLEAN_WITH_BLANK_CHOICES ) ) - validation_minimum = forms.IntegerField( + validation_minimum = forms.DecimalField( label=_('Minimum value'), required=False ) - validation_maximum = forms.IntegerField( + validation_maximum = forms.DecimalField( label=_('Maximum value'), required=False ) diff --git a/netbox/extras/migrations/0130_update_custom_fields_numeric_bounds.py b/netbox/extras/migrations/0130_update_custom_fields_numeric_bounds.py new file mode 100644 index 000000000..dcc225617 --- /dev/null +++ b/netbox/extras/migrations/0130_update_custom_fields_numeric_bounds.py @@ -0,0 +1,23 @@ +# Generated by Django 5.2.4 on 2025-08-28 19:31 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('extras', '0129_fix_script_paths'), + ] + + operations = [ + migrations.AlterField( + model_name='customfield', + name='validation_maximum', + field=models.DecimalField(blank=True, decimal_places=2, max_digits=21, null=True), + ), + migrations.AlterField( + model_name='customfield', + name='validation_minimum', + field=models.DecimalField(blank=True, decimal_places=2, max_digits=21, null=True), + ), + ] diff --git a/netbox/extras/models/customfields.py b/netbox/extras/models/customfields.py index 19d9e1ded..78b30e9ab 100644 --- a/netbox/extras/models/customfields.py +++ b/netbox/extras/models/customfields.py @@ -174,13 +174,17 @@ class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel): verbose_name=_('display weight'), help_text=_('Fields with higher weights appear lower in a form.') ) - validation_minimum = models.BigIntegerField( + validation_minimum = models.DecimalField( + max_digits=21, + decimal_places=2, blank=True, null=True, verbose_name=_('minimum value'), help_text=_('Minimum allowed value (for numeric fields)') ) - validation_maximum = models.BigIntegerField( + validation_maximum = models.DecimalField( + max_digits=21, + decimal_places=2, blank=True, null=True, verbose_name=_('maximum value'),