From 6c08941542466d9bae25e82d3e0350a44ad18530 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Wed, 1 Apr 2026 14:58:41 -0400 Subject: [PATCH] Tweak behavior of include_columns --- netbox/netbox/tables/tables.py | 11 +++++------ netbox/netbox/ui/panels.py | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/netbox/netbox/tables/tables.py b/netbox/netbox/tables/tables.py index e57b3642b..931da4f77 100644 --- a/netbox/netbox/tables/tables.py +++ b/netbox/netbox/tables/tables.py @@ -187,12 +187,11 @@ class BaseTable(tables.Table): self._set_columns(columns) # Apply column inclusion/exclusion (overrides user preferences) - if include_columns := request.GET.get('include_columns'): - include_columns = include_columns.split(',') - for column in self.columns: - if column.name not in self.exempt_columns and column.name not in include_columns: - self.columns.hide(column.name) - elif exclude_columns := request.GET.get('exclude_columns'): + if columns_param := request.GET.get('include_columns'): + for column_name in columns_param.split(','): + if column_name in self.columns.names(): + self.columns.show(column_name) + if exclude_columns := request.GET.get('exclude_columns'): exclude_columns = exclude_columns.split(',') for column_name in exclude_columns: if column_name in self.columns.names() and column_name not in self.exempt_columns: diff --git a/netbox/netbox/ui/panels.py b/netbox/netbox/ui/panels.py index 7aaf0e874..fa26cf754 100644 --- a/netbox/netbox/ui/panels.py +++ b/netbox/netbox/ui/panels.py @@ -282,7 +282,7 @@ class ObjectsTablePanel(Panel): model (str): The dotted label of the model to be added (e.g. "dcim.site") filters (dict): A dictionary of arbitrary URL parameters to append to the table's URL. If the value of a key is a callable, it will be passed the current template context. - include_columns (list): A list of column names to display exclusively (overrides user preferences) + include_columns (list): A list of column names to always display (overrides user preferences) exclude_columns (list): A list of column names to hide from the table (overrides user preferences) """ template_name = 'ui/panels/objects_table.html'