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 flask import Blueprint, render_template, request, redirect, flash, url_for
|
||||||
from sqlalchemy import select, insert, update, delete
|
from sqlalchemy import select, insert, update, delete
|
||||||
from sqlalchemy.orm import joinedload
|
|
||||||
from the_works.database import db
|
from the_works.database import db
|
||||||
from the_works.models import Text, Reihe, Sprache, Textform, Text_Genre, Genre
|
from the_works.models import Text, Reihe, Sprache, Textform, Text_Genre, Genre
|
||||||
|
|
||||||
@ -10,7 +9,7 @@ bp = Blueprint("text", __name__)
|
|||||||
@bp.route("/text/all")
|
@bp.route("/text/all")
|
||||||
def all():
|
def all():
|
||||||
# select all rows from table "Text", ORM style
|
# 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
|
# condense result into list of dicts
|
||||||
texte = []
|
texte = []
|
||||||
for row in rows.all():
|
for row in rows.all():
|
||||||
@ -24,8 +23,8 @@ def all():
|
|||||||
"tf_id": row.Text.Textform,
|
"tf_id": row.Text.Textform,
|
||||||
"Sprache": row.Sprache.Sprache,
|
"Sprache": row.Sprache.Sprache,
|
||||||
"s_id": row.Text.Sprache,
|
"s_id": row.Text.Sprache,
|
||||||
"Genre_list": map(lambda tg: tg.genre.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": map(lambda tg: tg.Genre, row.Text.text_genre) if row.Text.text_genre else []
|
"g_id_list": row.Text.genres
|
||||||
})
|
})
|
||||||
return render_template("views/text.html", texte=texte)
|
return render_template("views/text.html", texte=texte)
|
||||||
|
|
||||||
@ -43,7 +42,7 @@ def read(id):
|
|||||||
"Reihe": t.Reihe or "",
|
"Reihe": t.Reihe or "",
|
||||||
"Textform": t.Textform,
|
"Textform": t.Textform,
|
||||||
"Sprache": t.Sprache,
|
"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)))
|
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):
|
def update(id):
|
||||||
# get record
|
# get record
|
||||||
text = db.session.get(Text, id)
|
text = db.session.get(Text, id)
|
||||||
|
|
||||||
# update values
|
# update values
|
||||||
text.Titel = request.form["form_Titel"]
|
text.Titel = request.form["form_Titel"]
|
||||||
text.Untertitel = request.form["form_Untertitel"] or None
|
text.Untertitel = request.form["form_Untertitel"] or None
|
||||||
text.Reihe = request.form["form_Reihe"] or None
|
text.Reihe = request.form["form_Reihe"] or None
|
||||||
text.Textform = request.form["form_Textform"]
|
text.Textform = request.form["form_Textform"]
|
||||||
text.Sprache = request.form["form_Sprache"]
|
text.Sprache = request.form["form_Sprache"]
|
||||||
|
|
||||||
# update genre list by removing genres not in form selection and adding selected ones not currently in list
|
# 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")))
|
form_set = set(map(lambda g: int(g), request.form.getlist("form_Genres")))
|
||||||
for g in set(text.genres) - form_set:
|
for g in set(text.genres) - form_set:
|
||||||
text.genres.remove(g)
|
text.genres.remove(g)
|
||||||
for g in form_set - set(text.genres):
|
for g in form_set - set(text.genres):
|
||||||
text.genres.append(g)
|
text.genres.append(g)
|
||||||
|
|
||||||
# commit changes
|
# commit changes
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
flash("Eintrag erfolgreich geändert")
|
flash("Eintrag erfolgreich geändert")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user