majuna/app/portal/util.py

38 lines
No EOL
1.3 KiB
Python

from flask import Response, render_template, flash, redirect, url_for
from app import db
from app.models import AbstractResource
from app.portal.forms import LifecycleForm
def response_404(message: str):
return Response(render_template("error.html.j2",
header="404 Not Found",
message=message))
def view_lifecycle(*,
header: str,
message: str,
success_message: str,
success_view: str,
section: str,
resource: AbstractResource,
action: str):
form = LifecycleForm()
if form.validate_on_submit():
if action == "destroy":
resource.destroy()
elif action == "deprecate":
resource.deprecate(reason="manual")
else:
flash("Unknown action")
return redirect(url_for("portal.portal_home"))
db.session.commit()
flash(success_message, "success")
return redirect(url_for(success_view))
return render_template("lifecycle.html.j2",
header=header,
message=message,
section=section,
form=form)