🎯 Ziel dieses Teils
✅ Jede erledigte Aufgabe bekommt einen „Zurücksetzen“-Button
✅ Beim Klick wird erledigt = False
gesetzt
✅ Die Änderung wird sofort gespeichert
✅ Alles passiert im Browser, ohne Neuladen per Hand
Schritt 1: Neue Route in app.py
Füge in deiner app.py
diese neue Route hinzu:
@app.route("/zuruecksetzen/<int:index>")
def aufgabe_zuruecksetzen(index):
if 0 <= index < len(aufgaben):
aufgaben[index]["erledigt"] = False
aufgaben_speichern()
return redirect(url_for("startseite"))
Schritt 2: Button in index.html
Bearbeite den Teil mit if aufgabe.erledigt
und füge bei erledigten Aufgaben einen „Zurück“-Button hinzu:
{% if aufgabe.erledigt %}
✅ <s>{{ aufgabe.text }}</s>
<a href="/zuruecksetzen/{{ loop.index0 }}">
<button>🔁 Zurücksetzen</button>
</a>
{% else %}
⬜ {{ aufgabe.text }}
<a href="/erledigt/{{ loop.index0 }}">
<button>✅ Erledigt</button>
</a>
{% endif %}
<a href="/loeschen/{{ loop.index0 }}">
<button>❌ Löschen</button>
</a>
Beispiel-Ausgabe im Browser
Wenn eine Aufgabe erledigt ist, sieht sie nun z. B. so aus:
✅ ~Python lernen~ 🔁 Zurücksetzen ❌ Löschen
Wenn sie offen ist:
⬜ Python lernen ✅ Erledigt ❌ Löschen
Was du jetzt kannst
Funktion | Wie gemacht? |
---|---|
Aufgabe „reaktivieren“ | erledigt = False |
Neue Route /zuruecksetzen/x | @app.route(...) |
Direktes Update | aufgaben_speichern() + redirect |
Button nur bei erledigt | {% if aufgabe.erledigt %} |
Was du gelernt hast
- Zwei-Wege-Status: offen ↔ erledigt
- Aufgaben logisch umschalten
- Routen flexibel erweitern
- HTML & Python logisch verbinden
Bonus-Ideen
- 🟢 Verwende nur einen Button: „Status wechseln“
- ⚠️ Zeige eine Bestätigung beim Zurücksetzen
- 🧠 Zeige die letzte Änderung (Zeitstempel)
Schreibe einen Kommentar