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