feat: add shared quick wins workflow
This commit is contained in:
@@ -5,7 +5,7 @@ import os
|
||||
from sqlalchemy import inspect, text
|
||||
|
||||
from ..extensions import db
|
||||
from ..models import User
|
||||
from ..models import QuickWin, User
|
||||
from .app_settings import ensure_app_settings
|
||||
|
||||
|
||||
@@ -30,17 +30,48 @@ def ensure_schema_and_admins() -> None:
|
||||
db.session.commit()
|
||||
|
||||
admin_exists = User.query.filter_by(is_admin=True).first()
|
||||
if admin_exists:
|
||||
return
|
||||
default_quick_win_user = admin_exists
|
||||
|
||||
preferred_admin_email = os.getenv("DEFAULT_ADMIN_EMAIL", "mail@hnz.io").lower().strip()
|
||||
preferred_user = User.query.filter(User.email.ilike(preferred_admin_email)).first()
|
||||
if preferred_user:
|
||||
if preferred_user and not admin_exists:
|
||||
preferred_user.is_admin = True
|
||||
db.session.commit()
|
||||
return
|
||||
default_quick_win_user = preferred_user
|
||||
|
||||
first_user = User.query.order_by(User.id.asc()).first()
|
||||
if first_user:
|
||||
if first_user and not User.query.filter_by(is_admin=True).first():
|
||||
first_user.is_admin = True
|
||||
db.session.commit()
|
||||
default_quick_win_user = first_user
|
||||
|
||||
_ensure_default_quick_wins(default_quick_win_user or User.query.order_by(User.id.asc()).first())
|
||||
|
||||
|
||||
def _ensure_default_quick_wins(default_user: User | None) -> None:
|
||||
if not default_user:
|
||||
return
|
||||
|
||||
defaults = [
|
||||
("Schnell Aufräumen", "fast"),
|
||||
("Spülmaschine ausräumen", "normal"),
|
||||
("Bett machen", "normal"),
|
||||
("Lüften", "fast"),
|
||||
("Wäsche zusammenlegen", "medium"),
|
||||
]
|
||||
|
||||
existing_titles = {quick_win.title for quick_win in QuickWin.query.all()}
|
||||
created = False
|
||||
for title, effort in defaults:
|
||||
if title not in existing_titles:
|
||||
db.session.add(
|
||||
QuickWin(
|
||||
title=title,
|
||||
effort=effort,
|
||||
active=True,
|
||||
created_by_user_id=default_user.id,
|
||||
)
|
||||
)
|
||||
created = True
|
||||
if created:
|
||||
db.session.commit()
|
||||
|
||||
Reference in New Issue
Block a user