diff --git a/README.md b/README.md index 637c3f6..7bcffc7 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ Then run `python3 manage.py collectstatic --no-input` | netbox version | netbox-topology-views version | | ------------- |-------------| +| >= 3.1.8 | >= v1.0.0a1 | | >= 2.11.1 | >= v0.5.3 | | >= 2.10.0 | >= v0.5.0 | | < 2.10.0 | =< v0.4.10 | @@ -55,20 +56,21 @@ Example: ``` PLUGINS_CONFIG = { 'netbox_topology_views': { - 'device_img': 'router,switch,firewall', - 'preselected_device_roles': 'Router, Firewall' + 'device_img': ['router','switch', 'firewall'], + 'preselected_device_roles': ['Router', 'Firewall'] } } ``` | Setting | Default value | Description | | ------------- |-------------| -----| -| device_img | 'access-switch,core-switch,firewall,router,distribution-switch,backup,storage,wan-network,wireless-ap,server,internal-switch,isp-cpe-material,non-racked-devices,power-units' | The slug of the device roles that you have a image for. | -| preselected_device_roles | 'Firewall,Router,Distribution Switch,Core Switch,Internal Switch,Access Switch,Server,Storage,Backup,Wireless AP' | The full name of the device roles you want to pre select in the global view. Note that this is case sensitive| +| device_img |['access-switch', 'core-switch', 'firewall', 'router', 'distribution-switch', 'backup', 'storage,wan-network', 'wireless-ap', 'server', 'internal-switch', 'isp-cpe-material', 'non-racked-devices', 'power-units'] | The slug of the device roles that you have a image for. | +| preselected_device_roles | ['Firewall', 'Router', 'Distribution Switch', 'Core Switch', 'Internal Switch', 'Access Switch', 'Server', 'Storage', 'Backup', 'Wireless AP'] | The full name of the device roles you want to pre select in the global view. Note that this is case sensitive| | allow_coordinates_saving | False | (bool) Set to true if you use the custom coordinates fields and want to save the coordinates | -| ignore_cable_type | 'power outlet,power port' | The cable types that you want to ignore in the views | -| preselected_tags | '' | The name of tags you want to preload | +| ignore_cable_type | ['power outlet', 'power port'] | The cable types that you want to ignore in the views | +| preselected_tags | '[]' | The name of tags you want to preload | | enable_circuit_terminations | False | (bool) Set to true if you want to see circuit terminations in the topology | +| draw_default_layout | False | (bool) Set to True if you want to load draw the topology on the initial load (when you go to the topology plugin page) | ### Custom Images diff --git a/netbox_topology_views/__init__.py b/netbox_topology_views/__init__.py index 65ff4fc..8a2f7e3 100644 --- a/netbox_topology_views/__init__.py +++ b/netbox_topology_views/__init__.py @@ -4,7 +4,7 @@ class TopologyViewsConfig(PluginConfig): name = 'netbox_topology_views' verbose_name = 'Topology views' description = 'An plugin to render topology maps' - version = '1.0.0-alpha.1' + version = '1.0.0-alpha.2' author = 'Mattijs Vanhaverbeke' author_email = 'author@example.com' base_url = 'netbox_topology_views' diff --git a/netbox_topology_views/views.py b/netbox_topology_views/views.py index 064d278..8e1941e 100644 --- a/netbox_topology_views/views.py +++ b/netbox_topology_views/views.py @@ -10,6 +10,7 @@ from .forms import DeviceFilterForm from .filters import DeviceFilterSet import json +import distutils from dcim.models import Device, Cable, DeviceRole, DeviceType from extras.models import Tag @@ -161,8 +162,13 @@ class TopologyHomeView(PermissionRequiredMixin, View): self.queryset = Device.objects.all() self.queryset = self.filterset(request.GET, self.queryset).qs topo_data = None + if request.GET: - topo_data = get_topology_data(self.queryset) + if 'draw_init' in request.GET: + if bool(distutils.util.strtobool(request.GET["draw_init"])): + topo_data = get_topology_data(self.queryset) + else: + topo_data = get_topology_data(self.queryset) else: preselected_device_roles = settings.PLUGINS_CONFIG["netbox_topology_views"]["preselected_device_roles"] preselected_tags = settings.PLUGINS_CONFIG["netbox_topology_views"]["preselected_tags"] @@ -173,6 +179,7 @@ class TopologyHomeView(PermissionRequiredMixin, View): q = QueryDict(mutable=True) q.setlist('device_role_id', list(q_device_role_id)) q.setlist('tag', list(q_tags)) + q['draw_init'] = settings.PLUGINS_CONFIG["netbox_topology_views"]["draw_default_layout"] query_string = q.urlencode() print(query_string) return HttpResponseRedirect(request.path + "?" + query_string) diff --git a/package.json b/package.json index 3347527..a570e72 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "netbox_topology_views", - "version": "1.0.0-alpha.1", + "version": "1.0.0-alpha.2", "scripts": { "resources": "gulp build", "resources_dev": "gulp build_dev" diff --git a/setup.py b/setup.py index 5a29c1e..566e23e 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ from setuptools import setup, find_packages setup( name='netbox-topology-views', - version='1.0.0-alpha.1', + version='1.0.0-alpha.2', description='An NetBox plugin to create Topology maps', url='https://github.com/mattieserver/netbox-topology-views', author='Mattijs Vanhaverbeke',