Skip to content
This repository has been archived by the owner on Feb 11, 2025. It is now read-only.

Add THEME_DEFAULT setting #233

Merged
merged 1 commit into from
Nov 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/argus_htmx/constants.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from argus_htmx.dateformat.constants import DATETIME_DEFAULT, DATETIME_FORMATS, DATETIME_CHOICES
from argus_htmx.incidents.constants import DEFAULT_PAGE_SIZE, ALLOWED_PAGE_SIZES, PAGE_SIZE_CHOICES
from argus_htmx.themes.constants import THEME_CHOICES, THEME_NAMES
from argus_htmx.themes.constants import THEME_CHOICES, THEME_NAMES, THEME_DEFAULT


__all__ = [
Expand All @@ -11,5 +11,6 @@
"DEFAULT_PAGE_SIZE",
"PAGE_SIZE_CHOICES",
"THEME_CHOICES",
"THEME_DEFAULT",
"THEME_NAMES",
]
3 changes: 2 additions & 1 deletion src/argus_htmx/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# items in INCIDENT_TABLE_COLUMNS can be either a `str` referring to a key in
# argus_htmx.incidents.customization.BUILTIN_COLUMNS or an instance of
# argus_htmx.incidents.customization.IncidentTableColumn
from argus.site.settings import get_json_env
from argus.site.settings import get_json_env, get_str_env

INCIDENT_TABLE_COLUMNS = [
"row_select",
Expand Down Expand Up @@ -54,5 +54,6 @@
},
]
DAISYUI_THEMES = get_json_env("DAISYUI_THEMES", DEFAULT_THEMES, quiet=True)
THEME_DEFAULT = get_str_env("ARGUS_THEME_DEFAULT", "argus")
DEFAULT_THEME_OVERRIDE = {}
TAILWIND_THEME_OVERRIDE = get_json_env("TAILWIND_THEME_OVERRIDE", DEFAULT_THEME_OVERRIDE, quiet=True)
4 changes: 3 additions & 1 deletion src/argus_htmx/themes/constants.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
from argus_htmx.themes.utils import get_theme_names
from argus_htmx.themes.utils import get_theme_default, get_theme_names


__all__ = [
"THEME_CHOICES",
"THEME_DEFAULT",
"THEME_NAMES",
]


THEME_NAMES = sorted(get_theme_names())
THEME_CHOICES = tuple((theme, theme) for theme in THEME_NAMES)
THEME_DEFAULT = get_theme_default()
4 changes: 4 additions & 0 deletions src/argus_htmx/themes/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,7 @@ def get_theme_names():
elif isinstance(theme, dict):
theme_names.extend(theme.keys())
return theme_names


def get_theme_default():
return getattr(settings, "THEME_DEFAULT", argus_htmx_settings.THEME_DEFAULT)
8 changes: 2 additions & 6 deletions src/argus_htmx/user/preferences/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,17 @@
PAGE_SIZE_CHOICES,
DEFAULT_PAGE_SIZE,
THEME_CHOICES,
THEME_DEFAULT,
)


class DateTimeFormatForm(forms.Form):
datetime_format_name = forms.ChoiceField(required=False, choices=DATETIME_CHOICES)

def clean_datetime_format_name(self):
return self.cleaned_data.get("datetime_format_name", DATETIME_DEFAULT) or DATETIME_DEFAULT


class PageSizeForm(forms.Form):
page_size = forms.TypedChoiceField(required=False, choices=PAGE_SIZE_CHOICES, coerce=int)

def clean_page_size(self):
return self.cleaned_data.get("page_size", DEFAULT_PAGE_SIZE) or DEFAULT_PAGE_SIZE


class ThemeForm(forms.Form):
theme = forms.ChoiceField(choices=THEME_CHOICES)
Expand All @@ -40,6 +35,7 @@ class ArgusHtmxPreferences(Preferences):
_FIELD_DEFAULTS = {
"datetime_format_name": DATETIME_DEFAULT,
"page_size": DEFAULT_PAGE_SIZE,
"theme": THEME_DEFAULT,
}

class Meta:
Expand Down
Loading