cleaned up some code
This commit is contained in:
parent
ab014d8c66
commit
0fe1c54d9d
@ -1,6 +1,5 @@
|
||||
from flask import Blueprint, render_template, request, redirect, flash, url_for
|
||||
from sqlalchemy import select, insert, update, delete
|
||||
from sqlalchemy.orm import joinedload
|
||||
from the_works.database import db
|
||||
from the_works.models import Text, Reihe, Sprache, Textform, Text_Genre, Genre
|
||||
|
||||
@ -10,7 +9,7 @@ bp = Blueprint("text", __name__)
|
||||
@bp.route("/text/all")
|
||||
def all():
|
||||
# select all rows from table "Text", ORM style
|
||||
rows = db.session.execute(select(Text, Reihe, Textform, Sprache).join(Text.reihe, isouter=True).join(Text.textform, isouter=True).join(Text.sprache, isouter=True).options(joinedload(Text.text_genre))).unique()
|
||||
rows = db.session.execute(select(Text, Reihe, Textform, Sprache).join(Text.reihe, isouter=True).join(Text.textform, isouter=True).join(Text.sprache, isouter=True))
|
||||
# condense result into list of dicts
|
||||
texte = []
|
||||
for row in rows.all():
|
||||
@ -24,8 +23,8 @@ def all():
|
||||
"tf_id": row.Text.Textform,
|
||||
"Sprache": row.Sprache.Sprache,
|
||||
"s_id": row.Text.Sprache,
|
||||
"Genre_list": map(lambda tg: tg.genre.Genre, row.Text.text_genre) if row.Text.text_genre else [],
|
||||
"g_id_list": map(lambda tg: tg.Genre, row.Text.text_genre) if row.Text.text_genre else []
|
||||
"Genre_list": [tg.genre.Genre for tg in row.Text.text_genre],
|
||||
"g_id_list": row.Text.genres
|
||||
})
|
||||
return render_template("views/text.html", texte=texte)
|
||||
|
||||
@ -43,7 +42,7 @@ def read(id):
|
||||
"Reihe": t.Reihe or "",
|
||||
"Textform": t.Textform,
|
||||
"Sprache": t.Sprache,
|
||||
"Genres": t.genres or []
|
||||
"Genres": t.genres
|
||||
}
|
||||
return render_template("views/text_detail.html", text=text, reihen=db.session.scalars(select(Reihe)), textformen=db.session.scalars(select(Textform)), sprachen=db.session.scalars(select(Sprache)), genres=db.session.scalars(select(Genre)))
|
||||
|
||||
@ -67,18 +66,21 @@ def create():
|
||||
def update(id):
|
||||
# get record
|
||||
text = db.session.get(Text, id)
|
||||
|
||||
# update values
|
||||
text.Titel = request.form["form_Titel"]
|
||||
text.Untertitel = request.form["form_Untertitel"] or None
|
||||
text.Reihe = request.form["form_Reihe"] or None
|
||||
text.Textform = request.form["form_Textform"]
|
||||
text.Sprache = request.form["form_Sprache"]
|
||||
|
||||
# update genre list by removing genres not in form selection and adding selected ones not currently in list
|
||||
form_set = set(map(lambda g: int(g), request.form.getlist("form_Genres")))
|
||||
for g in set(text.genres) - form_set:
|
||||
text.genres.remove(g)
|
||||
for g in form_set - set(text.genres):
|
||||
text.genres.append(g)
|
||||
|
||||
# commit changes
|
||||
db.session.commit()
|
||||
flash("Eintrag erfolgreich geändert")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user