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>
This commit is contained in:
Tobias Genannt 2025-06-26 18:03:17 +02:00 committed by GitHub
parent c48e4f590e
commit 3ecf29d797
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 11 additions and 0 deletions

View File

@ -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(

View File

@ -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'):

View File

@ -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')),