Compare commits

...
6 Commits
Author SHA1 Message Date
mattieserver 78b8a5ae97 v3.7.0 (#371) 2023-08-31 13:48:01 +02:00
mattieserver 71e4807cb1 prepare for netbox v3.6.0 release (#366)
* prepare for netbox v3.6.0 release

* updated readme to reflect the version
2023-08-31 12:33:09 +02:00
mattieserver dfbe26318f bump version (#359) 2023-07-28 10:55:55 +02:00
mattieserver debc314714 added permissions (#358) 2023-07-28 10:52:34 +02:00
mattieserver d14d9c1414 3.6.1 (#348) 2023-07-11 15:26:01 +02:00
Mario d48d213b2c fixed coordinate import url (#346) 2023-07-11 15:17:02 +02:00
11 changed files with 25 additions and 20 deletions
+1
View File
@@ -50,6 +50,7 @@ python3 manage.py collectstatic --no-input
| netbox version | netbox-topology-views version | | netbox version | netbox-topology-views version |
| -------------- | ----------------------------- | | -------------- | ----------------------------- |
| >= 3.6.0 | >= v3.7.X |
| >= 3.5.0 | >= v3.4.X | | >= 3.5.0 | >= v3.4.X |
| >= 3.4.0 | >= v3.X.X | | >= 3.4.0 | >= v3.X.X |
| >= 3.3.0 | >= v3.0.0 | | >= 3.3.0 | >= v3.0.0 |
+1 -1
View File
@@ -5,7 +5,7 @@ class TopologyViewsConfig(PluginConfig):
name = "netbox_topology_views" name = "netbox_topology_views"
verbose_name = "Topology views" verbose_name = "Topology views"
description = "An plugin to render topology maps" description = "An plugin to render topology maps"
version = "3.6.0" version = "3.7.0"
author = "Mattijs Vanhaverbeke" author = "Mattijs Vanhaverbeke"
author_email = "author@example.com" author_email = "author@example.com"
base_url = "netbox_topology_views" base_url = "netbox_topology_views"
+1 -1
View File
@@ -90,7 +90,7 @@ class ExportTopoToXML(PermissionRequiredMixin, ViewSet):
self.filterset = DeviceFilterSet self.filterset = DeviceFilterSet
self.queryset = Device.objects.all().select_related( self.queryset = Device.objects.all().select_related(
"device_type", "device_role" "device_type", "role"
) )
self.queryset = self.filterset(request.GET, self.queryset).qs self.queryset = self.filterset(request.GET, self.queryset).qs
+2 -2
View File
@@ -12,8 +12,8 @@ class DeviceFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
method="search", method="search",
label="Search", label="Search",
) )
device_role_id = django_filters.ModelMultipleChoiceFilter( role_id = django_filters.ModelMultipleChoiceFilter(
field_name="device_role_id", field_name="role_id",
queryset=DeviceRole.objects.all(), queryset=DeviceRole.objects.all(),
label="Role (ID)", label="Role (ID)",
) )
+3 -3
View File
@@ -56,7 +56,7 @@ class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
( (
None, None,
( (
"device_role_id", "role_id",
"id", "id",
"status", "status",
), ),
@@ -71,7 +71,7 @@ class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), required=False, label=_("Region") queryset=Region.objects.all(), required=False, label=_("Region")
) )
device_role_id = DynamicModelMultipleChoiceField( role_id = DynamicModelMultipleChoiceField(
queryset=DeviceRole.objects.all(), required=False, label=_("Device Role") queryset=DeviceRole.objects.all(), required=False, label=_("Device Role")
) )
id = DynamicModelMultipleChoiceField( id = DynamicModelMultipleChoiceField(
@@ -82,7 +82,7 @@ class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
"location_id": "$location_id", "location_id": "$location_id",
"region_id": "$region_id", "region_id": "$region_id",
"site_id": "$site_id", "site_id": "$site_id",
"role_id": "$device_role_id", "role_id": "$role_id",
}, },
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
+9 -5
View File
@@ -7,12 +7,14 @@ coordinategroup_buttons = (
title='Add', title='Add',
icon_class='mdi mdi-plus-thick', icon_class='mdi mdi-plus-thick',
color=ButtonColorChoices.GREEN, color=ButtonColorChoices.GREEN,
permissions=['netbox_topology_views.add_coordinategroup']
), ),
PluginMenuButton( PluginMenuButton(
link='plugins:netbox_topology_views:coordinategroup_import', link='plugins:netbox_topology_views:coordinategroup_import',
title='Import', title='Import',
icon_class='mdi mdi-upload', icon_class='mdi mdi-upload',
color=ButtonColorChoices.CYAN, color=ButtonColorChoices.CYAN,
permissions=['netbox_topology_views.add_coordinategroup']
) )
) )
@@ -22,12 +24,14 @@ coordinate_buttons = (
title='Add', title='Add',
icon_class='mdi mdi-plus-thick', icon_class='mdi mdi-plus-thick',
color=ButtonColorChoices.GREEN, color=ButtonColorChoices.GREEN,
permissions=['netbox_topology_views.add_coordinate']
), ),
PluginMenuButton( PluginMenuButton(
link='plugins:netbox_topology_views:coordinate_import', link='plugins:netbox_topology_views:coordinate_import',
title='Import', title='Import',
icon_class='mdi mdi-upload', icon_class='mdi mdi-upload',
color=ButtonColorChoices.CYAN, color=ButtonColorChoices.CYAN,
permissions=['netbox_topology_views.add_coordinate']
) )
) )
@@ -37,15 +41,15 @@ menu = PluginMenu(
groups=( groups=(
('TOPOLOGY', ('TOPOLOGY',
( (
PluginMenuItem(link="plugins:netbox_topology_views:home", link_text="Topology"), PluginMenuItem(link="plugins:netbox_topology_views:home", link_text="Topology", permissions=["dcim.view_site", "dcim.view_device"]),
PluginMenuItem(link="plugins:netbox_topology_views:coordinategroup_list", link_text="Coordinate Groups", buttons=coordinategroup_buttons), PluginMenuItem(link="plugins:netbox_topology_views:coordinategroup_list", link_text="Coordinate Groups", buttons=coordinategroup_buttons, permissions=['netbox_topology_views.view_coordinategroup']),
PluginMenuItem(link="plugins:netbox_topology_views:coordinate_list", link_text="Coordinates", buttons=coordinate_buttons), PluginMenuItem(link="plugins:netbox_topology_views:coordinate_list", link_text="Coordinates", buttons=coordinate_buttons, permissions=['netbox_topology_views.view_coordinate']),
), ),
), ),
('PREFERENCES', ('PREFERENCES',
( (
PluginMenuItem(link="plugins:netbox_topology_views:images", link_text="Images"), PluginMenuItem(link="plugins:netbox_topology_views:images", link_text="Images", permissions=[ "dcim.view_site","dcim.view_device_role"]),
PluginMenuItem(link="plugins:netbox_topology_views:individualoptions", link_text="Individual Options"), PluginMenuItem(link="plugins:netbox_topology_views:individualoptions", link_text="Individual Options", permissions=['netbox_topology_views.change_individualoptions']),
), ),
), ),
), ),
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "netbox_topology_views", "name": "netbox_topology_views",
"version": "3.6.0", "version": "3.6.2",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "netbox_topology_views", "name": "netbox_topology_views",
"version": "3.6.0", "version": "3.6.2",
"dependencies": { "dependencies": {
"vis-data": "^7.1.6", "vis-data": "^7.1.6",
"vis-network": "^9.1.6", "vis-network": "^9.1.6",
@@ -1,7 +1,7 @@
{ {
"private": true, "private": true,
"name": "netbox_topology_views", "name": "netbox_topology_views",
"version": "3.6.0", "version": "3.7.0",
"scripts": { "scripts": {
"bundle": "node bundle.js", "bundle": "node bundle.js",
"bundle:styles": "node bundle.js --styles", "bundle:styles": "node bundle.js --styles",
+1 -1
View File
@@ -14,7 +14,7 @@ urlpatterns = (
# Coordinate Group # Coordinate Group
path("coordinate-groups/", views.CoordinateGroupListView.as_view(), name="coordinategroup_list"), path("coordinate-groups/", views.CoordinateGroupListView.as_view(), name="coordinategroup_list"),
path("coordinate-groups/add/", views.CoordinateGroupAddView.as_view(), name="coordinategroup_add"), path("coordinate-groups/add/", views.CoordinateGroupAddView.as_view(), name="coordinategroup_add"),
path('coordinate/import/', views.CoordinateGroupBulkImportView.as_view(), name='coordinategroup_import'), path('coordinate-groups/import/', views.CoordinateGroupBulkImportView.as_view(), name='coordinategroup_import'),
path("coordinate-groups/<int:pk>/", views.CoordinateGroupView.as_view(), name="coordinategroup"), path("coordinate-groups/<int:pk>/", views.CoordinateGroupView.as_view(), name="coordinategroup"),
path("coordinate-groups/<int:pk>/edit/", views.CoordinateGroupEditView.as_view(), name="coordinategroup_edit"), path("coordinate-groups/<int:pk>/edit/", views.CoordinateGroupEditView.as_view(), name="coordinategroup_edit"),
path("coordinate-groups/<int:pk>/delete/", views.CoordinateGroupDeleteView.as_view(), name="coordinategroup_delete"), path("coordinate-groups/<int:pk>/delete/", views.CoordinateGroupDeleteView.as_view(), name="coordinategroup_delete"),
+3 -3
View File
@@ -67,7 +67,7 @@ from netbox_topology_views.utils import (
def get_image_for_entity(entity: Union[Device, Circuit, PowerPanel, PowerFeed]): def get_image_for_entity(entity: Union[Device, Circuit, PowerPanel, PowerFeed]):
is_device = isinstance(entity, Device) is_device = isinstance(entity, Device)
query = ( query = (
{"object_id": entity.device_role_id} {"object_id": entity.role_id}
if is_device if is_device
else {"content_type_id": ContentType.objects.get_for_model(entity).pk} else {"content_type_id": ContentType.objects.get_for_model(entity).pk}
) )
@@ -653,7 +653,7 @@ class TopologyHomeView(PermissionRequiredMixin, View):
def get(self, request): def get(self, request):
self.filterset = DeviceFilterSet self.filterset = DeviceFilterSet
self.queryset = Device.objects.all().select_related( self.queryset = Device.objects.all().select_related(
"device_type", "device_role" "device_type", "role"
) )
self.queryset = self.filterset(request.GET, self.queryset).qs self.queryset = self.filterset(request.GET, self.queryset).qs
self.model = self.queryset.model self.model = self.queryset.model
@@ -694,7 +694,7 @@ class TopologyHomeView(PermissionRequiredMixin, View):
preselected_tags = IndividualOptions.objects.get(id=individualOptions.id).preselected_tags.all().values_list(Lower('name'), flat=True) preselected_tags = IndividualOptions.objects.get(id=individualOptions.id).preselected_tags.all().values_list(Lower('name'), flat=True)
q = QueryDict(mutable=True) q = QueryDict(mutable=True)
q.setlist("device_role_id", list(preselected_device_roles)) q.setlist("role_id", list(preselected_device_roles))
q.setlist("tag", list(preselected_tags)) q.setlist("tag", list(preselected_tags))
if individualOptions.save_coords: q['save_coords'] = "on" if individualOptions.save_coords: q['save_coords'] = "on"
+1 -1
View File
@@ -7,7 +7,7 @@ long_description = readme.read_text()
setup( setup(
name="netbox-topology-views", name="netbox-topology-views",
version="3.6.0", version="3.7.0",
description="An NetBox plugin to create Topology maps", description="An NetBox plugin to create Topology maps",
long_description=long_description, long_description=long_description,
long_description_content_type="text/markdown", long_description_content_type="text/markdown",