28 lines
825 B
Python
28 lines
825 B
Python
from flask import render_template, request, redirect, url_for
|
|
|
|
import db
|
|
|
|
from core.flask_app import app
|
|
from .parse_field_rows import _parse_field_rows
|
|
|
|
|
|
@app.route("/game/<slug>/objects/new", methods=["GET", "POST"])
|
|
def object_new(slug):
|
|
game = db.game_meta(slug)
|
|
existing_definitions = db.list_definitions(slug)
|
|
|
|
if request.method == "POST":
|
|
name = request.form.get("object_name", "").strip()
|
|
fields = _parse_field_rows(request.form)
|
|
|
|
if name and fields:
|
|
definition_id = db.create_definition(slug, name, fields)
|
|
return redirect(url_for("object_view", slug=slug, definition_id=definition_id))
|
|
|
|
return render_template(
|
|
"object_form.html",
|
|
game=game,
|
|
existing_definitions=existing_definitions,
|
|
field_types=db.FIELD_TYPES,
|
|
)
|