From 8ec2e3cc7b5bf75abd929456121f6b1ca6fa0ee8 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 28 Apr 2020 16:33:06 -0400 Subject: [PATCH] Introduce default_columns Meta parameter to reduce boilerplate --- netbox/circuits/tables.py | 18 +++--------------- netbox/utilities/tables.py | 7 +++++++ 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/netbox/circuits/tables.py b/netbox/circuits/tables.py index b04d0cbfc..0878279ec 100644 --- a/netbox/circuits/tables.py +++ b/netbox/circuits/tables.py @@ -27,15 +27,6 @@ STATUS_LABEL = """ class ProviderTable(BaseTable): pk = ToggleColumn() name = tables.LinkColumn() - portal_url = tables.URLColumn( - visible=False - ) - noc_contact = tables.Column( - visible=False - ) - admin_contact = tables.Column( - visible=False - ) circuit_count = tables.Column( accessor=Accessor('count_circuits'), verbose_name='Circuits' @@ -44,6 +35,7 @@ class ProviderTable(BaseTable): class Meta(BaseTable.Meta): model = Provider fields = ('pk', 'name', 'asn', 'account', 'portal_url', 'noc_contact', 'admin_contact', 'circuit_count') + default_columns = ('pk', 'name', 'asn', 'account', 'circuit_count') # @@ -63,6 +55,7 @@ class CircuitTypeTable(BaseTable): class Meta(BaseTable.Meta): model = CircuitType fields = ('pk', 'name', 'circuit_count', 'description', 'slug', 'actions') + default_columns = ('pk', 'name', 'circuit_count', 'description', 'slug', 'actions') # @@ -81,12 +74,6 @@ class CircuitTable(BaseTable): z_side = tables.Column( verbose_name='Z Side' ) - install_date = tables.Column( - visible=False - ) - commit_rate = tables.Column( - visible=False - ) class Meta(BaseTable.Meta): model = Circuit @@ -94,3 +81,4 @@ class CircuitTable(BaseTable): 'pk', 'cid', 'provider', 'type', 'status', 'tenant', 'a_side', 'z_side', 'install_date', 'commit_rate', 'description', ) + default_columns = ('pk', 'cid', 'provider', 'type', 'status', 'tenant', 'a_side', 'z_side', 'description') diff --git a/netbox/utilities/tables.py b/netbox/utilities/tables.py index be0890274..57adb4256 100644 --- a/netbox/utilities/tables.py +++ b/netbox/utilities/tables.py @@ -18,6 +18,13 @@ class BaseTable(tables.Table): if self.empty_text is None: self.empty_text = 'No {} found'.format(self._meta.model._meta.verbose_name_plural) + # Hide non-default columns + default_columns = getattr(self.Meta, 'default_columns', list()) + if default_columns: + for column in self.columns: + if column.name not in default_columns: + self.columns.hide(column.name) + # Apply custom column ordering if columns is not None: pk = self.base_columns.pop('pk', None)