Skip to content

Commit 8faf5f7

Browse files
committed
feat(filter): ACLStandardRule: Adding new Sources to the filter
1 parent 79cd3c2 commit 8faf5f7

File tree

2 files changed

+48
-2
lines changed

2 files changed

+48
-2
lines changed

netbox_acls/filtersets.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,17 @@ class Meta:
181181
"""
182182

183183
model = ACLStandardRule
184-
fields = ("id", "access_list", "index", "action")
184+
fields = (
185+
"id",
186+
"access_list",
187+
"index",
188+
"action",
189+
"source_prefix",
190+
"source_iprange",
191+
"source_ipaddress",
192+
"source_aggregate",
193+
"source_service",
194+
)
185195

186196
def search(self, queryset, name, value):
187197
"""
@@ -191,6 +201,11 @@ def search(self, queryset, name, value):
191201
Q(access_list__name__icontains=value)
192202
| Q(index__icontains=value)
193203
| Q(action__icontains=value)
204+
| Q(source_prefix__icontains=value)
205+
| Q(source_iprange__icontains=value)
206+
| Q(source_ipaddress__icontains=value)
207+
| Q(source_aggregate__icontains=value)
208+
| Q(source_service__icontains=value)
194209
)
195210
return queryset.filter(query)
196211

netbox_acls/forms/filtersets.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,13 @@
55
from dcim.models import Device, Interface, Region, Site, SiteGroup, VirtualChassis
66
from django import forms
77
from django.utils.translation import gettext as _
8-
from ipam.models import Prefix
8+
from ipam.models import (
9+
Prefix,
10+
IPRange,
11+
IPAddress,
12+
Aggregate,
13+
Service,
14+
)
915
from netbox.forms import NetBoxModelFilterSetForm
1016
from utilities.forms.fields import (
1117
DynamicModelChoiceField,
@@ -191,6 +197,31 @@ class ACLStandardRuleFilterForm(NetBoxModelFilterSetForm):
191197
required=False,
192198
label="Source Prefix",
193199
)
200+
source_prefix = DynamicModelMultipleChoiceField(
201+
queryset=Prefix.objects.all(),
202+
required=False,
203+
label="Source Prefix",
204+
)
205+
source_iprange = DynamicModelMultipleChoiceField(
206+
queryset=IPRange.objects.all(),
207+
required=False,
208+
label="Source IP-Range",
209+
)
210+
source_ipaddress = DynamicModelMultipleChoiceField(
211+
queryset=IPAddress.objects.all(),
212+
required=False,
213+
label="Source IP-Address",
214+
)
215+
source_aggregate = DynamicModelMultipleChoiceField(
216+
queryset=Aggregate.objects.all(),
217+
required=False,
218+
label="Source Aggregate",
219+
)
220+
source_service = DynamicModelMultipleChoiceField(
221+
queryset=Service.objects.all(),
222+
required=False,
223+
label="Source Service",
224+
)
194225
action = forms.ChoiceField(
195226
choices=add_blank_choice(ACLRuleActionChoices),
196227
required=False,

0 commit comments

Comments
 (0)