Skip to content

Commit

Permalink
Merge pull request #19 from jasonyates/develop
Browse files Browse the repository at this point in the history
NB 3.4 Updates
  • Loading branch information
jasonyates authored Jan 5, 2023
2 parents 3657fbc + eb9cd62 commit 7b3f3ce
Show file tree
Hide file tree
Showing 5 changed files with 109 additions and 16 deletions.
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,14 @@ Restart the Netbox service to apply changes:
sudo systemctl restart netbox
```

### Re-index Netbox search index (Upgrade to 3.4 only)

If you are upgrading from Netbox 3.2 or above to Netbox 3.4, any previously inserted documents may not show up in the new search feature. To resolve this, re-index the plugin:

```
(venv) $ python manage.py reindex netbox_documents
```

### Screenshots

![Site Document View](docs/img/siteview.png)
Expand Down
5 changes: 4 additions & 1 deletion netbox_documents/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@ class NetboxDocuments(PluginConfig):
name = 'netbox_documents'
verbose_name = 'Document Storage'
description = 'Manage site, circuit and device diagrams and documents in Netbox'
version = '0.3.1'
version = '0.4.5'
author = 'Jason Yates'
author_email = 'me@jasonyates.co.uk'
min_version = '3.2.0'
base_url = 'documents'
default_settings = {
"enable_site_documents": True,
Expand Down
70 changes: 56 additions & 14 deletions netbox_documents/navigation.py
Original file line number Diff line number Diff line change
@@ -1,43 +1,85 @@
from extras.plugins import PluginMenuItem
from extras.plugins import PluginMenuItem, PluginMenu, PluginMenuButton
from utilities.choices import ButtonColorChoices
from django.conf import settings

plugin_settings = settings.PLUGINS_CONFIG.get('netbox_documents', {})

if plugin_settings.get('enable_navigation_menu'):

menu_items = []
menuitem = []

# Add a menu item for Site Documents if enabled
if plugin_settings.get('enable_site_documents'):
menu_items.append(PluginMenuItem(
link='plugins:netbox_documents:sitedocument_list',
link_text='Site Documents'
))
menuitem.append(
PluginMenuItem(
link='plugins:netbox_documents:sitedocument_list',
link_text='Site Documents',
buttons=[PluginMenuButton(
link='plugins:netbox_documents:sitedocument_add',
title='Add',
icon_class='mdi mdi-plus-thick',
color=ButtonColorChoices.GREEN
)]
)
)

# Add a menu item for Device Documents if enabled
if plugin_settings.get('enable_device_documents'):
menu_items.append(
menuitem.append(
PluginMenuItem(
link='plugins:netbox_documents:devicedocument_list',
link_text='Device Documents'
link_text='Device Documents',
buttons=[PluginMenuButton(
link='plugins:netbox_documents:devicedocument_add',
title='Add',
icon_class='mdi mdi-plus-thick',
color=ButtonColorChoices.GREEN
)]
)
)


# Add a menu item for Device Documents if enabled
if plugin_settings.get('enable_device_type_documents'):
menu_items.append(
menuitem.append(
PluginMenuItem(
link='plugins:netbox_documents:devicetypedocument_list',
link_text='Device Type Documents'
link_text='Device Type Documents',
buttons=[PluginMenuButton(
link='plugins:netbox_documents:devicetypedocument_add',
title='Add',
icon_class='mdi mdi-plus-thick',
color=ButtonColorChoices.GREEN
)]
)
)

# Add a menu item for Circuit Documents if enabled
if plugin_settings.get('enable_circuit_documents'):
menu_items.append(
menuitem.append(
PluginMenuItem(
link='plugins:netbox_documents:circuitdocument_list',
link_text='Circuit Documents'
link_text='Circuit Documents',
buttons=[PluginMenuButton(
link='plugins:netbox_documents:circuitdocument_add',
title='Add',
icon_class='mdi mdi-plus-thick',
color=ButtonColorChoices.GREEN
)]
)
)
)

# If we are using NB 3.4.0+ display the new top level navigation option
if settings.VERSION >= '3.4.0':

menu = PluginMenu(
label='Documents',
groups=(
('Document Storage', menuitem),
),
icon_class='mdi mdi-file-document-multiple'
)

else:

# Fall back to pre 3.4 navigation option
menu_items = menuitem
40 changes: 40 additions & 0 deletions netbox_documents/search.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
from netbox.search import SearchIndex
from .models import SiteDocument, DeviceDocument, DeviceTypeDocument, CircuitDocument
from django.conf import settings

# If we run NB 3.4+ register search indexes
if settings.VERSION >= '3.4.0':
class SiteDocumentIndex(SearchIndex):
model = SiteDocument
fields = (
("name", 100),
("document", 500),
("comments", 5000),
)

class CircuitDocumentIndex(SearchIndex):
model = CircuitDocument
fields = (
("name", 100),
("document", 500),
("comments", 5000),
)

class DeviceTypeDocumentIndex(SearchIndex):
model = DeviceTypeDocument
fields = (
("name", 100),
("document", 500),
("comments", 5000),
)

class DeviceDocumentIndex(SearchIndex):
model = DeviceDocument
fields = (
("name", 100),
("document", 500),
("comments", 5000),
)

# Register indexes
indexes = [SiteDocumentIndex, CircuitDocumentIndex, DeviceTypeDocumentIndex, DeviceDocumentIndex]
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

setup(
name='netbox-documents',
version='0.4.4',
version='0.4.5',
description='Manage site, circuit and device diagrams and documents in Netbox',
long_description=long_description,
long_description_content_type='text/markdown',
Expand Down

0 comments on commit 7b3f3ce

Please sign in to comment.