feat: add floating quick task flow

This commit is contained in:
2026-04-13 10:23:06 +02:00
parent c36abe82a8
commit 1a889e0ee1
13 changed files with 330 additions and 5 deletions

View File

@@ -5,7 +5,8 @@ from datetime import date, datetime, timedelta
from sqlalchemy import select
from ..extensions import db
from ..models import TaskInstance, TaskTemplate
from ..models import TaskInstance, TaskTemplate, User
from .app_settings import get_quick_task_config
from .badges import evaluate_task_badges
from .dates import add_months, today_local
@@ -126,3 +127,33 @@ def complete_task(task: TaskInstance, completed_by_user_id: int) -> TaskInstance
if task.completed_by_user:
evaluate_task_badges(task.completed_by_user)
return task
def create_quick_task(title: str, effort: str, creator: User) -> TaskInstance:
config = get_quick_task_config()
effort_config = config[effort]
template = TaskTemplate(
title=title.strip(),
description="Schnellaufgabe",
default_points=effort_config["points"],
default_assigned_user_id=creator.id,
recurrence_interval_value=None,
recurrence_interval_unit="none",
active=False,
)
db.session.add(template)
db.session.flush()
task = TaskInstance(
task_template_id=template.id,
title=template.title,
description="Schnellaufgabe",
assigned_user_id=creator.id,
due_date=today_local(),
points_awarded=template.default_points,
status="open",
)
refresh_task_status(task, today_local())
db.session.add(task)
db.session.commit()
return task