feat: refine quick wins workflow and calendar layout
This commit is contained in:
@@ -232,6 +232,42 @@ def delete_quick_win(quick_win_id: int):
|
||||
return redirect(url_for("settings.quick_wins"))
|
||||
|
||||
|
||||
@bp.route("/quick-wins/<int:quick_win_id>/update", methods=["POST"])
|
||||
@login_required
|
||||
def update_quick_win(quick_win_id: int):
|
||||
quick_win = QuickWin.query.get_or_404(quick_win_id)
|
||||
quick_task_config = get_quick_task_config()
|
||||
|
||||
title = (request.form.get("title") or "").strip()
|
||||
effort = request.form.get("effort") or ""
|
||||
|
||||
if len(title) < 2:
|
||||
flash("Quick-Wins brauchen einen Titel mit mindestens 2 Zeichen.", "error")
|
||||
return redirect(url_for("settings.quick_wins"))
|
||||
|
||||
if len(title) > 160:
|
||||
flash("Quick-Win-Titel dürfen maximal 160 Zeichen lang sein.", "error")
|
||||
return redirect(url_for("settings.quick_wins"))
|
||||
|
||||
if effort not in quick_task_config:
|
||||
flash("Bitte wähle einen gültigen Aufwand.", "error")
|
||||
return redirect(url_for("settings.quick_wins"))
|
||||
|
||||
duplicate = (
|
||||
QuickWin.query.filter(QuickWin.id != quick_win.id, QuickWin.title == title, QuickWin.active.is_(True))
|
||||
.first()
|
||||
)
|
||||
if duplicate:
|
||||
flash("Diesen Quick-Win gibt es bereits.", "error")
|
||||
return redirect(url_for("settings.quick_wins"))
|
||||
|
||||
quick_win.title = title
|
||||
quick_win.effort = effort
|
||||
db.session.commit()
|
||||
flash(f"Quick-Win „{quick_win.title}“ wurde aktualisiert.", "success")
|
||||
return redirect(url_for("settings.quick_wins"))
|
||||
|
||||
|
||||
@bp.route("/users/<int:user_id>/toggle-admin", methods=["POST"])
|
||||
@login_required
|
||||
def toggle_admin(user_id: int):
|
||||
|
||||
Reference in New Issue
Block a user