Housekeeping

This commit is contained in:
dreng
2023-05-07 09:01:14 +02:00
parent 334409ffa8
commit d478c92fc8
6 changed files with 16 additions and 11 deletions
+3 -1
View File
@@ -19,7 +19,9 @@ from netbox_topology_views.views import get_topology_data
from netbox_topology_views.utils import get_image_from_url, export_data_to_xml, get_query_settings from netbox_topology_views.utils import get_image_from_url, export_data_to_xml, get_query_settings
from netbox_topology_views.filters import DeviceFilterSet from netbox_topology_views.filters import DeviceFilterSet
class SaveCoordsViewSet(ReadOnlyModelViewSet): class SaveCoordsViewSet(PermissionRequiredMixin, ReadOnlyModelViewSet):
permission_required = 'netbox_topology_views.change_coordinate'
queryset = Device.objects.none() queryset = Device.objects.none()
serializer_class = TopologyDummySerializer serializer_class = TopologyDummySerializer
+2 -3
View File
@@ -1,12 +1,11 @@
import django_filters import django_filters
from dcim.choices import DeviceStatusChoices from dcim.choices import DeviceStatusChoices
from dcim.models import Device, DeviceRole, Location, Rack, Region, Site from dcim.models import Device, DeviceRole, Location, Rack, Region, Site
from .models import Coordinate, CoordinateGroup
from django.db.models import Q from django.db.models import Q
from netbox.filtersets import NetBoxModelFilterSet from netbox.filtersets import NetBoxModelFilterSet
from tenancy.filtersets import TenancyFilterSet from tenancy.filtersets import TenancyFilterSet
from utilities.filters import TreeNodeMultipleChoiceFilter from utilities.filters import TreeNodeMultipleChoiceFilter
from netbox_topology_views.models import CoordinateGroup, Coordinate
class DeviceFilterSet(TenancyFilterSet, NetBoxModelFilterSet): class DeviceFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
q = django_filters.CharFilter( q = django_filters.CharFilter(
@@ -75,4 +74,4 @@ class CoordinatesFilterSet(NetBoxModelFilterSet):
return queryset.filter( return queryset.filter(
Q(group__name__icontains=value) | Q(group__name__icontains=value) |
Q(device__name__icontains=value) Q(device__name__icontains=value)
) )
+8 -4
View File
@@ -15,13 +15,11 @@ from django.conf import settings
from netbox.forms import NetBoxModelFilterSetForm, NetBoxModelForm from netbox.forms import NetBoxModelFilterSetForm, NetBoxModelForm
from utilities.forms.fields import ( from utilities.forms.fields import (
TagFilterField, TagFilterField,
DynamicModelChoiceField,
DynamicModelMultipleChoiceField, DynamicModelMultipleChoiceField,
MultipleChoiceField MultipleChoiceField
) )
from netbox_topology_views.models import IndividualOptions, CoordinateGroup, Coordinate
from .models import IndividualOptions, CoordinateGroup, Coordinate
class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm): class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
model = Device model = Device
@@ -31,6 +29,11 @@ class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
( (
"q", "q",
"filter_id", "filter_id",
),
),
(
None,
(
"group", "group",
"save_coords", "save_coords",
"show_unconnected", "show_unconnected",
@@ -63,7 +66,8 @@ class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
) )
group = forms.ModelChoiceField( group = forms.ModelChoiceField(
queryset=CoordinateGroup.objects.all(), queryset=CoordinateGroup.objects.all(),
required=False required=False,
label=_("Coordinate group"),
) )
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), required=False, label=_("Region") queryset=Region.objects.all(), required=False, label=_("Region")
+1 -1
View File
@@ -1,7 +1,7 @@
import django_tables2 as tables import django_tables2 as tables
from netbox.tables import NetBoxTable, ChoiceFieldColumn from netbox.tables import NetBoxTable, ChoiceFieldColumn
from .models import CoordinateGroup, Coordinate from netbox_topology_views.models import CoordinateGroup, Coordinate
class CoordinateGroupListTable(NetBoxTable): class CoordinateGroupListTable(NetBoxTable):
name = tables.Column( name = tables.Column(
@@ -55,7 +55,6 @@
{# Applied filters #} {# Applied filters #}
{% if filter_form %} {% if filter_form %}
{% applied_filters model filter_form request.GET %} {% applied_filters model filter_form request.GET %}
<hr style="margin-top: 0px;">
{% endif %} {% endif %}
<div class="tab-pane show active" id="networks" role="tabpanel" aria-labelledby="network-tab"> <div class="tab-pane show active" id="networks" role="tabpanel" aria-labelledby="network-tab">
+2 -1
View File
@@ -159,6 +159,7 @@ def create_node(
if group_id is None or group_id == "default": if group_id is None or group_id == "default":
group_id = Coordinate.get_or_create_default_group(group_id) group_id = Coordinate.get_or_create_default_group(group_id)
if not group_id: if not group_id:
print('Exception occured while handling default group. Setting node to 0;0.')
node["x"] = 0 node["x"] = 0
node["y"] = 0 node["y"] = 0
return node return node
@@ -855,7 +856,7 @@ class CoordinateGroupChangeLogView(PermissionRequiredMixin, ObjectChangeLogView)
queryset = CoordinateGroup.objects.all() queryset = CoordinateGroup.objects.all()
class TopologyIndividualOptionsView(PermissionRequiredMixin, View): class TopologyIndividualOptionsView(PermissionRequiredMixin, View):
permission_required = 'netbox_topology_views.change_individualoption' permission_required = 'netbox_topology_views.change_individualoptions'
def post(self, request): def post(self, request):
instance = IndividualOptions.objects.get(user_id=request.user.id) instance = IndividualOptions.objects.get(user_id=request.user.id)