implemented CRUD operations for table "Werk" (excluding cover picture)
This commit is contained in:
parent
2e91576a08
commit
58d7fe01df
@ -1,2 +0,0 @@
|
||||
{% macro bla(var1, var2, var3='var3_default') -%}
|
||||
{%- endmacro %}
|
||||
@ -1,15 +1,4 @@
|
||||
<script>
|
||||
function showUpdateModal(titel, untertitel, reihe, textform, sprache, formaction) {
|
||||
document.getElementById("dialog-heading").textContent = "Text bearbeiten";
|
||||
document.getElementById("form_Titel").value = titel;
|
||||
document.getElementById("form_Untertitel").value = untertitel;
|
||||
document.getElementById('form_Reihe').selectedIndex = reihe;
|
||||
document.getElementById("form_Textform").selectedIndex = textform;
|
||||
document.getElementById("form_Sprache").selectedIndex = sprache;
|
||||
document.getElementById("form_submit").formAction = formaction;
|
||||
document.getElementById("textmodal").showModal();
|
||||
}
|
||||
|
||||
function showCreateModal() {
|
||||
document.getElementById("dialog-heading").textContent = "Text hinzufügen";
|
||||
document.getElementById("form_Titel").value = "";
|
||||
@ -20,4 +9,15 @@
|
||||
document.getElementById("form_submit").formAction = "{{ url_for('text.create') }}";
|
||||
document.getElementById("textmodal").showModal();
|
||||
}
|
||||
|
||||
function showUpdateModal(titel, untertitel, reihe, textform, sprache, formaction) {
|
||||
document.getElementById("dialog-heading").textContent = "Text bearbeiten";
|
||||
document.getElementById("form_Titel").value = titel;
|
||||
document.getElementById("form_Untertitel").value = untertitel;
|
||||
document.getElementById('form_Reihe').selectedIndex = reihe;
|
||||
document.getElementById("form_Textform").selectedIndex = textform;
|
||||
document.getElementById("form_Sprache").selectedIndex = sprache;
|
||||
document.getElementById("form_submit").formAction = formaction;
|
||||
document.getElementById("textmodal").showModal();
|
||||
}
|
||||
</script>
|
||||
41
the_works/templates/views/_werkmodal.js
Normal file
41
the_works/templates/views/_werkmodal.js
Normal file
@ -0,0 +1,41 @@
|
||||
<script>
|
||||
function showCreateModal() {
|
||||
document.getElementById("dialog-heading").textContent = "Werk hinzufügen";
|
||||
document.getElementById("form_Titel").value = "";
|
||||
document.getElementById("form_Untertitel").value = "";
|
||||
document.getElementById("form_Werksform").selectedIndex = "";
|
||||
document.getElementById("form_Verlag").selectedIndex = "";
|
||||
document.getElementById('form_Reihe').selectedIndex = "";
|
||||
document.getElementById('form_Reihennummer').value = "";
|
||||
document.getElementById('form_Erscheinungsdatum').value = "";
|
||||
document.getElementById('form_ISBN_13').value = "";
|
||||
document.getElementById('form_ISBN_10').value = "";
|
||||
document.getElementById('form_ISSN').value = "";
|
||||
document.getElementById('form_Preis').value = "";
|
||||
document.getElementById('form_Titelbild').value = "";
|
||||
document.getElementById('form_Klappentext').value = "";
|
||||
document.getElementById('form_Anmerkungen').value = "";
|
||||
document.getElementById("form_submit").formAction = "{{ url_for('werk.create') }}";
|
||||
document.getElementById("werkmodal").showModal();
|
||||
}
|
||||
|
||||
function showUpdateModal(t, u, wf, v, r, rn, ed, i13, i10, is, p, tb, k, a, fa) {
|
||||
document.getElementById("dialog-heading").textContent = "Werk bearbeiten";
|
||||
document.getElementById("form_Titel").value = t;
|
||||
document.getElementById("form_Untertitel").value = u;
|
||||
document.getElementById("form_Werksform").selectedIndex = wf;
|
||||
document.getElementById("form_Verlag").selectedIndex = v;
|
||||
document.getElementById('form_Reihe').selectedIndex = r;
|
||||
document.getElementById('form_Reihennummer').value = rn;
|
||||
document.getElementById('form_Erscheinungsdatum').value = ed;
|
||||
document.getElementById('form_ISBN_13').value = i13;
|
||||
document.getElementById('form_ISBN_10').value = i10;
|
||||
document.getElementById('form_ISSN').value = is;
|
||||
document.getElementById('form_Preis').value = p;
|
||||
document.getElementById('form_Titelbild').value = tb;
|
||||
document.getElementById('form_Klappentext').value = k;
|
||||
document.getElementById('form_Anmerkungen').value = a;
|
||||
document.getElementById("form_submit").formAction = fa;
|
||||
document.getElementById("werkmodal").showModal();
|
||||
}
|
||||
</script>
|
||||
@ -10,7 +10,6 @@
|
||||
|
||||
{% include "views/_textmodal.js" %}
|
||||
|
||||
<article>
|
||||
<section>
|
||||
<button onclick="showCreateModal()" title="Text hinzufügen">
|
||||
<!-- <svg viewbox="0 0 24 24"><use href="#create" /></svg> -->
|
||||
@ -38,54 +37,70 @@
|
||||
<td title="Textform">{{ text["Textform"] }}</td>
|
||||
<td title="Sprache">{{ text["Sprache"] }}</td>
|
||||
<td><a onclick="showUpdateModal('{{ text["Titel"] }}', '{{ text["Untertitel"] }}', '{{ text["r_id"] }}', '{{ text["tf_id"] }}', '{{ text["s_id"] }}', '{{ url_for("text.update", id=text["id"]) }}');" title="Text bearbeiten"><svg viewbox="0 0 24 24"><use href="#update" /></svg></a></td>
|
||||
<td><a onclick="return confirm('Eintrag wirklich löschen?');" href="{{ url_for('text.delete', id=text["id"]) }}" title="Text löschen"><svg viewbox="0 0 24 24"><use href="#delete" /></svg></a></td>
|
||||
<td><a onclick="return confirm('Eintrag wirklich löschen?');" href="{{ url_for('text.delete', id=text['id']) }}" title="Text löschen"><svg viewbox="0 0 24 24"><use href="#delete" /></svg></a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</article>
|
||||
|
||||
<dialog aria-labelledby="dialog-heading" id="textmodal">
|
||||
<article>
|
||||
<header>
|
||||
<button aria-label="close" rel="prev" onclick="textmodal.close()"></button>
|
||||
<h1 id="dialog-heading">Neuer Text</h1>
|
||||
</header>
|
||||
<form>
|
||||
<label>
|
||||
Titel (erforderlich)
|
||||
<input id="form_Titel" name="form_Titel" aria-Label="Titel" placeholder="Titel" required />
|
||||
</label>
|
||||
<label>
|
||||
Untertitel
|
||||
<input id="form_Untertitel" name="form_Untertitel" aria-Label="Untertitel" placeholder="Untertitel" />
|
||||
</label>
|
||||
<label>
|
||||
Reihe
|
||||
<select id="form_Reihe" name="form_Reihe" aria-label="Der Text gehört zur Reihe …">
|
||||
<option selected value="">keine Reihe</option>
|
||||
{% for r in reihen %}<option value="{{ r.ID }}">{{ r.Titel }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
Textform (erforderlich)
|
||||
<select id="form_Textform" name="form_Textform" aria-label="Textform" required>
|
||||
<option selected disabled value="">Textform auswählen …</option>
|
||||
{% for tf in textformen %}<option value="{{ tf.ID }}">{{ tf.Textform }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
Sprache (erforderlich)
|
||||
<select id="form_Sprache" name="form_Sprache" aria-label="Sprache des Textes" required>
|
||||
<option selected disabled value="">Sprache auswählen …</option>
|
||||
{% for s in sprachen %}<option value="{{ s.ID }}">{{ s.Sprache }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
<button id="form_submit" type="submit" formmethod="post" formaction="{{ url_for('text.create') }}">OK</button>
|
||||
<button aria-label="close" formmethod="dialog" formnovalidate>Abbrechen</button>
|
||||
<header>
|
||||
<button aria-label="close" rel="prev" onclick="textmodal.close()"></button>
|
||||
<h1 id="dialog-heading">Neuer Text</h1>
|
||||
</header>
|
||||
|
||||
<fieldset>
|
||||
<article>
|
||||
<label>
|
||||
Titel (erforderlich)
|
||||
<input id="form_Titel" name="form_Titel" aria-Label="Titel" placeholder="Titel" required />
|
||||
</label>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<details name="text" open>
|
||||
<summary>Untertitel und Reihe</summary>
|
||||
<label>
|
||||
Untertitel
|
||||
<input id="form_Untertitel" name="form_Untertitel" aria-Label="Untertitel" placeholder="Untertitel" />
|
||||
</label>
|
||||
<label>
|
||||
Reihe
|
||||
<select id="form_Reihe" name="form_Reihe" aria-label="Der Text gehört zur Reihe …">
|
||||
<option selected value="">keine Reihe</option>
|
||||
{% for r in reihen %}<option value="{{ r.ID }}">{{ r.Titel }}</option>{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
</details>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<details name="text">
|
||||
<summary>Textform und Sprache</summary>
|
||||
<label>
|
||||
Textform (erforderlich)
|
||||
<select id="form_Textform" name="form_Textform" aria-label="Textform" required>
|
||||
<option selected disabled value="">Textform auswählen …</option>
|
||||
{% for tf in textformen %}<option value="{{ tf.ID }}">{{ tf.Textform }}</option>{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
Sprache (erforderlich)
|
||||
<select id="form_Sprache" name="form_Sprache" aria-label="Sprache des Textes" required>
|
||||
<option selected disabled value="">Sprache auswählen …</option>
|
||||
{% for s in sprachen %}<option value="{{ s.ID }}">{{ s.Sprache }}</option>{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
</details>
|
||||
</article>
|
||||
</fieldset>
|
||||
|
||||
<footer class="grid">
|
||||
<button id="form_submit" type="submit" formmethod="post" formaction="{{ url_for('text.create') }}">OK</button>
|
||||
<button class="secondary" aria-label="close" formmethod="dialog" formnovalidate>Abbrechen</button>
|
||||
</footer>
|
||||
</form>
|
||||
</article>
|
||||
</dialog>
|
||||
|
||||
@ -8,9 +8,8 @@
|
||||
|
||||
{% include "_icons.svg" %}
|
||||
|
||||
{# {% include "views/_textmodal.js" %} #}
|
||||
{% include "views/_werkmodal.js" %}
|
||||
|
||||
<article>
|
||||
<section>
|
||||
<button onclick="showCreateModal()" title="Werk hinzufügen">
|
||||
<!-- <svg viewbox="0 0 24 24"><use href="#create" /></svg> -->
|
||||
@ -37,56 +36,126 @@
|
||||
<td title="Reihe">{{ werk["Reihe"] }}</td>
|
||||
<td title="Verlag">{{ werk["Verlag"] }}</td>
|
||||
<td title="Werksform">{{ werk["Werksform"] }}</td>
|
||||
<td><a href="{{ url_for('werk.read', id=werk['id']) }}" title="Werk ansehen/bearbeiten"><svg viewbox="0 0 24 24"><use href="#read" /></svg></a></td>
|
||||
<td><a href="{{ url_for('werk.delete', id=werk['id']) }}" title="Werk löschen"><svg viewbox="0 0 24 24"><use href="#delete" /></svg></a></td>
|
||||
<td><a onclick="showUpdateModal('{{ werk["Titel"] }}', '{{ werk["Untertitel"] }}', '{{ werk["wf_id"] }}', '{{ werk["v_id"] }}', '{{ werk["r_id"] }}', '{{ werk["Reihennummer"] }}', '{{ werk["Erscheinungsdatum"] }}', '{{ werk["ISBN_13"] }}', '{{ werk["ISBN_10"] }}', '{{ werk["ISSN"] }}', '{{ werk["Preis"] }}', '', '{{ werk["Klappentext"] }}', '{{ werk["Anmerkungen"] }}', '{{ url_for("werk.update", id=werk["id"]) }}');" title="Werk ansehen/bearbeiten"><svg viewbox="0 0 24 24"><use href="#update" /></svg></a></td>
|
||||
<td><a onclick="return confirm('Eintrag wirklich löschen?');" href="{{ url_for('werk.delete', id=werk['id']) }}" title="Werk löschen"><svg viewbox="0 0 24 24"><use href="#delete" /></svg></a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</article>
|
||||
|
||||
<!-- <dialog aria-labelledby="dialog-heading" id="textmodal">
|
||||
<dialog aria-labelledby="dialog-heading" id="werkmodal">
|
||||
<article>
|
||||
<header>
|
||||
<button aria-label="close" rel="prev" onclick="textmodal.close()"></button>
|
||||
<h1 id="dialog-heading">Neuer Text</h1>
|
||||
</header>
|
||||
<form>
|
||||
<label>
|
||||
Titel (erforderlich)
|
||||
<input id="text_titel" name="text_titel" placeholder="Titel" required />
|
||||
</label>
|
||||
<label>
|
||||
Untertitel
|
||||
<input id="text_untertitel" name="text_untertitel" placeholder="Untertitel" />
|
||||
</label>
|
||||
<label>
|
||||
Reihe
|
||||
<select id="text_reihe" name="text_reihe" aria-label="Der Text gehört zur Reihe …">
|
||||
<option selected value="">keine Reihe</option>
|
||||
{% for r in reihen %}<option value="{{ r.ID }}">{{ r.Titel }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
Textform (erforderlich)
|
||||
<select id="text_textform" name="text_textform" aria-label="Textform" required>
|
||||
<option selected disabled value="">Textform auswählen …</option>
|
||||
{% for tf in textformen %}<option value="{{ tf.ID }}">{{ tf.Textform }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
Sprache (erforderlich)
|
||||
<select id="text_sprache" name="text_sprache" aria-label="Sprache des Textes" required>
|
||||
<option selected disabled value="">Sprache auswählen …</option>
|
||||
{% for s in sprachen %}<option value="{{ s.ID }}">{{ s.Sprache }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
<button id="text_submit" type="submit" formmethod="post" formaction="{{ url_for('text.create') }}">OK</button>
|
||||
<button aria-label="close" formmethod="dialog" formnovalidate>Abbrechen</button>
|
||||
<form id="werk_detail_form" method="post" action="#" readonly>
|
||||
<header>
|
||||
<button aria-label="close" rel="prev" onclick="werkmodal.close()"></button>
|
||||
<h1 id="dialog-heading">Detailansicht (Werk)</h1>
|
||||
</header>
|
||||
|
||||
<fieldset>
|
||||
<article>
|
||||
<label>
|
||||
Titel (erforderlich)
|
||||
<input id="form_Titel" name="form_Titel" aria-label="Titel" placeholder="Titel" required />
|
||||
</label>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<details name="werk" open>
|
||||
<summary>Untertitel und Werksform</summary>
|
||||
<label>
|
||||
Untertitel
|
||||
<input id="form_Untertitel" name="form_Untertitel" aria-label="Untertitel" placeholder="Untertitel" />
|
||||
</label>
|
||||
<label>
|
||||
Werksform (erforderlich)
|
||||
<select id="form_Werksform" name="form_Werksform" aria-label="Werksform" required>
|
||||
<option value="">keine Werksform</option>
|
||||
{% for wf in werksformen %}<option value="{{ wf.ID }}">{{ wf.Werksform }}</option>{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
</details>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<details name="werk">
|
||||
<summary>Verlag und Reihe</summary>
|
||||
<label>
|
||||
Verlag
|
||||
<select id="form_Verlag" name="form_Verlag" aria-label="Verlag">
|
||||
<option selected value="">kein Verlag</option>
|
||||
{% for v in verlage %}<option value="{{ v.ID }}">{{ v.Verlag }}</option>{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
Reihe
|
||||
<select id="form_Reihe" name="form_Reihe" aria-label="Der Text gehört zur Reihe …">
|
||||
<option value="" >keine Reihe</option>
|
||||
{% for r in reihen %}<option value="{{ r.ID }}">{{ r.Titel }}</option>{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
Reihennummer
|
||||
<input id="form_Reihennummer" name="form_Reihennummer" aria-label="Reihennummer" placeholder="keine Reihennummer" />
|
||||
</label>
|
||||
</details>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<details name="werk">
|
||||
<summary>Preis und Erscheinungsdatum</summary>
|
||||
<label>
|
||||
Preis
|
||||
<input id="form_Preis" name="form_Preis" aria-label="Preis" placeholder="kein Preis" />
|
||||
</label>
|
||||
<label>
|
||||
Erscheinungsdatum
|
||||
<input type="date" id="form_Erscheinungsdatum" name="form_Erscheinungsdatum" aria-label="Erscheinungsdatum" placeholder="kein Datum" />
|
||||
</label>
|
||||
</details>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<details name="werk">
|
||||
<summary>ISBNs</summary>
|
||||
<label>
|
||||
ISBN-13
|
||||
<input id="form_ISBN_13" name="form_ISBN_13" aria-label="ISBN-13" placeholder="keine ISBN-13" />
|
||||
</label>
|
||||
<label>
|
||||
ISBN-10
|
||||
<input id="form_ISBN_10" name="form_ISBN_10" aria-label="ISBN-10" placeholder="keine ISBN-10" />
|
||||
</label>
|
||||
<label>
|
||||
ISSN
|
||||
<input id="form_ISSN" name="form_ISSN" aria-label="ISSN" placeholder="keine ISSN" />
|
||||
</label>
|
||||
</details>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<details name="werk">
|
||||
<summary>Titelbild und Klappentext</summary>
|
||||
<label>
|
||||
Titelbild
|
||||
<input type="file" id="form_Titelbild" name="form_Titelbild" aria-label="Titelbild" placeholder="kein Titelbild" />
|
||||
</label>
|
||||
<label>
|
||||
Klappentext
|
||||
<textarea id="form_Klappentext" name="form_Klappentext" aria-label="Klappentext" placeholder="kein Klappentext" rows="10"></textarea>
|
||||
</label>
|
||||
<label>
|
||||
Anmerkungen
|
||||
<textarea id="form_Anmerkungen" name="form_Anmerkungen" aria-label="Anmerkungen" placeholder="keine Anmerkungen" rows="10"></textarea>
|
||||
</label>
|
||||
</details>
|
||||
</article>
|
||||
</fieldset>
|
||||
|
||||
<footer class="grid">
|
||||
<button id="form_submit" type="submit" formmethod="post" formaction="{{ url_for('werk.create') }}">OK</button>
|
||||
<button class="secondary" aria-label="close" formmethod="dialog" formnovalidate>Abbrechen</button>
|
||||
</footer>
|
||||
</form>
|
||||
</article>
|
||||
</dialog> -->
|
||||
</dialog>
|
||||
{% endblock content %}
|
||||
@ -1,51 +0,0 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block title %}"{{ werk["Titel"] }}" – Detailansicht"{% endblock title %}
|
||||
|
||||
{% block heading %}"{{ werk["Titel"] }}" – Detailansicht{% endblock heading %}
|
||||
|
||||
{% block content %}
|
||||
{% set ID = werk["id"] %}
|
||||
<article>
|
||||
<form method="post" action="{{ url_for('werk.update', id=ID) }}" readonly>
|
||||
<fieldset disabled="disabled">
|
||||
<label>
|
||||
Titel (erforderlich)
|
||||
<input id="form_Titel" name="form_Titel" aria-label="Titel" placeholder="Titel" value="{{ werk['Titel'] }}" required />
|
||||
</label>
|
||||
<label>
|
||||
Untertitel
|
||||
<input id="form_Untertitel" name="form_Untertitel" aria-label="Untertitel" placeholder="Untertitel" value="{{ werk['Untertitel'] }}" />
|
||||
</label>
|
||||
<label>
|
||||
Verlag
|
||||
<select id="form_Verlag" name="form_Verlag" aria-label="Verlag">
|
||||
<option value=""{% if werk['v_id'] == '' %} selected{% endif %}>kein Verlag</option>
|
||||
{% for v in verlage %}<option value="{{ v.ID }}"{% if werk['v_id'] == v.ID %} selected{% endif %}>{{ v.Verlag }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
Werksform
|
||||
<select id="form_Werksform" name="form_Werksform" aria-label="Werksform">
|
||||
<option value=""{% if werk['wf_id'] == '' %} selected{% endif %}>keine Werksform</option>
|
||||
{% for wf in werksformen %}<option value="{{ wf.ID }}"{% if werk['wf_id'] == wf.ID %} selected{% endif %}>{{ wf.Werksform }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
Reihe
|
||||
<select id="form_Reihe" name="form_Reihe" aria-label="Der Text gehört zur Reihe …">
|
||||
<option value="" {% if werk['r_id'] == "" %}selected{% endif %}>keine Reihe</option>
|
||||
{% for r in reihen %}<option value="{{ r.ID }}" {% if werk['r_id'] == r.ID %}selected{% endif %}>{{ r.Titel }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
Reihennummer
|
||||
<input id="form_Reihennummer" name="form_Reihennummer" aria-label="Reihennummer" placeholder="keine Reihennummer" value="{{ werk['Reihennummer'] }}" />
|
||||
</label>
|
||||
</fieldset>
|
||||
</form>
|
||||
</article>
|
||||
{% endblock content %}
|
||||
@ -31,7 +31,7 @@ def all():
|
||||
})
|
||||
return render_template("views/text.html", texte=texte, reihen=db.session.scalars(select(Reihe)), textformen=db.session.scalars(select(Textform)), sprachen=db.session.scalars(select(Sprache)))
|
||||
|
||||
@bp.route("/text/create", methods=["POST"])
|
||||
@bp.route("/text", methods=["POST"])
|
||||
def create():
|
||||
db.session.add(Text(
|
||||
Titel = request.form["form_Titel"],
|
||||
|
||||
@ -5,80 +5,89 @@ from the_works.models import Werk, Reihe, Verlag, Werksform
|
||||
|
||||
bp = Blueprint("werk", __name__)
|
||||
|
||||
# ORM equivalent of SQL statement to select all Werk entries
|
||||
read_statement = select(Werk, Reihe, Verlag, Werksform).join(Werk.reihe, isouter=True).join(Werk.verlag, isouter=True).join(Werk.werksform, isouter=True)
|
||||
|
||||
|
||||
@bp.route("/werk")
|
||||
@bp.route("/werk/all")
|
||||
def all():
|
||||
# select all rows from table "Werk", ORM style
|
||||
rows = db.session.execute(select(Werk, Reihe, Verlag, Werksform).join(Werk.reihe, isouter=True).join(Werk.verlag, isouter=True).join(Werk.werksform, isouter=True))
|
||||
# condense result into list of dicts
|
||||
werke = []
|
||||
for row in db.session.execute(read_statement):
|
||||
for row in rows:
|
||||
werke.append({
|
||||
"id": row.Werk.ID,
|
||||
"Titel": row.Werk.Titel,
|
||||
"Untertitel": row.Werk.Untertitel or "",
|
||||
"Reihe": row.Reihe.Titel if row.Reihe else "",
|
||||
"Verlag": row.Verlag.Verlag if row.Verlag else "",
|
||||
"Werksform": row.Werksform.Werksform if row.Werksform else "",
|
||||
"wf_id": row.Werksform.ID if row.Werksform else "",
|
||||
"Verlag": row.Verlag.Verlag if row.Verlag else "",
|
||||
"v_id": row.Verlag.ID if row.Verlag else "",
|
||||
"Reihe": row.Reihe.Titel if row.Reihe else "",
|
||||
"r_id": row.Reihe.ID if row.Reihe else "",
|
||||
"Reihennummer": row.Werk.Reihennummer or "",
|
||||
"Erscheinungsdatum": row.Werk.Erscheinungsdatum or "",
|
||||
"ISBN_13": row.Werk.ISBN_13 or "",
|
||||
"ISBN_10": row.Werk.ISBN_10 or "",
|
||||
"ISSN": row.Werk.ISSN or "",
|
||||
"Preis": row.Werk.Preis or "",
|
||||
"Titelbild": row.Werk.Titelbild or "",
|
||||
"Klappentext": row.Werk.Klappentext or "",
|
||||
"Anmerkungen": row.Werk.Anmerkungen or ""
|
||||
})
|
||||
return render_template("views/werk.html", werke=werke)
|
||||
|
||||
|
||||
@bp.route("/werk/read/<int:id>")
|
||||
def read(id):
|
||||
row = db.session.execute(read_statement.where(Werk.ID == id)).one()
|
||||
werk = {
|
||||
"id": row.Werk.ID,
|
||||
"Titel": row.Werk.Titel,
|
||||
"Untertitel": row.Werk.Untertitel or "",
|
||||
"Reihe": row.Reihe.Titel if row.Reihe else "",
|
||||
"r_id": row.Reihe.ID if row.Reihe else "",
|
||||
"Verlag": row.Verlag.Verlag if row.Verlag else "",
|
||||
"v_id": row.Verlag.ID if row.Verlag else "",
|
||||
"Werksform": row.Werksform.Werksform if row.Werksform else "",
|
||||
"wf_id": row.Werksform.ID if row.Werksform else "",
|
||||
"Reihennummer": row.Werk.Reihennummer or "",
|
||||
}
|
||||
return render_template("views/werk_read.html", werk=werk, reihen=db.session.scalars(select(Reihe)), verlage=db.session.scalars(select(Verlag)), werksformen=db.session.scalars(select(Werksform)))
|
||||
return render_template("views/werk.html", werke=werke, reihen=db.session.scalars(select(Reihe)), verlage=db.session.scalars(select(Verlag)), werksformen=db.session.scalars(select(Werksform)))
|
||||
|
||||
@bp.route("/werk/create", methods=["POST"])
|
||||
def create():
|
||||
"""db.session.add(Text(
|
||||
Titel = request.form["text_titel"],
|
||||
Untertitel = request.form["text_untertitel"] or None,
|
||||
Reihe = request.form["text_reihe"] or None,
|
||||
Textform = request.form["text_textform"],
|
||||
Sprache = request.form["text_sprache"]
|
||||
db.session.add(Werk(
|
||||
Titel = request.form["form_Titel"],
|
||||
Untertitel = request.form["form_Untertitel"] or None,
|
||||
Werksform = request.form["form_Werksform"],
|
||||
Verlag = request.form["form_Verlag"] or None,
|
||||
Reihe = request.form["form_Reihe"] or None,
|
||||
Reihennummer = request.form["form_Reihennummer"] or None,
|
||||
Erscheinungsdatum = request.form["form_Erscheinungsdatum"] or None,
|
||||
ISBN_13 = request.form["form_ISBN_13"] or None,
|
||||
ISBN_10 = request.form["form_ISBN_10"] or None,
|
||||
ISSN = request.form["form_ISSN"] or None,
|
||||
Preis = request.form["form_Preis"] or None,
|
||||
Titelbild = None,
|
||||
Klappentext = request.form["form_Klappentext"] or None,
|
||||
Anmerkungen = request.form["form_Anmerkungen"] or None
|
||||
))
|
||||
db.session.commit()
|
||||
flash("Eintrag erfolgreich hinzugefügt")
|
||||
"""
|
||||
return redirect(url_for("werk.all"))
|
||||
|
||||
@bp.route("/werk/update/<int:id>", methods=["POST"])
|
||||
def update(id):
|
||||
"""# get record
|
||||
text = db.session.get(Text, id)
|
||||
# get record
|
||||
werk = db.session.get(Werk, id)
|
||||
# update values
|
||||
text.Titel = request.form["text_titel"]
|
||||
text.Untertitel = request.form["text_untertitel"] or None
|
||||
text.Reihe = request.form["text_reihe"] or None
|
||||
text.Textform = request.form["text_textform"]
|
||||
text.Sprache = request.form["text_sprache"]
|
||||
werk.Titel = request.form["form_Titel"]
|
||||
werk.Untertitel = request.form["form_Untertitel"] or None
|
||||
werk.Werksform = request.form["form_Werksform"]
|
||||
werk.Verlag = request.form["form_Verlag"] or None
|
||||
werk.Reihe = request.form["form_Reihe"] or None
|
||||
werk.Reihennummer = request.form["form_Reihennummer"] or None
|
||||
werk.Erscheinungsdatum = request.form["form_Erscheinungsdatum"] or None
|
||||
werk.ISBN_13 = request.form["form_ISBN_13"] or None
|
||||
werk.ISBN_10 = request.form["form_ISBN_10"] or None
|
||||
werk.ISSN = request.form["form_ISSN"] or None
|
||||
werk.Preis = request.form["form_Preis"] or None
|
||||
werk.Titelbild = None
|
||||
werk.Klappentext = request.form["form_Klappentext"] or None
|
||||
werk.Anmerkungen = request.form["form_Anmerkungen"] or None
|
||||
# commit changes
|
||||
db.session.commit()
|
||||
flash("Eintrag erfolgreich geändert")
|
||||
"""
|
||||
return redirect(url_for("werk.all"))
|
||||
|
||||
|
||||
@bp.route("/werk/delete/<int:id>")
|
||||
def delete(id):
|
||||
""" text = db.session.get(Text, id)
|
||||
db.session.delete(text)
|
||||
werk = db.session.get(Werk, id)
|
||||
db.session.delete(werk)
|
||||
db.session.commit()
|
||||
flash("Eintrag erfolgreich gelöscht")
|
||||
"""
|
||||
return redirect(url_for("werk.all"))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user