parent
b36ff3a9c1
commit
08a4ffa89f
20
main.py
20
main.py
|
@ -125,13 +125,27 @@ def event_page(event_id: int) -> str:
|
|||
return flask.render_template("event.html", item=item)
|
||||
|
||||
|
||||
@app.route("/conference/<short_name>")
|
||||
def conference_page(short_name: str) -> str:
|
||||
@app.route("/conference/<short_name>", methods=["GET", "POST"])
|
||||
def conference_page(short_name: str) -> str | Response:
|
||||
item = model.Conference.query.filter_by(short_name=short_name).one_or_none()
|
||||
if item is None:
|
||||
flask.abort(404)
|
||||
|
||||
if flask.request.method == "POST" and check_admin_mode():
|
||||
item.short_name = flask.request.form["short_name"]
|
||||
item.title = flask.request.form["title"]
|
||||
database.session.commit()
|
||||
|
||||
assert flask.request.endpoint
|
||||
return flask.redirect(
|
||||
flask.url_for(flask.request.endpoint, short_name=item.short_name)
|
||||
)
|
||||
|
||||
return flask.render_template(
|
||||
"conference.html", item=item, person_image_filename=person_image_filename
|
||||
"conference.html",
|
||||
item=item,
|
||||
person_image_filename=person_image_filename,
|
||||
is_admin=check_admin_mode,
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -86,6 +86,21 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
{% if is_admin() %}
|
||||
<form method="POST">
|
||||
<div>
|
||||
<label for="title">title</label>
|
||||
<input type="text" name="title" id="title" value="{{ item.title }}">
|
||||
</div>
|
||||
<div>
|
||||
<label for="short_name">short name</label>
|
||||
<input type="text" name="short_name" id="short_name" value="{{ item.short_name }}">
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary">Submit</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
|
||||
<h3>Talks</h3>
|
||||
|
||||
<p>{{ item.events.count() }} talks</p>
|
||||
|
|
Loading…
Reference in a new issue