diff options
| author | Thibaut Horel <thibaut.horel@gmail.com> | 2012-11-08 01:34:02 +0100 |
|---|---|---|
| committer | Thibaut Horel <thibaut.horel@gmail.com> | 2012-11-08 01:34:02 +0100 |
| commit | 101f820153cdb047d13166672d3f46cfef31677d (patch) | |
| tree | cf1806735201f39a1b6b88d179ed16ce1b97ea4f /famille.py | |
| parent | 9ab593bcd52fcbe87f1be463ca5f09a757d1128f (diff) | |
| download | famille-flask-101f820153cdb047d13166672d3f46cfef31677d.tar.gz | |
Keep both rst and html rendered content in the database. News edit feature
Diffstat (limited to 'famille.py')
| -rw-r--r-- | famille.py | 35 |
1 files changed, 28 insertions, 7 deletions
@@ -61,11 +61,13 @@ def list_news(): @login_required def add_news(): if request.method == 'POST': - content = rstify(request.form['content']) - cur = g.db.execute("INSERT INTO news ('title', 'content', 'user_id') " - "VALUES (?, ?, ?)", + content = request.form['content'] + content_cache = rstify(content) + cur = g.db.execute("INSERT INTO news " + "('title', 'content', 'user_id', 'content_cache') " + "VALUES (?, ?, ?, ?)", (request.form['title'], content, - session['user_id'])) + session['user_id'], content_cache)) news_id = cur.lastrowid g.db.commit() return redirect(url_for('show_news', news_id=news_id)) @@ -84,9 +86,28 @@ def show_news(news_id): return render_template("news/show.html", news=news, comments=comments) elif request.method == 'POST': user_id = session['user_id'] - content = rstify(request.form['content']) - g.db.execute("INSERT INTO comments ('user_id', 'content', 'news_id') " - "VALUES (?, ?, ?)", (user_id, content, news_id)) + content = request.form['content'] + content_cache = rstify(content) + g.db.execute("INSERT INTO comments " + "('user_id', 'content', 'news_id', 'content_cache') " + "VALUES (?, ?, ?, ?)", (user_id, content, news_id, content_cache)) + g.db.commit() + return redirect(url_for('show_news', news_id=news_id)) + +@app.route('/news/<int:news_id>/edit', methods=['GET', 'POST']) +@login_required +def edit_news(news_id): + if request.method == 'GET': + news = query_db("SELECT * from news WHERE news.id = ?", (news_id,), True) + if news["user_id"] == session['user_id']: + return render_template('news/add.html', news=news) + elif request.method == 'POST': + title = request.form['title'] + content = request.form['content'] + content_cache = rstify(content) + g.db.execute("UPDATE news SET 'title'=?, 'content'=?, 'content_cache'=? " + "WHERE news.id =?", + (title, content, content_cache, news_id)) g.db.commit() return redirect(url_for('show_news', news_id=news_id)) |
