Initial work on NetBox v3.2 support (#88)

Co-authored-by: mattieserver <3049868+mattieserver@users.noreply.github.com>
This commit is contained in:
Jeremy Stretch
2022-03-25 13:13:33 +01:00
committed by GitHub
co-authored by mattieserver
parent e68a8a1af0
commit 62c0dbddb2
6 changed files with 53 additions and 61 deletions
-3
View File
@@ -1,3 +0,0 @@
from django.contrib import admin
#no models yet
+12 -9
View File
@@ -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."""
+14 -12
View File
@@ -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)
-3
View File
@@ -1,3 +0,0 @@
from django.db import models
# no modeles yet
+1 -9
View File
@@ -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'
),
)
@@ -36,7 +36,7 @@
<li class="nav-item" role="presentation">
<button class="nav-link" id="filters-form-tab" data-bs-toggle="tab" data-bs-target="#filters-form" type="button" role="tab" aria-controls="object-list" aria-selected="false">
Filters
{% if filter_form %}{% badge filter_form.changed_data|length bg_class="primary" %}{% endif %}
{% if filter_form %}{% badge filter_form.changed_data|length bg_color="blue" %}{% endif %}
</button>
</li>
{% endif %}
@@ -65,10 +65,11 @@
{% endif %}
</div>
<script src="{% static 'netbox_topology_views/js/vendor.js' %}"></script>
<script src="{% static 'netbox_topology_views/js/app.js' %}"></script>
<script type="application/javascript"> iniPlotboxIndex()</script>
{% endwith %}
{% endblock content-wrapper %}
{% block javascript %}
<script src="{% static 'netbox_topology_views/js/vendor.js' %}"></script>
<script src="{% static 'netbox_topology_views/js/app.js' %}"></script>
<script type="application/javascript">iniPlotboxIndex()</script>
{% endblock javascript %}