Clean up filtersets

This commit is contained in:
jeremystretch 2023-02-01 21:38:19 -05:00
parent 81b3062e1e
commit 3773c1a8fa
5 changed files with 22 additions and 11 deletions

View File

@ -3,7 +3,8 @@ from django.utils.translation import gettext as _
import django_filters import django_filters
from netbox.filtersets import NetBoxModelFilterSet from netbox.filtersets import ChangeLoggedModelFilterSet, NetBoxModelFilterSet
from .choices import *
from .models import * from .models import *
__all__ = ( __all__ = (
@ -13,10 +14,18 @@ __all__ = (
class DataSourceFilterSet(NetBoxModelFilterSet): class DataSourceFilterSet(NetBoxModelFilterSet):
type = django_filters.MultipleChoiceFilter(
choices=DataSourceTypeChoices,
null_value=None
)
status = django_filters.MultipleChoiceFilter(
choices=DataSourceStatusChoices,
null_value=None
)
class Meta: class Meta:
model = DataSource model = DataSource
fields = ('id', 'name', 'type', 'enabled', 'status') fields = ('id', 'name', 'enabled')
def search(self, queryset, name, value): def search(self, queryset, name, value):
if not value.strip(): if not value.strip():
@ -28,7 +37,7 @@ class DataSourceFilterSet(NetBoxModelFilterSet):
) )
class DataFileFilterSet(django_filters.FilterSet): class DataFileFilterSet(ChangeLoggedModelFilterSet):
q = django_filters.CharFilter( q = django_filters.CharFilter(
method='search' method='search'
) )

View File

@ -5,8 +5,8 @@ from .types import *
class CoreQuery(graphene.ObjectType): class CoreQuery(graphene.ObjectType):
datafile = ObjectField(DataFileType) data_file = ObjectField(DataFileType)
datafile_list = ObjectListField(DataFileType) data_file_list = ObjectListField(DataFileType)
datasource = ObjectField(DataSourceType) data_source = ObjectField(DataSourceType)
datasource_list = ObjectListField(DataSourceType) data_source_list = ObjectListField(DataSourceType)

View File

@ -1,5 +1,5 @@
from core import filtersets, models from core import filtersets, models
from netbox.graphql.types import NetBoxObjectType from netbox.graphql.types import BaseObjectType, NetBoxObjectType
__all__ = ( __all__ = (
'DataFileType', 'DataFileType',
@ -7,7 +7,7 @@ __all__ = (
) )
class DataFileType(NetBoxObjectType): class DataFileType(BaseObjectType):
class Meta: class Meta:
model = models.DataFile model = models.DataFile
exclude = ('data',) exclude = ('data',)

View File

@ -1,4 +1,4 @@
# Generated by Django 4.1.5 on 2023-02-02 01:47 # Generated by Django 4.1.5 on 2023-02-02 02:37
import django.core.validators import django.core.validators
from django.db import migrations, models from django.db import migrations, models
@ -43,6 +43,7 @@ class Migration(migrations.Migration):
name='DataFile', name='DataFile',
fields=[ fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False)), ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False)),
('created', models.DateTimeField(auto_now_add=True, null=True)),
('path', models.CharField(editable=False, max_length=1000)), ('path', models.CharField(editable=False, max_length=1000)),
('last_updated', models.DateTimeField(editable=False)), ('last_updated', models.DateTimeField(editable=False)),
('size', models.PositiveIntegerField(editable=False)), ('size', models.PositiveIntegerField(editable=False)),

View File

@ -15,6 +15,7 @@ from django.utils.translation import gettext as _
from extras.models import JobResult from extras.models import JobResult
from netbox.models import PrimaryModel from netbox.models import PrimaryModel
from netbox.models.features import ChangeLoggingMixin
from netbox.registry import registry from netbox.registry import registry
from utilities.files import sha256_hash from utilities.files import sha256_hash
from utilities.querysets import RestrictedQuerySet from utilities.querysets import RestrictedQuerySet
@ -226,7 +227,7 @@ class DataSource(PrimaryModel):
return False return False
class DataFile(models.Model): class DataFile(ChangeLoggingMixin, models.Model):
""" """
The database representation of a remote file fetched from a remote DataSource. DataFile instances should be created, The database representation of a remote file fetched from a remote DataSource. DataFile instances should be created,
updated, or deleted only by calling DataSource.sync(). updated, or deleted only by calling DataSource.sync().