From 18b796481dcb09dc856d37b07428d1e5aad04283 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Thu, 24 May 2012 08:45:08 -0400 Subject: [PATCH] simple debug feature - edit game json directly --- lasertube.py | 17 ++++++++++++++++- static/style.css | 1 + templates/disc.html | 8 ++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/lasertube.py b/lasertube.py index 04a62d6..f048e60 100644 --- a/lasertube.py +++ b/lasertube.py @@ -117,9 +117,24 @@ def disc_json(id): disc = g.db.query(models.Disc).filter_by(id=id).one() return json.dumps(models.toJso(disc)) -@app.route('/disc//edit/') +@app.route('/disc//edit/', methods=['GET', 'POST']) @requires_login def disc_edit(id): + if request.method == 'POST': + try: + jsoDisc = json.loads(request.form['jsonNew']) + if 'qtes' in jsoDisc: + g.db.query(models.Qte).filter(models.Qte.disc_id == id).delete() + for jsoQte in jsoDisc['qtes']: + qte = models.fromJso(jsoQte, models.Qte) + qte.disc_id = id + g.db.add(qte) + g.db.commit() + else: + raise Exception("Invalid json") + except: + g.db.rollback() + flask.flash("Could not parse json") return render_disc(id, urlPostQte=flask.url_for('edit_qte', id=id, _external=True), csrf=create_session(id).guid) @app.route('/disc//qte/', methods=['POST']) diff --git a/static/style.css b/static/style.css index 7a47324..c7e14b9 100644 --- a/static/style.css +++ b/static/style.css @@ -3,6 +3,7 @@ a, h1, h2 { color: #377BA8; } h1, h2 { font-family: 'Georgia', serif; margin: 0; } h1 { border-bottom: 2px solid #eee; } h2 { font-size: 1.2em; } +textarea { width: 100%;} .page { margin: 2em auto; width: 800px; border: 5px solid #ccc; padding: 0.8em; background: white; } diff --git a/templates/disc.html b/templates/disc.html index bd4000d..cc0737a 100644 --- a/templates/disc.html +++ b/templates/disc.html @@ -41,4 +41,12 @@ src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />

+{% if 'urlPostQte' in flashvars %} +
+ + +
+{% endif %} {% endblock %} \ No newline at end of file