Browse Source

Tweak behavior of include_columns

Jeremy Stretch 1 week ago
parent
commit
6c08941542
2 changed files with 6 additions and 7 deletions
  1. 5 6
      netbox/netbox/tables/tables.py
  2. 1 1
      netbox/netbox/ui/panels.py

+ 5 - 6
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:

+ 1 - 1
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'