Compare commits

...

6 Commits

Author SHA1 Message Date
Victor Golovanenko
03092bcf31
Release version 0.1.3. 2023-06-08 13:02:53 +03:00
Victor Golovanenko
43d2e5d33e
README.md: updated documentation URL for Leaflet, added requirements information. 2023-06-08 12:59:48 +03:00
Victor Golovanenko
92642604fe
Make imports compatible with NetBox v3.2~3.5 2023-06-08 12:53:49 +03:00
Victor Golovanenko
494234b363
Merge pull request #2 from ghaberek/master
Fix imports for NetBox v.3.5.0
2023-06-08 12:52:29 +03:00
Gregory Haberek
322c1e7cdd
Fix imports for NetBox v.3.5.0 2023-05-02 18:00:20 -04:00
Victor Golovanenko
f7568c06c7
Release version 0.1.2 2022-08-26 18:01:53 +03:00
4 changed files with 44 additions and 16 deletions

View File

@ -5,33 +5,47 @@ A simple device map plugin with filtering criteria for NetBox
![Map filters screenshot](docs/images/screenshot_map_filters.png)
## Installation
1. Download plugin distribution from releases.
2. If your NetBox installation uses virtualenv, activate it like this:
### Requirements
The plugin has been tested and confirmed works on NetBox versions from 3.2 to 3.5 and Python versions from 3.10 to 3.11.
### Steps
1. If your NetBox installation uses virtualenv, activate it like this:
```
source /opt/netbox/venv/bin/activate
```
3. Install the plugin from the distribution:
```
sudo pip install /path/to/netbox-plugin-device-map.tar.gz
```
4. Add plugin to `local_requirements.txt`:
2. Install the plugin.
To ensure plugin is automatically re-installed during future NetBox upgrades, create a file named `local_requirements.txt` (if not already existing) in the NetBox root directory
and list the `nextbox-plugin-device-map` package:
- Option A: if you want to install it from PyPI:
```
echo netbox-plugin-device-map | sudo tee -a /opt/netbox/local_requirements.txt
```
- Option B: if you manually downloaded the plugin distribution from releases:
```
echo "/path/to/netbox-plugin-device-map.tar.gz" | sudo tee -a /opt/netbox/local_requirements.txt
```
5. Collect static files:
Then run:
```
sudo pip install -U -r /opt/netbox/local_requirements.txt
```
to install the plugin.
3. Collect static files:
```
sudo python /opt/netbox/netbox/manage.py collectstatic
```
6. To enable plugin, add the plugin's name to the PLUGINS list in `configuration.py` (it's usually located in `/opt/netbox/netbox/netbox/`) like so:
4. To enable plugin, add the plugin's name to the PLUGINS list in `configuration.py` (it's usually located in `/opt/netbox/netbox/netbox/`) like so:
```
PLUGINS = [
'netbox_device_map'
]
```
7. Restart NetBox WSGI service to apply changes:
5. Restart NetBox WSGI service to apply changes:
```
sudo systemctl restart netbox
```
@ -75,7 +89,7 @@ Custom tiles layer settings:
| Setting | Example value | Description |
|--------------|-----------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| url_template | `https://{s}.somedomain.com/blabla/{z}/{x}/{y}{r}.png` | `{s}` means one of the available subdomains (used sequentially to help with browser parallel requests per domain limitation; subdomain values are specified in options; a, b or c by default, can be omitted), `{z}` — zoom level, `{x}` and `{y}` — tile coordinates. `{r}` can be used to add "@2x" to the URL to load retina tiles. |
| options | `{'subdomains' : ['a', 'b', 'c'], 'minZoom': 0, 'maxZoom': 18}` | [Leaflet TileLayer](https://leafletjs.com/SlavaUkraini/reference.html#tilelayer) options |
| options | `{'subdomains' : ['a', 'b', 'c'], 'minZoom': 0, 'maxZoom': 18}` | [Leaflet TileLayer](https://leafletjs.com/reference.html#tilelayer) options |
## Acknowledgements
- [Leaflet](https://leafletjs.com/)

View File

@ -4,7 +4,7 @@ from extras.plugins import PluginConfig
class DeviceMapConfig(PluginConfig):
name = 'netbox_device_map'
verbose_name = 'Device map'
version = '0.1.1'
version = '0.1.3'
author = 'Victor Golovanenko'
author_email = 'drygdryg2014@yandex.com'
base_url = 'device-map'

View File

@ -2,7 +2,8 @@ from django import forms
from dcim.models import DeviceRole, Device
from ipam.models import VLANGroup, VLAN
from utilities.forms import BootstrapMixin, DynamicModelChoiceField, DynamicModelMultipleChoiceField
from utilities.forms import BootstrapMixin
from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField
class DeviceMapFilterForm(BootstrapMixin, forms.Form):

View File

@ -1,18 +1,31 @@
from setuptools import setup, find_packages
version = '0.1.3'
with open('README.md', encoding='utf-8') as f:
long_description = f.read()
setup(
name='netbox-plugin-device-map',
version='0.1.1',
version=version,
description='A simple device map with filter criteria',
long_description=long_description,
long_description_content_type='text/markdown',
license='MIT',
author='Victor Golovanenko',
author_email='drygdryg2014@yandex.com',
license='GPL-3.0',
url='https://github.com/drygdryg/netbox-plugin-device-map',
download_url='https://github.com/drygdryg/netbox-plugin-device-map/archive/v{}.zip'.format(version),
python_requires='>3.9',
classifiers=[
'Environment :: Plugins',
'Environment :: Web Environment',
'Framework :: Django',
'License :: OSI Approved :: MIT License',
'Topic :: System :: Networking',
'Topic :: System :: Systems Administration'
],
packages=find_packages(),
include_package_data=True,
zip_safe=False
zip_safe=False,
)