diff --git a/netbox/circuits/tables.py b/netbox/circuits/tables.py index 889792be3..b4e0c7d2d 100644 --- a/netbox/circuits/tables.py +++ b/netbox/circuits/tables.py @@ -58,6 +58,9 @@ class ProviderTable(BaseTable): verbose_name='Circuits' ) comments = MarkdownColumn() + contacts = tables.ManyToManyColumn( + linkify_item=True + ) tags = TagColumn( url_name='circuits:provider_list' ) @@ -66,7 +69,7 @@ class ProviderTable(BaseTable): model = Provider fields = ( 'pk', 'id', 'name', 'asn', 'account', 'portal_url', 'noc_contact', 'admin_contact', 'circuit_count', - 'comments', 'tags', 'created', 'last_updated', + 'comments', 'contacts', 'tags', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'asn', 'account', 'circuit_count') @@ -142,6 +145,9 @@ class CircuitTable(BaseTable): ) commit_rate = CommitRateColumn() comments = MarkdownColumn() + contacts = tables.ManyToManyColumn( + linkify_item=True + ) tags = TagColumn( url_name='circuits:circuit_list' ) @@ -150,7 +156,7 @@ class CircuitTable(BaseTable): model = Circuit fields = ( 'pk', 'id', 'cid', 'provider', 'type', 'status', 'tenant', 'termination_a', 'termination_z', 'install_date', - 'commit_rate', 'description', 'comments', 'tags', 'created', 'last_updated', + 'commit_rate', 'description', 'comments', 'contacts', 'tags', 'created', 'last_updated', ) default_columns = ( 'pk', 'cid', 'provider', 'type', 'status', 'tenant', 'termination_a', 'termination_z', 'description', diff --git a/netbox/dcim/forms/filtersets.py b/netbox/dcim/forms/filtersets.py index a7cc19b25..91d83ae53 100644 --- a/netbox/dcim/forms/filtersets.py +++ b/netbox/dcim/forms/filtersets.py @@ -101,6 +101,11 @@ class DeviceComponentFilterForm(CustomFieldModelFilterForm): class RegionFilterForm(ContactModelFilterForm, CustomFieldModelFilterForm): model = Region + field_groups = [ + ['q', 'tag'], + ['parent_id'], + ['contact', 'contact_role'], + ] parent_id = DynamicModelMultipleChoiceField( queryset=Region.objects.all(), required=False, @@ -111,6 +116,11 @@ class RegionFilterForm(ContactModelFilterForm, CustomFieldModelFilterForm): class SiteGroupFilterForm(ContactModelFilterForm, CustomFieldModelFilterForm): model = SiteGroup + field_groups = [ + ['q', 'tag'], + ['parent_id'], + ['contact', 'contact_role'], + ] parent_id = DynamicModelMultipleChoiceField( queryset=SiteGroup.objects.all(), required=False, @@ -309,6 +319,10 @@ class RackReservationFilterForm(TenancyFilterForm, CustomFieldModelFilterForm): class ManufacturerFilterForm(ContactModelFilterForm, CustomFieldModelFilterForm): model = Manufacturer + field_groups = [ + ['q', 'tag'], + ['contact', 'contact_role'], + ] tag = TagFilterField(model) diff --git a/netbox/tenancy/filtersets.py b/netbox/tenancy/filtersets.py index fe227e95d..3ff45ab5c 100644 --- a/netbox/tenancy/filtersets.py +++ b/netbox/tenancy/filtersets.py @@ -11,11 +11,11 @@ __all__ = ( 'ContactAssignmentFilterSet', 'ContactFilterSet', 'ContactGroupFilterSet', + 'ContactModelFilterSet', 'ContactRoleFilterSet', 'TenancyFilterSet', 'TenantFilterSet', 'TenantGroupFilterSet', - 'ContactModelFilterSet' ) @@ -165,7 +165,7 @@ class TenantFilterSet(PrimaryModelFilterSet, ContactModelFilterSet): class Meta: model = Tenant - fields = ['id', 'name', 'slug'] + fields = ['id', 'name', 'slug', 'description'] def search(self, queryset, name, value): if not value.strip(): diff --git a/netbox/tenancy/forms/forms.py b/netbox/tenancy/forms/forms.py index 36284b69c..5dcad1d43 100644 --- a/netbox/tenancy/forms/forms.py +++ b/netbox/tenancy/forms/forms.py @@ -5,9 +5,9 @@ from tenancy.models import * from utilities.forms import DynamicModelChoiceField, DynamicModelMultipleChoiceField __all__ = ( + 'ContactModelFilterForm', 'TenancyForm', 'TenancyFilterForm', - 'ContactModelFilterForm' )