Fix issues with the ContactAssignmentListView

This commit is contained in:
kkthxbye-code 2023-02-15 12:55:25 +01:00 committed by jeremystretch
parent 81b8046d1d
commit c73829fe92
3 changed files with 20 additions and 0 deletions

View File

@ -81,6 +81,10 @@ class ContactFilterSet(NetBoxModelFilterSet):
class ContactAssignmentFilterSet(ChangeLoggedModelFilterSet): class ContactAssignmentFilterSet(ChangeLoggedModelFilterSet):
q = django_filters.CharFilter(
method='search',
label=_('Search'),
)
content_type = ContentTypeFilter() content_type = ContentTypeFilter()
contact_id = django_filters.ModelMultipleChoiceFilter( contact_id = django_filters.ModelMultipleChoiceFilter(
queryset=Contact.objects.all(), queryset=Contact.objects.all(),
@ -101,6 +105,14 @@ class ContactAssignmentFilterSet(ChangeLoggedModelFilterSet):
model = ContactAssignment model = ContactAssignment
fields = ['id', 'content_type_id', 'object_id', 'priority'] fields = ['id', 'content_type_id', 'object_id', 'priority']
def search(self, queryset, name, value):
if not value.strip():
return queryset
return queryset.filter(
Q(contact__name__icontains=value) |
Q(role__name__icontains=value)
)
class ContactModelFilterSet(django_filters.FilterSet): class ContactModelFilterSet(django_filters.FilterSet):
contact = django_filters.ModelMultipleChoiceFilter( contact = django_filters.ModelMultipleChoiceFilter(

View File

@ -49,6 +49,7 @@ urlpatterns = [
# Contact assignments # Contact assignments
path('contact-assignments/', views.ContactAssignmentListView.as_view(), name='contactassignment_list'), path('contact-assignments/', views.ContactAssignmentListView.as_view(), name='contactassignment_list'),
path('contact-assignments/add/', views.ContactAssignmentEditView.as_view(), name='contactassignment_add'), path('contact-assignments/add/', views.ContactAssignmentEditView.as_view(), name='contactassignment_add'),
path('contact-assignments/delete/', views.ContactAssignmentBulkDeleteView.as_view(), name='contactassignment_bulk_delete'),
path('contact-assignments/<int:pk>/', include(get_model_urls('tenancy', 'contactassignment'))), path('contact-assignments/<int:pk>/', include(get_model_urls('tenancy', 'contactassignment'))),
] ]

View File

@ -354,6 +354,7 @@ class ContactAssignmentListView(generic.ObjectListView):
filterset = filtersets.ContactAssignmentFilterSet filterset = filtersets.ContactAssignmentFilterSet
filterset_form = forms.ContactAssignmentFilterForm filterset_form = forms.ContactAssignmentFilterForm
table = tables.ContactAssignmentTable table = tables.ContactAssignmentTable
actions = ('export', 'bulk_delete')
@register_model_view(ContactAssignment, 'edit') @register_model_view(ContactAssignment, 'edit')
@ -376,6 +377,12 @@ class ContactAssignmentEditView(generic.ObjectEditView):
} }
class ContactAssignmentBulkDeleteView(generic.BulkDeleteView):
queryset = ContactAssignment.objects.all()
filterset = filtersets.ContactAssignmentFilterSet
table = tables.ContactAssignmentTable
@register_model_view(ContactAssignment, 'delete') @register_model_view(ContactAssignment, 'delete')
class ContactAssignmentDeleteView(generic.ObjectDeleteView): class ContactAssignmentDeleteView(generic.ObjectDeleteView):
queryset = ContactAssignment.objects.all() queryset = ContactAssignment.objects.all()