- Python/Flask Backend - SQLAlchemy Models (notes, tasks, templates, users) - Gunicorn + Nginx Deploy-Konfiguration - Static Assets (CSS/JS) - Jinja2 Templates
77 lines
3.8 KiB
HTML
Executable File
77 lines
3.8 KiB
HTML
Executable File
{% extends 'base.html' %}
|
|
{% block title %}Aufgaben - NotesManager{% endblock %}
|
|
{% block content %}
|
|
<div class="row g-4">
|
|
<div class="col-lg-5">
|
|
<div class="card shadow-sm">
|
|
<div class="card-body">
|
|
<h1 class="h4 mb-3">Neue Aufgabe</h1>
|
|
<form method="post">
|
|
<div class="mb-3">
|
|
<label class="form-label">Titel</label>
|
|
<input name="title" class="form-control" required>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label class="form-label">Beschreibung</label>
|
|
<textarea name="description" class="form-control" rows="4"></textarea>
|
|
</div>
|
|
<div class="row g-3 mb-3">
|
|
<div class="col-md-6">
|
|
<label class="form-label">Fällig am</label>
|
|
<input type="date" name="due_date" class="form-control">
|
|
</div>
|
|
<div class="col-md-3">
|
|
<label class="form-label">Status</label>
|
|
<select name="status" class="form-select">
|
|
<option value="offen">offen</option>
|
|
<option value="in_bearbeitung">in_bearbeitung</option>
|
|
<option value="erledigt">erledigt</option>
|
|
</select>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<label class="form-label">Priorität</label>
|
|
<select name="priority" class="form-select">
|
|
<option value="niedrig">niedrig</option>
|
|
<option value="mittel" selected>mittel</option>
|
|
<option value="hoch">hoch</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<button class="btn btn-primary">Speichern</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-7">
|
|
<div class="card shadow-sm">
|
|
<div class="card-body">
|
|
<h1 class="h4 mb-3">Aufgabenliste</h1>
|
|
<div class="list-group">
|
|
{% for item in items %}
|
|
<div class="list-group-item">
|
|
<div class="d-flex justify-content-between align-items-start gap-3">
|
|
<div>
|
|
<strong>{{ item.title }}</strong>
|
|
<div class="small text-muted">{{ item.description or '' }}</div>
|
|
<div class="small text-muted mt-1">{{ item.status }} · {{ item.priority }}{% if item.due_date %} · {{ item.due_date.strftime('%d.%m.%Y') }}{% endif %}</div>
|
|
</div>
|
|
<div class="d-flex gap-2">
|
|
<form method="post" action="{{ url_for('main.task_toggle', task_id=item.id) }}">
|
|
<button class="btn btn-sm btn-outline-success">Umschalten</button>
|
|
</form>
|
|
<form method="post" action="{{ url_for('main.task_delete', task_id=item.id) }}" onsubmit="return confirm('Aufgabe wirklich löschen?');">
|
|
<button class="btn btn-sm btn-outline-danger">Löschen</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
<p class="text-muted">Noch keine Aufgaben vorhanden.</p>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|