Skip to content

Commit 668551e

Browse files
committed
feat(filter): ACLStandardRule: Adding new Sources to the filter
1 parent 5c0f39f commit 668551e

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.rendering import FieldSet
1117
from utilities.forms.fields import (
@@ -181,6 +187,31 @@ class ACLStandardRuleFilterForm(NetBoxModelFilterSetForm):
181187
required=False,
182188
label="Source Prefix",
183189
)
190+
source_prefix = DynamicModelMultipleChoiceField(
191+
queryset=Prefix.objects.all(),
192+
required=False,
193+
label="Source Prefix",
194+
)
195+
source_iprange = DynamicModelMultipleChoiceField(
196+
queryset=IPRange.objects.all(),
197+
required=False,
198+
label="Source IP-Range",
199+
)
200+
source_ipaddress = DynamicModelMultipleChoiceField(
201+
queryset=IPAddress.objects.all(),
202+
required=False,
203+
label="Source IP-Address",
204+
)
205+
source_aggregate = DynamicModelMultipleChoiceField(
206+
queryset=Aggregate.objects.all(),
207+
required=False,
208+
label="Source Aggregate",
209+
)
210+
source_service = DynamicModelMultipleChoiceField(
211+
queryset=Service.objects.all(),
212+
required=False,
213+
label="Source Service",
214+
)
184215
action = forms.ChoiceField(
185216
choices=add_blank_choice(ACLRuleActionChoices),
186217
required=False,

0 commit comments

Comments
 (0)