|
| 1 | +from typing import Annotated, Union |
| 2 | + |
| 3 | +import strawberry |
1 | 4 | import strawberry_django |
| 5 | + |
| 6 | +from core.graphql.filter_mixins import BaseObjectTypeFilterMixin |
2 | 7 | from netbox_lifecycle import filtersets, models |
3 | 8 |
|
4 | | -from netbox.graphql.filter_mixins import autotype_decorator, BaseFilterMixin |
5 | 9 |
|
6 | 10 | __all__ = ( |
7 | 11 | 'VendorFilter', |
|
15 | 19 |
|
16 | 20 |
|
17 | 21 | @strawberry_django.filter(models.Vendor, lookups=True) |
18 | | -@autotype_decorator(filtersets.VendorFilterSet) |
19 | | -class VendorFilter(BaseFilterMixin): |
| 22 | +class VendorFilter(BaseObjectTypeFilterMixin): |
20 | 23 | pass |
21 | 24 |
|
22 | 25 |
|
23 | 26 | @strawberry_django.filter(models.SupportSKU, lookups=True) |
24 | | -@autotype_decorator(filtersets.SupportSKUFilterSet) |
25 | | -class SupportSKUFilter(BaseFilterMixin): |
26 | | - pass |
| 27 | +class SupportSKUFilter(BaseObjectTypeFilterMixin): |
| 28 | + manufacturer: Annotated['ManufacturerFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field() |
| 29 | + manufacturer_id: strawberry.ID | None = strawberry_django.filter_field() |
27 | 30 |
|
28 | 31 |
|
29 | 32 | @strawberry_django.filter(models.SupportContract, lookups=True) |
30 | | -@autotype_decorator(filtersets.SupportContractFilterSet) |
31 | | -class SupportContractFilter(BaseFilterMixin): |
32 | | - pass |
| 33 | +class SupportContractFilter(BaseObjectTypeFilterMixin): |
| 34 | + vendor: Annotated['ManufacturerFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field() |
| 35 | + vendor_id: strawberry.ID | None = strawberry_django.filter_field() |
33 | 36 |
|
34 | 37 |
|
35 | 38 | @strawberry_django.filter(models.SupportContractAssignment, lookups=True) |
36 | | -@autotype_decorator(filtersets.SupportContractAssignmentFilterSet) |
37 | | -class SupportContractAssignmentFilter(BaseFilterMixin): |
38 | | - pass |
| 39 | +class SupportContractAssignmentFilter(BaseObjectTypeFilterMixin): |
| 40 | + contract: Annotated['SupportContractFilter', strawberry.lazy('netbox_lifecycle.graphql.filters')] | None = strawberry_django.filter_field() |
| 41 | + contract_id: strawberry.ID | None = strawberry_django.filter_field() |
| 42 | + sku: Annotated['SupportSKUFilter', strawberry.lazy('netbox_lifecycle.graphql.filters')] | None = strawberry_django.filter_field() |
| 43 | + sku_id: strawberry.ID | None = strawberry_django.filter_field() |
| 44 | + device: Annotated['DeviceFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field() |
| 45 | + device_id: strawberry.ID | None = strawberry_django.filter_field() |
| 46 | + license: Annotated['LicenseFilter', strawberry.lazy('netbox_lifecycle.graphql.filters')] | None = strawberry_django.filter_field() |
| 47 | + license_id: strawberry.ID | None = strawberry_django.filter_field() |
39 | 48 |
|
40 | 49 |
|
41 | 50 | @strawberry_django.filter(models.License, lookups=True) |
42 | | -@autotype_decorator(filtersets.LicenseFilterSet) |
43 | | -class LicenseFilter(BaseFilterMixin): |
44 | | - pass |
45 | | - pass |
| 51 | +class LicenseFilter(BaseObjectTypeFilterMixin): |
| 52 | + manufacturer: Annotated['ManufacturerFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field() |
| 53 | + manufacturer_id: strawberry.ID | None = strawberry_django.filter_field() |
46 | 54 |
|
47 | 55 |
|
48 | 56 | @strawberry_django.filter(models.LicenseAssignment, lookups=True) |
49 | | -@autotype_decorator(filtersets.LicenseAssignmentFilterSet) |
50 | | -class LicenseAssignmentFilter(BaseFilterMixin): |
51 | | - pass |
| 57 | +class LicenseAssignmentFilter(BaseObjectTypeFilterMixin): |
| 58 | + vendor: Annotated['VendorFilter', strawberry.lazy('netbox_lifecycle.graphql.filters')] | None = strawberry_django.filter_field() |
| 59 | + vendor_id: strawberry.ID | None = strawberry_django.filter_field() |
| 60 | + license: Annotated['LicenseFilter', strawberry.lazy('netbox_lifecycle.graphql.filters')] | None = strawberry_django.filter_field() |
| 61 | + license_id: strawberry.ID | None = strawberry_django.filter_field() |
| 62 | + device: Annotated['DeviceFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field() |
| 63 | + device_id: strawberry.ID | None = strawberry_django.filter_field() |
52 | 64 |
|
53 | 65 |
|
54 | 66 | @strawberry_django.filter(models.HardwareLifecycle, lookups=True) |
55 | | -@autotype_decorator(filtersets.HardwareLifecycleFilterSet) |
56 | | -class HardwareLifecycleFilter(BaseFilterMixin): |
57 | | - pass |
| 67 | +class HardwareLifecycleFilter(BaseObjectTypeFilterMixin): |
| 68 | + device_type: Annotated['DeviceTypeFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field() |
| 69 | + device_type_id: strawberry.ID | None = strawberry_django.filter_field() |
| 70 | + module_type: Annotated['ModuleTypeFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field() |
| 71 | + module_type_id: strawberry.ID | None = strawberry_django.filter_field() |
| 72 | + |
| 73 | + assigned_object_type: Annotated['ContentTypeFilter', strawberry.lazy('core.graphql.filters')] | None = ( |
| 74 | + strawberry_django.filter_field() |
| 75 | + ) |
| 76 | + assigned_object_id: strawberry.ID | None = strawberry_django.filter_field() |
0 commit comments