Skip to content

Commit 309e434

Browse files
authored
Fixes #19896: cf minmax mustbe int (#20207)
1 parent 8a1db81 commit 309e434

File tree

5 files changed

+35
-10
lines changed

5 files changed

+35
-10
lines changed

netbox/extras/forms/bulk_edit.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,11 @@ class CustomFieldBulkEditForm(ChangelogMessageMixin, BulkEditForm):
7676
required=False,
7777
widget=BulkEditNullBooleanSelect()
7878
)
79-
validation_minimum = forms.IntegerField(
79+
validation_minimum = forms.DecimalField(
8080
label=_('Minimum value'),
8181
required=False,
8282
)
83-
validation_maximum = forms.IntegerField(
83+
validation_maximum = forms.DecimalField(
8484
label=_('Maximum value'),
8585
required=False,
8686
)

netbox/extras/forms/filtersets.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,11 @@ class CustomFieldFilterForm(SavedFiltersMixin, FilterForm):
103103
choices=BOOLEAN_WITH_BLANK_CHOICES
104104
)
105105
)
106-
validation_minimum = forms.IntegerField(
106+
validation_minimum = forms.DecimalField(
107107
label=_('Minimum value'),
108108
required=False
109109
)
110-
validation_maximum = forms.IntegerField(
110+
validation_maximum = forms.DecimalField(
111111
label=_('Maximum value'),
112112
required=False
113113
)

netbox/extras/graphql/filters.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
)
1818
from tenancy.graphql.filters import TenantFilter, TenantGroupFilter
1919
from netbox.graphql.enums import ColorEnum
20-
from netbox.graphql.filter_lookups import IntegerLookup, JSONFilter, StringArrayLookup, TreeNodeFilter
20+
from netbox.graphql.filter_lookups import FloatLookup, IntegerLookup, JSONFilter, StringArrayLookup, TreeNodeFilter
2121
from users.graphql.filters import GroupFilter, UserFilter
2222
from virtualization.graphql.filters import ClusterFilter, ClusterGroupFilter, ClusterTypeFilter
2323
from .enums import *
@@ -151,10 +151,10 @@ class CustomFieldFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
151151
weight: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
152152
strawberry_django.filter_field()
153153
)
154-
validation_minimum: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
154+
validation_minimum: Annotated['FloatLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
155155
strawberry_django.filter_field()
156156
)
157-
validation_maximum: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
157+
validation_maximum: Annotated['FloatLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
158158
strawberry_django.filter_field()
159159
)
160160
validation_regex: FilterLookup[str] | None = strawberry_django.filter_field()
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from django.db import migrations, models
2+
3+
4+
class Migration(migrations.Migration):
5+
6+
dependencies = [
7+
('extras', '0132_configcontextprofile'),
8+
]
9+
10+
operations = [
11+
migrations.AlterField(
12+
model_name='customfield',
13+
name='validation_maximum',
14+
field=models.DecimalField(blank=True, decimal_places=4, max_digits=16, null=True),
15+
),
16+
migrations.AlterField(
17+
model_name='customfield',
18+
name='validation_minimum',
19+
field=models.DecimalField(blank=True, decimal_places=4, max_digits=16, null=True),
20+
),
21+
]

netbox/extras/models/customfields.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -174,13 +174,17 @@ class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel):
174174
verbose_name=_('display weight'),
175175
help_text=_('Fields with higher weights appear lower in a form.')
176176
)
177-
validation_minimum = models.BigIntegerField(
177+
validation_minimum = models.DecimalField(
178+
max_digits=16,
179+
decimal_places=4,
178180
blank=True,
179181
null=True,
180182
verbose_name=_('minimum value'),
181183
help_text=_('Minimum allowed value (for numeric fields)')
182184
)
183-
validation_maximum = models.BigIntegerField(
185+
validation_maximum = models.DecimalField(
186+
max_digits=16,
187+
decimal_places=4,
184188
blank=True,
185189
null=True,
186190
verbose_name=_('maximum value'),
@@ -471,7 +475,7 @@ def to_form_field(self, set_initial=True, enforce_required=True, enforce_visibil
471475
field = forms.DecimalField(
472476
required=required,
473477
initial=initial,
474-
max_digits=12,
478+
max_digits=16,
475479
decimal_places=4,
476480
min_value=self.validation_minimum,
477481
max_value=self.validation_maximum

0 commit comments

Comments
 (0)