Просмотр исходного кода

Fixes #17719: User settings for table stripe (#19526)

* Fixes #17719: User setting table stripe

* Tweak user preference name

---------

Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
Tobias Genannt 7 месяцев назад
Родитель
Сommit
3ecf29d797
3 измененных файлов с 11 добавлено и 0 удалено
  1. 8 0
      netbox/netbox/preferences.py
  2. 2 0
      netbox/netbox/tables/tables.py
  3. 1 0
      netbox/users/forms/model_forms.py

+ 8 - 0
netbox/netbox/preferences.py

@@ -54,6 +54,14 @@ PREFERENCES = {
         default='bottom',
         description=_('Where the paginator controls will be displayed relative to a table')
     ),
+    'ui.tables.striping': UserPreference(
+        label=_('Striped table rows'),
+        choices=(
+            ('', _('Disabled')),
+            ('true', _('Enabled')),
+        ),
+        description=_('Render table rows with alternating colors to increase readability'),
+    ),
 
     # Miscellaneous
     'data_format': UserPreference(

+ 2 - 0
netbox/netbox/tables/tables.py

@@ -166,6 +166,8 @@ class BaseTable(tables.Table):
                 columns = userconfig.get(f"tables.{self.name}.columns")
             if ordering is None:
                 ordering = userconfig.get(f"tables.{self.name}.ordering")
+            if userconfig.get("ui.tables.striping"):
+                self.attrs['class'] += ' table-striped'
 
         # Fall back to the default columns & ordering
         if columns is None and hasattr(settings, 'DEFAULT_USER_PREFERENCES'):

+ 1 - 0
netbox/users/forms/model_forms.py

@@ -59,6 +59,7 @@ class UserConfigForm(forms.ModelForm, metaclass=UserConfigFormMetaclass):
     fieldsets = (
         FieldSet(
             'locale.language', 'pagination.per_page', 'pagination.placement', 'ui.htmx_navigation',
+            'ui.tables.striping',
             name=_('User Interface')
         ),
         FieldSet('data_format', name=_('Miscellaneous')),