mirror of
https://github.com/netbox-community/netbox.git
synced 2025-09-06 14:23:36 -06:00
Fixes #19896: cf minmax mustbe int (#20207)
Some checks are pending
CI / build (20.x, 3.10) (push) Waiting to run
CI / build (20.x, 3.11) (push) Waiting to run
CI / build (20.x, 3.12) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, actions) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Waiting to run
Some checks are pending
CI / build (20.x, 3.10) (push) Waiting to run
CI / build (20.x, 3.11) (push) Waiting to run
CI / build (20.x, 3.12) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, actions) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Waiting to run
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Waiting to run
This commit is contained in:
parent
8a1db81111
commit
309e434064
@ -76,11 +76,11 @@ class CustomFieldBulkEditForm(ChangelogMessageMixin, BulkEditForm):
|
|||||||
required=False,
|
required=False,
|
||||||
widget=BulkEditNullBooleanSelect()
|
widget=BulkEditNullBooleanSelect()
|
||||||
)
|
)
|
||||||
validation_minimum = forms.IntegerField(
|
validation_minimum = forms.DecimalField(
|
||||||
label=_('Minimum value'),
|
label=_('Minimum value'),
|
||||||
required=False,
|
required=False,
|
||||||
)
|
)
|
||||||
validation_maximum = forms.IntegerField(
|
validation_maximum = forms.DecimalField(
|
||||||
label=_('Maximum value'),
|
label=_('Maximum value'),
|
||||||
required=False,
|
required=False,
|
||||||
)
|
)
|
||||||
|
@ -103,11 +103,11 @@ class CustomFieldFilterForm(SavedFiltersMixin, FilterForm):
|
|||||||
choices=BOOLEAN_WITH_BLANK_CHOICES
|
choices=BOOLEAN_WITH_BLANK_CHOICES
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
validation_minimum = forms.IntegerField(
|
validation_minimum = forms.DecimalField(
|
||||||
label=_('Minimum value'),
|
label=_('Minimum value'),
|
||||||
required=False
|
required=False
|
||||||
)
|
)
|
||||||
validation_maximum = forms.IntegerField(
|
validation_maximum = forms.DecimalField(
|
||||||
label=_('Maximum value'),
|
label=_('Maximum value'),
|
||||||
required=False
|
required=False
|
||||||
)
|
)
|
||||||
|
@ -17,7 +17,7 @@ if TYPE_CHECKING:
|
|||||||
)
|
)
|
||||||
from tenancy.graphql.filters import TenantFilter, TenantGroupFilter
|
from tenancy.graphql.filters import TenantFilter, TenantGroupFilter
|
||||||
from netbox.graphql.enums import ColorEnum
|
from netbox.graphql.enums import ColorEnum
|
||||||
from netbox.graphql.filter_lookups import IntegerLookup, JSONFilter, StringArrayLookup, TreeNodeFilter
|
from netbox.graphql.filter_lookups import FloatLookup, IntegerLookup, JSONFilter, StringArrayLookup, TreeNodeFilter
|
||||||
from users.graphql.filters import GroupFilter, UserFilter
|
from users.graphql.filters import GroupFilter, UserFilter
|
||||||
from virtualization.graphql.filters import ClusterFilter, ClusterGroupFilter, ClusterTypeFilter
|
from virtualization.graphql.filters import ClusterFilter, ClusterGroupFilter, ClusterTypeFilter
|
||||||
from .enums import *
|
from .enums import *
|
||||||
@ -151,10 +151,10 @@ class CustomFieldFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin):
|
|||||||
weight: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
weight: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
validation_minimum: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
validation_minimum: Annotated['FloatLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
validation_maximum: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
validation_maximum: Annotated['FloatLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = (
|
||||||
strawberry_django.filter_field()
|
strawberry_django.filter_field()
|
||||||
)
|
)
|
||||||
validation_regex: FilterLookup[str] | None = strawberry_django.filter_field()
|
validation_regex: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||||
|
21
netbox/extras/migrations/0133_make_cf_minmax_decimal.py
Normal file
21
netbox/extras/migrations/0133_make_cf_minmax_decimal.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('extras', '0132_configcontextprofile'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='customfield',
|
||||||
|
name='validation_maximum',
|
||||||
|
field=models.DecimalField(blank=True, decimal_places=4, max_digits=16, null=True),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='customfield',
|
||||||
|
name='validation_minimum',
|
||||||
|
field=models.DecimalField(blank=True, decimal_places=4, max_digits=16, null=True),
|
||||||
|
),
|
||||||
|
]
|
@ -174,13 +174,17 @@ class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel):
|
|||||||
verbose_name=_('display weight'),
|
verbose_name=_('display weight'),
|
||||||
help_text=_('Fields with higher weights appear lower in a form.')
|
help_text=_('Fields with higher weights appear lower in a form.')
|
||||||
)
|
)
|
||||||
validation_minimum = models.BigIntegerField(
|
validation_minimum = models.DecimalField(
|
||||||
|
max_digits=16,
|
||||||
|
decimal_places=4,
|
||||||
blank=True,
|
blank=True,
|
||||||
null=True,
|
null=True,
|
||||||
verbose_name=_('minimum value'),
|
verbose_name=_('minimum value'),
|
||||||
help_text=_('Minimum allowed value (for numeric fields)')
|
help_text=_('Minimum allowed value (for numeric fields)')
|
||||||
)
|
)
|
||||||
validation_maximum = models.BigIntegerField(
|
validation_maximum = models.DecimalField(
|
||||||
|
max_digits=16,
|
||||||
|
decimal_places=4,
|
||||||
blank=True,
|
blank=True,
|
||||||
null=True,
|
null=True,
|
||||||
verbose_name=_('maximum value'),
|
verbose_name=_('maximum value'),
|
||||||
@ -471,7 +475,7 @@ class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel):
|
|||||||
field = forms.DecimalField(
|
field = forms.DecimalField(
|
||||||
required=required,
|
required=required,
|
||||||
initial=initial,
|
initial=initial,
|
||||||
max_digits=12,
|
max_digits=16,
|
||||||
decimal_places=4,
|
decimal_places=4,
|
||||||
min_value=self.validation_minimum,
|
min_value=self.validation_minimum,
|
||||||
max_value=self.validation_maximum
|
max_value=self.validation_maximum
|
||||||
|
Loading…
Reference in New Issue
Block a user