Files
netbox-librenms-plugin/netbox_librenms_plugin/views/mapping_views.py
Vlastislav Svatek 673e67106e
Some checks failed
ci / deploy (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
first commit
2026-06-05 10:39:05 +02:00

87 lines
2.9 KiB
Python

from netbox.views import generic
from utilities.views import register_model_view
from netbox_librenms_plugin.filters import InterfaceTypeMappingFilterSet
from netbox_librenms_plugin.forms import (
InterfaceTypeMappingFilterForm,
InterfaceTypeMappingForm,
InterfaceTypeMappingImportForm,
)
from netbox_librenms_plugin.models import InterfaceTypeMapping
from netbox_librenms_plugin.tables.mappings import InterfaceTypeMappingTable
from netbox_librenms_plugin.views.mixins import LibreNMSPermissionMixin
class InterfaceTypeMappingListView(LibreNMSPermissionMixin, generic.ObjectListView):
"""
Provides a view for listing all `InterfaceTypeMapping` objects.
"""
queryset = InterfaceTypeMapping.objects.all()
table = InterfaceTypeMappingTable
filterset = InterfaceTypeMappingFilterSet
filterset_form = InterfaceTypeMappingFilterForm
template_name = "netbox_librenms_plugin/interfacetypemapping_list.html"
class InterfaceTypeMappingCreateView(LibreNMSPermissionMixin, generic.ObjectEditView):
"""
Provides a view for creating a new `InterfaceTypeMapping` object.
"""
queryset = InterfaceTypeMapping.objects.all()
form = InterfaceTypeMappingForm
@register_model_view(InterfaceTypeMapping, "bulk_import", path="import", detail=False)
class InterfaceTypeMappingBulkImportView(LibreNMSPermissionMixin, generic.BulkImportView):
"""
Provides a view for bulk importing `InterfaceTypeMapping` objects from CSV, JSON, or YAML.
Supports three import methods: direct import, file upload, and data file.
"""
queryset = InterfaceTypeMapping.objects.all()
model_form = InterfaceTypeMappingImportForm
class InterfaceTypeMappingView(LibreNMSPermissionMixin, generic.ObjectView):
"""
Provides a view for displaying details of a specific `InterfaceTypeMapping` object.
"""
queryset = InterfaceTypeMapping.objects.all()
class InterfaceTypeMappingEditView(LibreNMSPermissionMixin, generic.ObjectEditView):
"""
Provides a view for editing a specific `InterfaceTypeMapping` object.
"""
queryset = InterfaceTypeMapping.objects.all()
form = InterfaceTypeMappingForm
class InterfaceTypeMappingDeleteView(LibreNMSPermissionMixin, generic.ObjectDeleteView):
"""
Provides a view for deleting a specific `InterfaceTypeMapping` object.
"""
queryset = InterfaceTypeMapping.objects.all()
class InterfaceTypeMappingBulkDeleteView(LibreNMSPermissionMixin, generic.BulkDeleteView):
"""
Provides a view for deleting multiple `InterfaceTypeMapping` objects.
"""
queryset = InterfaceTypeMapping.objects.all()
table = InterfaceTypeMappingTable
class InterfaceTypeMappingChangeLogView(LibreNMSPermissionMixin, generic.ObjectChangeLogView):
"""
Provides a view for displaying the change log of a specific `InterfaceTypeMapping` object.
"""
queryset = InterfaceTypeMapping.objects.all()