diff --git a/netbox_topology_views/admin.py b/netbox_topology_views/admin.py deleted file mode 100644 index e47da1a..0000000 --- a/netbox_topology_views/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -#no models yet \ No newline at end of file diff --git a/netbox_topology_views/filters.py b/netbox_topology_views/filters.py index 38618af..5f53284 100644 --- a/netbox_topology_views/filters.py +++ b/netbox_topology_views/filters.py @@ -1,18 +1,21 @@ import django_filters -from extras.filters import TagFilter -from dcim.models import Device, DeviceRole, Region, Site, Location -from tenancy.models import TenantGroup, Tenant -from tenancy.filtersets import TenancyFilterSet -from utilities.filters import TreeNodeMultipleChoiceFilter from django.db.models import Q -class DeviceFilterSet(TenancyFilterSet, django_filters.FilterSet): +from dcim.models import Device, DeviceRole, Region, Site, Location + +from netbox.filtersets import NetBoxModelFilterSet + +from tenancy.models import TenantGroup, Tenant +from tenancy.filtersets import TenancyFilterSet + +from utilities.filters import TreeNodeMultipleChoiceFilter + + +class DeviceFilterSet(TenancyFilterSet, NetBoxModelFilterSet): q = django_filters.CharFilter( method='search', label='Search', ) - tag = TagFilter() - device_role_id = django_filters.ModelMultipleChoiceFilter( field_name='device_role_id', queryset=DeviceRole.objects.all(), @@ -37,7 +40,7 @@ class DeviceFilterSet(TenancyFilterSet, django_filters.FilterSet): class Meta: model = Device - fields = ['id', 'name', ] + fields = ['id', 'name'] def search(self, queryset, name, value): """Perform the filtered search.""" @@ -46,4 +49,4 @@ class DeviceFilterSet(TenancyFilterSet, django_filters.FilterSet): qs_filter = ( Q(name__icontains=value) ) - return queryset.filter(qs_filter) \ No newline at end of file + return queryset.filter(qs_filter) diff --git a/netbox_topology_views/forms.py b/netbox_topology_views/forms.py index 1ab728c..f8379c9 100644 --- a/netbox_topology_views/forms.py +++ b/netbox_topology_views/forms.py @@ -1,26 +1,30 @@ import imp from django import forms from django.conf import settings + from django.utils.translation import gettext as _ -from extras.models import Tag from dcim.models import Device, Site, Region, DeviceRole, Location + +from django import forms from tenancy.models import TenantGroup, Tenant from tenancy.forms import TenancyFilterForm from django.conf import settings +from netbox.forms import NetBoxModelFilterSetForm +from utilities.forms import (TagFilterField, DynamicModelMultipleChoiceField) -from utilities.forms import (TagFilterField, DynamicModelMultipleChoiceField, FilterForm) allow_coordinates_saving = settings.PLUGINS_CONFIG["netbox_topology_views"]["allow_coordinates_saving"] -class DeviceFilterForm(TenancyFilterForm, FilterForm): + +class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm): model = Device - field_groups = [ - ['q', 'hide_unconnected', 'save_coords'], - ['tenant_group_id', 'tenant_id'], - ['region_id', 'site_id', 'location_id'], - ['device_role_id'], - ['tag'], - ] + fieldsets = ( + (None, ('q', 'hide_unconnected', 'save_coords')), + (None, ('tenant_group_id', 'tenant_id')), + (None, ('region_id', 'site_id', 'location_id')), + (None, ('device_role_id',)), + (None, ('tag',)), + ) region_id = DynamicModelMultipleChoiceField( queryset=Region.objects.all(), @@ -49,7 +53,6 @@ class DeviceFilterForm(TenancyFilterForm, FilterForm): }, label=_('Location') ) - hide_unconnected = forms.BooleanField( label=_("Hide Unconnected"), required=False, @@ -60,5 +63,4 @@ class DeviceFilterForm(TenancyFilterForm, FilterForm): required=False, disabled=(not allow_coordinates_saving), initial=False) - tag = TagFilterField(model) diff --git a/netbox_topology_views/models.py b/netbox_topology_views/models.py deleted file mode 100644 index 1e60583..0000000 --- a/netbox_topology_views/models.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.db import models - -# no modeles yet \ No newline at end of file diff --git a/netbox_topology_views/navigation.py b/netbox_topology_views/navigation.py index 34293a3..a62c6d1 100644 --- a/netbox_topology_views/navigation.py +++ b/netbox_topology_views/navigation.py @@ -4,14 +4,6 @@ from utilities.choices import ButtonColorChoices menu_items = ( PluginMenuItem( link='plugins:netbox_topology_views:home', - link_text='Topology', - buttons=( - PluginMenuButton( - link='plugins:netbox_topology_views:home', - title='Topology View', - icon_class='mdi mdi-plus-thick', - permissions=[], - ), - ) + link_text='Topology' ), -) \ No newline at end of file +) diff --git a/netbox_topology_views/templates/netbox_topology_views/index.html b/netbox_topology_views/templates/netbox_topology_views/index.html index a656fd1..102a8de 100644 --- a/netbox_topology_views/templates/netbox_topology_views/index.html +++ b/netbox_topology_views/templates/netbox_topology_views/index.html @@ -36,7 +36,7 @@ {% endif %} @@ -45,30 +45,31 @@ {% endblock tabs %} {% block content-wrapper %} -{% with config=settings.PLUGINS_CONFIG.netbox_topology_views %} -
+ {% with config=settings.PLUGINS_CONFIG.netbox_topology_views %} +
-
-
-
-
+
+
+
+
- -
+ +
- {% if filter_form %} -
- {% include 'inc/filter_list.html' %} -
- {% endif %} + {% if filter_form %} +
+ {% include 'inc/filter_list.html' %} +
+ {% endif %} -
- - - - - -{% endwith %} +
+ {% endwith %} {% endblock content-wrapper %} + +{% block javascript %} + + + +{% endblock javascript %}