feat: polish mobile ui and admin quick task settings

This commit is contained in:
2026-04-13 10:52:14 +02:00
parent 42d4f8ec8e
commit 7b53f66406
10 changed files with 559 additions and 74 deletions

View File

@@ -5,6 +5,10 @@ from ..models import AppSetting
QUICK_TASK_DEFAULTS = {
"quick_task_label_fast": "Schnell",
"quick_task_label_normal": "Normal",
"quick_task_label_medium": "Dauert etwas",
"quick_task_label_heavy": "Aufwendig",
"quick_task_points_fast": 4,
"quick_task_points_normal": 8,
"quick_task_points_medium": 12,
@@ -12,10 +16,10 @@ QUICK_TASK_DEFAULTS = {
}
QUICK_TASK_EFFORTS = [
("fast", "Schnell", "quick_task_points_fast"),
("normal", "Normal", "quick_task_points_normal"),
("medium", "Dauert etwas", "quick_task_points_medium"),
("heavy", "Aufwendig", "quick_task_points_heavy"),
("fast", "quick_task_label_fast", "quick_task_points_fast"),
("normal", "quick_task_label_normal", "quick_task_points_normal"),
("medium", "quick_task_label_medium", "quick_task_points_medium"),
("heavy", "quick_task_label_heavy", "quick_task_points_heavy"),
]
@@ -46,12 +50,30 @@ def set_setting_int(key: str, value: int) -> None:
setting.value = str(value)
def get_setting_str(key: str, default: str) -> str:
setting = AppSetting.query.filter_by(key=key).first()
if not setting or not setting.value.strip():
return default
return setting.value.strip()
def set_setting_str(key: str, value: str) -> None:
setting = AppSetting.query.filter_by(key=key).first()
normalized = value.strip()
if not setting:
setting = AppSetting(key=key, value=normalized)
db.session.add(setting)
else:
setting.value = normalized
def get_quick_task_config() -> dict[str, dict]:
config: dict[str, dict] = {}
for effort_key, label, setting_key in QUICK_TASK_EFFORTS:
for effort_key, label_key, points_key in QUICK_TASK_EFFORTS:
config[effort_key] = {
"label": label,
"setting_key": setting_key,
"points": get_setting_int(setting_key, QUICK_TASK_DEFAULTS[setting_key]),
"label_key": label_key,
"label": get_setting_str(label_key, str(QUICK_TASK_DEFAULTS[label_key])),
"points_key": points_key,
"points": get_setting_int(points_key, int(QUICK_TASK_DEFAULTS[points_key])),
}
return config