feat: refine quick wins workflow and calendar layout
This commit is contained in:
@@ -110,33 +110,44 @@ def create():
|
||||
@login_required
|
||||
def quick_create():
|
||||
config = get_quick_task_config()
|
||||
quick_action = request.form.get("quick_action", "save")
|
||||
quick_mode = request.form.get("quick_mode", "preset")
|
||||
created_titles: list[str] = []
|
||||
|
||||
if quick_mode == "preset":
|
||||
quick_win = QuickWin.query.filter_by(id=request.form.get("quick_win_id", type=int), active=True).first()
|
||||
if not quick_win:
|
||||
flash("Dieser Quick-Win ist nicht mehr verfügbar.", "error")
|
||||
return redirect(request.referrer or url_for("tasks.my_tasks"))
|
||||
title = quick_win.title
|
||||
effort = quick_win.effort
|
||||
else:
|
||||
selected_ids = request.form.getlist("quick_win_ids")
|
||||
if selected_ids:
|
||||
quick_wins = QuickWin.query.filter(QuickWin.id.in_(selected_ids), QuickWin.active.is_(True)).order_by(QuickWin.id.asc()).all()
|
||||
for quick_win in quick_wins:
|
||||
task = create_quick_task(quick_win.title, quick_win.effort, current_user, description="Quick-Win")
|
||||
complete_task(task, current_user.id)
|
||||
created_titles.append(task.title)
|
||||
|
||||
if request.form.get("include_custom") == "1":
|
||||
form = QuickTaskForm(prefix="quick")
|
||||
form.effort.choices = [(key, values["label"]) for key, values in config.items()]
|
||||
if not form.validate_on_submit():
|
||||
custom_title = (form.title.data or "").strip()
|
||||
extra_errors: list[str] = []
|
||||
if not custom_title:
|
||||
extra_errors.append("Bitte gib für „Sonstiges“ einen Titel ein.")
|
||||
if not form.effort.data or form.effort.data not in config:
|
||||
extra_errors.append("Bitte wähle für „Sonstiges“ einen Aufwand aus.")
|
||||
if not form.validate_on_submit() or extra_errors:
|
||||
for field_errors in form.errors.values():
|
||||
for error in field_errors:
|
||||
flash(error, "error")
|
||||
for error in extra_errors:
|
||||
flash(error, "error")
|
||||
return redirect(request.referrer or url_for("tasks.my_tasks"))
|
||||
title = form.title.data
|
||||
effort = form.effort.data
|
||||
|
||||
task = create_quick_task(title, effort, current_user, description="Quick-Win")
|
||||
if quick_action == "complete":
|
||||
task = create_quick_task(custom_title, form.effort.data, current_user, description="Quick-Win")
|
||||
complete_task(task, current_user.id)
|
||||
flash(f"Quick-Win „{task.title}“ wurde direkt als erledigt gespeichert.", "success")
|
||||
created_titles.append(task.title)
|
||||
|
||||
if not created_titles:
|
||||
flash("Bitte wähle mindestens einen Quick-Win aus.", "error")
|
||||
return redirect(request.referrer or url_for("tasks.my_tasks"))
|
||||
|
||||
if len(created_titles) == 1:
|
||||
flash(f"Quick-Win „{created_titles[0]}“ wurde als erledigt gespeichert.", "success")
|
||||
else:
|
||||
flash(f"Quick-Win „{task.title}“ wurde für dich angelegt.", "success")
|
||||
flash(f"{len(created_titles)} Quick-Wins wurden als erledigt gespeichert.", "success")
|
||||
return redirect(request.referrer or url_for("tasks.my_tasks"))
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user