mirror of
https://github.com/netbox-community/netbox.git
synced 2026-04-18 23:20:02 +02:00
This commit is contained in:
@@ -7,9 +7,12 @@ from django_filters.constants import EMPTY_VALUES
|
||||
from drf_spectacular.types import OpenApiTypes
|
||||
from drf_spectacular.utils import extend_schema_field
|
||||
|
||||
from .forms.fields import BigIntegerField
|
||||
|
||||
__all__ = (
|
||||
'ContentTypeFilter',
|
||||
'MultiValueArrayFilter',
|
||||
'MultiValueBigNumberFilter',
|
||||
'MultiValueCharFilter',
|
||||
'MultiValueContentTypeFilter',
|
||||
'MultiValueDateFilter',
|
||||
@@ -77,6 +80,11 @@ class MultiValueNumberFilter(django_filters.MultipleChoiceFilter):
|
||||
field_class = multivalue_field_factory(forms.IntegerField)
|
||||
|
||||
|
||||
@extend_schema_field(OpenApiTypes.INT64)
|
||||
class MultiValueBigNumberFilter(MultiValueNumberFilter):
|
||||
field_class = multivalue_field_factory(BigIntegerField)
|
||||
|
||||
|
||||
@extend_schema_field(OpenApiTypes.DECIMAL)
|
||||
class MultiValueDecimalFilter(django_filters.MultipleChoiceFilter):
|
||||
field_class = multivalue_field_factory(forms.DecimalField)
|
||||
|
||||
@@ -2,6 +2,7 @@ import json
|
||||
|
||||
from django import forms
|
||||
from django.conf import settings
|
||||
from django.db.models import BigIntegerField as BigIntegerModelField
|
||||
from django.db.models import Count
|
||||
from django.forms.fields import InvalidJSONInput
|
||||
from django.forms.fields import JSONField as _JSONField
|
||||
@@ -13,17 +14,39 @@ from utilities.forms import widgets
|
||||
from utilities.validators import EnhancedURLValidator
|
||||
|
||||
__all__ = (
|
||||
'BigIntegerField',
|
||||
'ColorField',
|
||||
'CommentField',
|
||||
'JSONField',
|
||||
'LaxURLField',
|
||||
'MACAddressField',
|
||||
'PositiveBigIntegerField',
|
||||
'QueryField',
|
||||
'SlugField',
|
||||
'TagFilterField',
|
||||
)
|
||||
|
||||
|
||||
class BigIntegerField(forms.IntegerField):
|
||||
"""
|
||||
An IntegerField constrained to the range of a signed 64-bit integer.
|
||||
"""
|
||||
def __init__(self, *args, **kwargs):
|
||||
kwargs.setdefault('min_value', -BigIntegerModelField.MAX_BIGINT - 1)
|
||||
kwargs.setdefault('max_value', BigIntegerModelField.MAX_BIGINT)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
|
||||
class PositiveBigIntegerField(BigIntegerField):
|
||||
"""
|
||||
An IntegerField constrained to the range supported by Django's
|
||||
PositiveBigIntegerField model field.
|
||||
"""
|
||||
def __init__(self, *args, **kwargs):
|
||||
kwargs.setdefault('min_value', 0)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
|
||||
class QueryField(forms.CharField):
|
||||
"""
|
||||
A CharField subclass used for global search/query fields in filter forms.
|
||||
|
||||
Reference in New Issue
Block a user