small changes

This commit is contained in:
eclipse 2025-08-14 22:42:30 +02:00
parent ca354063c7
commit 8c5fdf0de1
3 changed files with 14 additions and 7 deletions

View File

@ -29,15 +29,22 @@ def create_app(config=None):
# add url rules for class-based views # add url rules for class-based views
for m in SIMPLE_MODELS: for m in SIMPLE_MODELS:
for v in VIEWS: for v in VIEWS:
route = f"/{m['name']}/{v['name']}{v.get('route_params', '')}" route = f"/{m['name']}/{v['name'] + '/' if v['name'] != 'all' else ''}{v.get('route_params', '')}"
class_ = globals()[f"View{v['name'].capitalize()}"] class_ = globals()[f"View{v['name'].capitalize()}"]
view_name = f"{m['name']}.{v['name']}" view_name = f"{m['name']}.{v['name']}"
kwargs = {key: value for key, value in m.items() if key is not "name"} kwargs = {key: value for key, value in m.items() if key != "name"}
# add route (e.g. "/genre/all" or "/sprache/delete")
app.add_url_rule( app.add_url_rule(
route, route,
endpoint=view_name, endpoint=view_name,
view_func=class_.as_view(view_name, m["name"], **kwargs) view_func=class_.as_view(view_name, m["name"], **kwargs)
) )
# # add additional route "/genre/all/" for read operation
# if v['name'] == "all":
# app.add_url_rule(
# f"/{m['name']}",
# view_func=class_.as_view(view_name, m["name"], **kwargs)
# )
# register blueprints for remaining views # register blueprints for remaining views
app.register_blueprint(home.bp) app.register_blueprint(home.bp)

View File

@ -5,8 +5,8 @@ from the_works.models import Reihe, Verlag
bp = Blueprint("reihe", __name__) bp = Blueprint("reihe", __name__)
@bp.route("/reihe") @bp.route("/reihe/")
@bp.route("/reihe/all") @bp.route("/reihe/all/")
def all(): def all():
rows = db.session.execute(select(Reihe, Verlag).join(Reihe.verlag, isouter=True)) rows = db.session.execute(select(Reihe, Verlag).join(Reihe.verlag, isouter=True))
reihen = [] reihen = []
@ -19,7 +19,7 @@ def all():
}) })
return render_template("views/reihe.html", reihen=reihen, verlage=db.session.scalars(select(Verlag))) return render_template("views/reihe.html", reihen=reihen, verlage=db.session.scalars(select(Verlag)))
@bp.route("/reihe/create", methods=["POST"]) @bp.route("/reihe/create/", methods=["POST"])
def create(): def create():
db.session.add(Reihe( db.session.add(Reihe(
Titel = request.form["form_Titel"], Titel = request.form["form_Titel"],

View File

@ -7,8 +7,8 @@ from the_works.database import db
VIEWS = [ VIEWS = [
{"name": "all"}, {"name": "all"},
{"name": "create"}, {"name": "create"},
{"name": "update", "route_params": "/<int:id>"}, {"name": "update", "route_params": "<int:id>"},
{"name": "delete", "route_params": "/<int:id>"} {"name": "delete", "route_params": "<int:id>"}
] ]