Skip to content

Commit 28d2cb3

Browse files
kkthxbye-codejeremystretch
authored andcommitted
Fix issues with the ContactAssignmentListView
1 parent f492244 commit 28d2cb3

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

netbox/tenancy/filtersets.py

+12
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,10 @@ def search(self, queryset, name, value):
8181

8282

8383
class ContactAssignmentFilterSet(ChangeLoggedModelFilterSet):
84+
q = django_filters.CharFilter(
85+
method='search',
86+
label=_('Search'),
87+
)
8488
content_type = ContentTypeFilter()
8589
contact_id = django_filters.ModelMultipleChoiceFilter(
8690
queryset=Contact.objects.all(),
@@ -101,6 +105,14 @@ class Meta:
101105
model = ContactAssignment
102106
fields = ['id', 'content_type_id', 'object_id', 'priority']
103107

108+
def search(self, queryset, name, value):
109+
if not value.strip():
110+
return queryset
111+
return queryset.filter(
112+
Q(contact__name__icontains=value) |
113+
Q(role__name__icontains=value)
114+
)
115+
104116

105117
class ContactModelFilterSet(django_filters.FilterSet):
106118
contact = django_filters.ModelMultipleChoiceFilter(

netbox/tenancy/urls.py

+1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
# Contact assignments
5050
path('contact-assignments/', views.ContactAssignmentListView.as_view(), name='contactassignment_list'),
5151
path('contact-assignments/add/', views.ContactAssignmentEditView.as_view(), name='contactassignment_add'),
52+
path('contact-assignments/delete/', views.ContactAssignmentBulkDeleteView.as_view(), name='contactassignment_bulk_delete'),
5253
path('contact-assignments/<int:pk>/', include(get_model_urls('tenancy', 'contactassignment'))),
5354

5455
]

netbox/tenancy/views.py

+7
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,7 @@ class ContactAssignmentListView(generic.ObjectListView):
354354
filterset = filtersets.ContactAssignmentFilterSet
355355
filterset_form = forms.ContactAssignmentFilterForm
356356
table = tables.ContactAssignmentTable
357+
actions = ('export', 'bulk_delete')
357358

358359

359360
@register_model_view(ContactAssignment, 'edit')
@@ -376,6 +377,12 @@ def get_extra_addanother_params(self, request):
376377
}
377378

378379

380+
class ContactAssignmentBulkDeleteView(generic.BulkDeleteView):
381+
queryset = ContactAssignment.objects.all()
382+
filterset = filtersets.ContactAssignmentFilterSet
383+
table = tables.ContactAssignmentTable
384+
385+
379386
@register_model_view(ContactAssignment, 'delete')
380387
class ContactAssignmentDeleteView(generic.ObjectDeleteView):
381388
queryset = ContactAssignment.objects.all()

0 commit comments

Comments
 (0)