diff --git a/netbox_access_lists/forms.py b/netbox_access_lists/forms.py index 068b24a..d728e06 100644 --- a/netbox_access_lists/forms.py +++ b/netbox_access_lists/forms.py @@ -2,7 +2,7 @@ from django import forms from ipam.models import Prefix from netbox.forms import NetBoxModelForm, NetBoxModelFilterSetForm -from utilities.forms.fields import CommentField, DynamicModelChoiceField +from utilities.forms import CommentField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, StaticSelectMultiple, TagFilterField from .models import AccessList, AccessListRule, ActionChoices, ProtocolChoices, TypeChoices @@ -18,12 +18,15 @@ class AccessListFilterForm(NetBoxModelFilterSetForm): model = AccessList type = forms.MultipleChoiceField( choices=TypeChoices, - required=False + required=False, + widget=StaticSelectMultiple() ) default_action = forms.MultipleChoiceField( choices=ActionChoices, - required=False + required=False, + widget=StaticSelectMultiple() ) + tag = TagFilterField(model) class AccessListRuleForm(NetBoxModelForm): @@ -49,16 +52,20 @@ class AccessListRuleFilterForm(NetBoxModelFilterSetForm): model = AccessListRule access_list = forms.ModelMultipleChoiceField( queryset=AccessList.objects.all(), - required=False + required=False, + widget=StaticSelectMultiple() ) index = forms.IntegerField( required=False ) protocol = forms.MultipleChoiceField( choices=ProtocolChoices, - required=False + required=False, + widget=StaticSelectMultiple() ) action = forms.MultipleChoiceField( choices=ActionChoices, - required=False + required=False, + widget=StaticSelectMultiple() ) + tag = TagFilterField(model) diff --git a/netbox_access_lists/tables.py b/netbox_access_lists/tables.py index 16772e5..8e26868 100644 --- a/netbox_access_lists/tables.py +++ b/netbox_access_lists/tables.py @@ -1,6 +1,6 @@ import django_tables2 as tables -from netbox.tables import NetBoxTable, ChoiceFieldColumn +from netbox.tables import NetBoxTable, columns, ChoiceFieldColumn from .models import AccessList, AccessListRule @@ -11,11 +11,14 @@ class AccessListTable(NetBoxTable): type = ChoiceFieldColumn() default_action = ChoiceFieldColumn() rule_count = tables.Column() + tags = columns.TagColumn( + url_name='plugins:netbox_access_lists:accesslist_list' + ) class Meta(NetBoxTable.Meta): model = AccessList - fields = ('pk', 'id', 'name', 'type', 'rule_count', 'default_action', 'comments', 'actions') - default_columns = ('name', 'type', 'rule_count', 'default_action') + fields = ('pk', 'id', 'name', 'type', 'rule_count', 'default_action', 'comments', 'actions', 'tags') + default_columns = ('name', 'type', 'rule_count', 'default_action', 'tags') class AccessListRuleTable(NetBoxTable): @@ -27,14 +30,17 @@ class AccessListRuleTable(NetBoxTable): ) protocol = ChoiceFieldColumn() action = ChoiceFieldColumn() + tags = columns.TagColumn( + url_name='plugins:netbox_access_lists:accesslistrule_list' + ) class Meta(NetBoxTable.Meta): model = AccessListRule fields = ( 'pk', 'id', 'access_list', 'index', 'source_prefix', 'source_ports', 'destination_prefix', - 'destination_ports', 'protocol', 'action', 'description', 'actions', + 'destination_ports', 'protocol', 'action', 'description', 'actions', 'tags' ) default_columns = ( 'access_list', 'index', 'source_prefix', 'source_ports', 'destination_prefix', - 'destination_ports', 'protocol', 'action', 'actions', + 'destination_ports', 'protocol', 'action', 'actions', 'tags' )