mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-12 11:29:36 -06:00
Move changelogging filters to ChangeLoggingMixin
This commit is contained in:
parent
19e056bf8e
commit
bfab461e43
24
netbox/core/graphql/filter_mixins.py
Normal file
24
netbox/core/graphql/filter_mixins.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
from dataclasses import dataclass
|
||||||
|
from datetime import datetime
|
||||||
|
from typing import Annotated, TYPE_CHECKING
|
||||||
|
|
||||||
|
import strawberry
|
||||||
|
import strawberry_django
|
||||||
|
from strawberry_django import DatetimeFilterLookup
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from .filters import *
|
||||||
|
|
||||||
|
__all__ = (
|
||||||
|
'ChangeLoggingMixin',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class ChangeLoggingMixin:
|
||||||
|
# TODO: "changelog" is not a valid field name; needs to be updated for ObjectChange
|
||||||
|
changelog: Annotated['ObjectChangeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
||||||
|
strawberry_django.filter_field()
|
||||||
|
)
|
||||||
|
created: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
||||||
|
last_updated: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
||||||
@ -1,12 +1,11 @@
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from datetime import datetime
|
from typing import TYPE_CHECKING
|
||||||
from typing import Annotated, TYPE_CHECKING
|
|
||||||
|
|
||||||
import strawberry
|
|
||||||
import strawberry_django
|
import strawberry_django
|
||||||
from strawberry import ID
|
from strawberry import ID
|
||||||
from strawberry_django import FilterLookup, DatetimeFilterLookup
|
from strawberry_django import FilterLookup
|
||||||
|
|
||||||
|
from core.graphql.filter_mixins import ChangeLoggingMixin
|
||||||
from extras.graphql.filter_mixins import CustomFieldsFilterMixin, JournalEntriesFilterMixin, TagsFilterMixin
|
from extras.graphql.filter_mixins import CustomFieldsFilterMixin, JournalEntriesFilterMixin, TagsFilterMixin
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
@ -22,25 +21,21 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
class BaseModelFilter:
|
class BaseModelFilter:
|
||||||
id: FilterLookup[ID] | None = strawberry_django.filter_field()
|
id: FilterLookup[ID] | None = strawberry_django.filter_field()
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
class ChangeLoggedModelFilter(ChangeLoggingMixin, BaseModelFilter):
|
||||||
class ChangeLoggedModelFilter(BaseModelFilter):
|
pass
|
||||||
# TODO: "changelog" is not a valid field name; needs to be updated for ObjectChange
|
|
||||||
changelog: Annotated['ObjectChangeFilter', strawberry.lazy('core.graphql.filters')] | None = (
|
|
||||||
strawberry_django.filter_field()
|
|
||||||
)
|
|
||||||
created: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
|
||||||
last_updated: DatetimeFilterLookup[datetime] | None = strawberry_django.filter_field()
|
|
||||||
|
|
||||||
|
|
||||||
class NetBoxModelFilter(
|
class NetBoxModelFilter(
|
||||||
CustomFieldsFilterMixin,
|
CustomFieldsFilterMixin,
|
||||||
JournalEntriesFilterMixin,
|
JournalEntriesFilterMixin,
|
||||||
TagsFilterMixin,
|
TagsFilterMixin,
|
||||||
ChangeLoggedModelFilter,
|
ChangeLoggingMixin,
|
||||||
|
BaseModelFilter
|
||||||
):
|
):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user