WebApp-Kategorien bearbeiten
This commit is contained in:
parent
9205d11802
commit
f1e1c247ec
3 changed files with 175 additions and 0 deletions
90
app.py
90
app.py
|
|
@ -162,6 +162,96 @@ def add_category():
|
||||||
|
|
||||||
|
|
||||||
return redirect("/categories")
|
return redirect("/categories")
|
||||||
|
@app.route("/categories/edit/<category>")
|
||||||
|
def edit_category(category):
|
||||||
|
|
||||||
|
with open(
|
||||||
|
CATEGORIES_FILE,
|
||||||
|
encoding="utf-8"
|
||||||
|
) as f:
|
||||||
|
|
||||||
|
categories = json.load(f)
|
||||||
|
|
||||||
|
if category not in categories:
|
||||||
|
return redirect("/categories")
|
||||||
|
|
||||||
|
return render_template(
|
||||||
|
"edit_category.html",
|
||||||
|
category=category,
|
||||||
|
words=categories[category]
|
||||||
|
)
|
||||||
|
@app.route(
|
||||||
|
"/categories/add_word/<category>",
|
||||||
|
methods=["POST"]
|
||||||
|
)
|
||||||
|
def add_word(category):
|
||||||
|
|
||||||
|
word = request.form["word"].strip()
|
||||||
|
|
||||||
|
with open(
|
||||||
|
CATEGORIES_FILE,
|
||||||
|
encoding="utf-8"
|
||||||
|
) as f:
|
||||||
|
|
||||||
|
categories = json.load(f)
|
||||||
|
|
||||||
|
if (
|
||||||
|
category in categories
|
||||||
|
and word
|
||||||
|
and word not in categories[category]
|
||||||
|
):
|
||||||
|
categories[category].append(word)
|
||||||
|
|
||||||
|
with open(
|
||||||
|
CATEGORIES_FILE,
|
||||||
|
"w",
|
||||||
|
encoding="utf-8"
|
||||||
|
) as f:
|
||||||
|
|
||||||
|
json.dump(
|
||||||
|
categories,
|
||||||
|
f,
|
||||||
|
ensure_ascii=False,
|
||||||
|
indent=2
|
||||||
|
)
|
||||||
|
|
||||||
|
return redirect(
|
||||||
|
f"/categories/edit/{category}"
|
||||||
|
)
|
||||||
|
@app.route(
|
||||||
|
"/categories/delete_word/<category>/<word>"
|
||||||
|
)
|
||||||
|
def delete_word(category, word):
|
||||||
|
|
||||||
|
with open(
|
||||||
|
CATEGORIES_FILE,
|
||||||
|
encoding="utf-8"
|
||||||
|
) as f:
|
||||||
|
|
||||||
|
categories = json.load(f)
|
||||||
|
|
||||||
|
if (
|
||||||
|
category in categories
|
||||||
|
and word in categories[category]
|
||||||
|
):
|
||||||
|
categories[category].remove(word)
|
||||||
|
|
||||||
|
with open(
|
||||||
|
CATEGORIES_FILE,
|
||||||
|
"w",
|
||||||
|
encoding="utf-8"
|
||||||
|
) as f:
|
||||||
|
|
||||||
|
json.dump(
|
||||||
|
categories,
|
||||||
|
f,
|
||||||
|
ensure_ascii=False,
|
||||||
|
indent=2
|
||||||
|
)
|
||||||
|
|
||||||
|
return redirect(
|
||||||
|
f"/categories/edit/{category}"
|
||||||
|
)
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
app.run(
|
app.run(
|
||||||
|
|
|
||||||
|
|
@ -55,11 +55,19 @@
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
|
|
||||||
|
<a href="/categories/edit/{{ category }}">
|
||||||
|
Bearbeiten
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a
|
<a
|
||||||
href="/categories/delete/{{ category }}"
|
href="/categories/delete/{{ category }}"
|
||||||
onclick="return confirm('Kategorie wirklich löschen?')">
|
onclick="return confirm('Kategorie wirklich löschen?')">
|
||||||
Löschen
|
Löschen
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
77
templates/edit_category.html
Normal file
77
templates/edit_category.html
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>{{ category }}</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h1>{{ category }}</h1>
|
||||||
|
|
||||||
|
<a href="/categories">
|
||||||
|
Zurück
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<h2>Neues Schlüsselwort</h2>
|
||||||
|
|
||||||
|
<form
|
||||||
|
action="/categories/add_word/{{ category }}"
|
||||||
|
method="post">
|
||||||
|
|
||||||
|
```
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
name="word"
|
||||||
|
required>
|
||||||
|
|
||||||
|
<button type="submit">
|
||||||
|
Hinzufügen
|
||||||
|
</button>
|
||||||
|
```
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<h2>Schlüsselwörter</h2>
|
||||||
|
|
||||||
|
<table border="1" cellpadding="5">
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th>Wort</th>
|
||||||
|
<th>Aktion</th>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
{% for word in words %}
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
{{ word }}
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="/categories/delete_word/{{ category }}/{{ word }}"
|
||||||
|
onclick="return confirm('Wort wirklich löschen?')">
|
||||||
|
|
||||||
|
```
|
||||||
|
Löschen
|
||||||
|
```
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue