Fixes #8645; Allow filtering on core models in the UI

This commit is contained in:
Alex Gittings
2022-03-09 16:35:47 +00:00
parent 4913d7ee39
commit bf22b820bf
9 changed files with 165 additions and 124 deletions

View File

@@ -2,6 +2,7 @@ from django.utils.translation import gettext as _
from extras.forms import CustomFieldModelFilterForm
from tenancy.models import *
from tenancy.forms import ContactModelFilterForm
from utilities.forms import DynamicModelMultipleChoiceField, TagFilterField
__all__ = (
@@ -27,11 +28,12 @@ class TenantGroupFilterForm(CustomFieldModelFilterForm):
tag = TagFilterField(model)
class TenantFilterForm(CustomFieldModelFilterForm):
class TenantFilterForm(ContactModelFilterForm, CustomFieldModelFilterForm):
model = Tenant
field_groups = (
('q', 'tag'),
('group_id',),
('contact', 'contact_role')
)
group_id = DynamicModelMultipleChoiceField(
queryset=TenantGroup.objects.all(),

View File

@@ -1,12 +1,13 @@
from django import forms
from django.utils.translation import gettext as _
from tenancy.models import Tenant, TenantGroup
from tenancy.models import *
from utilities.forms import DynamicModelChoiceField, DynamicModelMultipleChoiceField
__all__ = (
'TenancyForm',
'TenancyFilterForm',
'ContactModelFilterForm'
)
@@ -44,3 +45,16 @@ class TenancyFilterForm(forms.Form):
},
label=_('Tenant')
)
class ContactModelFilterForm(forms.Form):
contact = DynamicModelMultipleChoiceField(
queryset=Contact.objects.all(),
required=False,
label=_('Contact')
)
contact_role = DynamicModelMultipleChoiceField(
queryset=ContactRole.objects.all(),
required=False,
label=_('Contact Role')
)