Coverage for netbox_data_import/filters.py: 100.00%
15 statements
« prev ^ index » next coverage.py v7.17.0, created at 2026-10-30 09:47 +0000
« prev ^ index » next coverage.py v7.17.0, created at 2026-10-30 09:47 +0000
1# SPDX-License-Identifier: Apache-2.0
2# Copyright (C) 2025 Marcin Zieba <marcinpsk@gmail.com>
3from django.db.models import Q
4from netbox.filtersets import NetBoxModelFilterSet
5from .models import ImportProfile, InferenceBackend
8class ImportProfileFilterSet(NetBoxModelFilterSet):
9 """FilterSet for ImportProfile, supporting name substring search."""
11 class Meta:
12 model = ImportProfile
13 fields = ["name", "source_adapter"]
15 def search(self, queryset, name, value):
16 """Filter profiles by name substring."""
17 return queryset.filter(name__icontains=value)
20class InferenceBackendFilterSet(NetBoxModelFilterSet):
21 """FilterSet for InferenceBackend, supporting key and display name search."""
23 class Meta:
24 model = InferenceBackend
25 fields = ["backend_key", "display_name", "adapter_type", "response_mode", "enabled"]
27 def search(self, queryset, name, value):
28 """Filter backends by key or display name substring."""
29 return queryset.filter(Q(backend_key__icontains=value) | Q(display_name__icontains=value))