Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
recursive-include netbox_filter_view/templates *
recursive-include netbox_filter_view/static *
recursive-include netbox_filter_view/templates *.html
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ NetBox Filter View is a simple plugin that allows you to create a URL to return
**Download the latest release**
```bash
cd /opt/netbox/plugins/
wget https://github.com/sol1/netbox-filter-view/releases/download/v0.1.5/netbox_filter_view-0.1.5.tar.gz
wget https://github.com/sol1/netbox-filter-view/releases/download/v0.1.7/netbox_filter_view-0.1.7.tar.gz
```
_Use the most appropriate repository for your installation._

**Add the plugin to `local_requirements.txt`**
```bash
cd /opt/netbox/
echo "netbox-filter-view @ file:///opt/netbox/plugins/netbox_filter_view-0.1.5.tar.gz" > local_requirements.txt
echo "netbox-filter-view @ file:///opt/netbox/plugins/netbox_filter_view-0.1.7.tar.gz" > local_requirements.txt
```

**Add the plugin to `configuration.py`**
Expand Down
1 change: 1 addition & 0 deletions netbox_filter_view/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@ class NetBoxFilterViewConfig(PluginConfig):
version = __version__
author = 'Dylan Lucci'
base_url = 'filter-view'
min_version = '4.3.0'

config = NetBoxFilterViewConfig
10 changes: 7 additions & 3 deletions netbox_filter_view/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,22 @@


class FilterviewSerializer(NetBoxModelSerializer):
filter_url = serializers.HyperlinkedIdentityField(
url = serializers.HyperlinkedIdentityField(
view_name='plugins-api:netbox_filter_view-api:filterview-detail'
)
filter_url = serializers.CharField(allow_blank=False)

class Meta:
model = Filterview
fields = (
'pk',
'id',
'url',
'name',
'description',
'filter_url',
'created',
'last_updated',
'custom_fields',
'tags',
)
brief_fields = ('id', 'name', 'description', 'filter_url')
brief_fields = ('id', 'url', 'name', 'filter_url')
23 changes: 23 additions & 0 deletions netbox_filter_view/filtersets.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from django.db.models import Q
from netbox.filtersets import NetBoxModelFilterSet

from .models import Filterview


class FilterviewFilterSet(NetBoxModelFilterSet):
class Meta:
model = Filterview
fields = (
'id',
'name',
'description',
'filter_url',
)

def search(self, queryset, name, value):
query = Q(
Q(name__icontains=value)
| Q(description__icontains=value)
| Q(filter_url__icontains=value)
)
return queryset.filter(query)
20 changes: 19 additions & 1 deletion netbox_filter_view/forms.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from netbox.forms import NetBoxModelForm
from netbox.forms import (NetBoxModelFilterSetForm, NetBoxModelForm,
NetBoxModelImportForm)
from utilities.forms.fields import CommentField
from utilities.forms.rendering import FieldSet

Expand All @@ -18,3 +19,20 @@ class Meta:
'comments',
'tags',
)


class FilterviewFilterForm(NetBoxModelFilterSetForm):
model = models.Filterview
fieldsets = (
FieldSet('q', 'filter_id', 'tags'),
)


class FilterviewImportForm(NetBoxModelImportForm):
class Meta:
model = models.Filterview
fields = (
'name',
'description',
'filter_url',
)
2 changes: 2 additions & 0 deletions netbox_filter_view/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ class Filterview(NetBoxModel):
help_text="Full filter URL containing an API call. Starts with ?api_path=...",
)

clone_fields = ['name', 'filter_url']

class Meta:
ordering = ['name']
verbose_name = "Filter View"
Expand Down
5 changes: 5 additions & 0 deletions netbox_filter_view/navigation.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@
title='Add',
icon_class='mdi mdi-plus-thick',
),
PluginMenuButton(
link='plugins:netbox_filter_view:filterview_import',
title='Import',
icon_class='mdi mdi-upload',
),
]

filterview_items = (
Expand Down
Loading