diff options
| -rw-r--r-- | famille.py | 35 | ||||
| -rw-r--r-- | schema.sql | 2 | ||||
| -rw-r--r-- | templates/news/add.html | 8 | ||||
| -rw-r--r-- | templates/news/list.html | 2 | ||||
| -rw-r--r-- | templates/news/show.html | 4 |
5 files changed, 39 insertions, 12 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)) @@ -11,6 +11,7 @@ create table news ( title string not null, date string default (strftime('%Y-%m-%dT%H:%M:%S','now')), content string not null, + content_cache string not null, user_id integer, FOREIGN KEY(user_id) REFERENCES users(id) ); @@ -20,6 +21,7 @@ create table comments ( id integer primary key autoincrement, date string default (strftime('%Y-%m-%dT%H:%M:%S','now')), content string not null, + content_cache string not null, user_id integer, news_id integer, FOREIGN KEY(user_id) REFERENCES users(id), diff --git a/templates/news/add.html b/templates/news/add.html index c2bc018..53fb682 100644 --- a/templates/news/add.html +++ b/templates/news/add.html @@ -1,9 +1,13 @@ {% extends 'layout.html' %} {% block content %} +{% if news %} +<form action="{{ url_for('edit_news', news_id=news.id)}}" method="post"> +{% else %} <form action="{{ url_for('add_news')}}" method="post"> - <input type=text size=80 name=title /><br/> - <textarea name=content rows=20 cols=80></textarea> +{% endif %} + <input type=text size=80 name=title value="{% if news %}{{news.title}}{% endif %}"/><br/> + <textarea name=content rows=20 cols=80>{% if news %}{{news.content}}{% endif %}</textarea> <input type="submit" value="Submit" /> </form> {% endblock %} diff --git a/templates/news/list.html b/templates/news/list.html index ddbe1ab..a5a367a 100644 --- a/templates/news/list.html +++ b/templates/news/list.html @@ -11,7 +11,7 @@ </div> <div class="news_content"> - {{ news.content|safe }} + {{ news.content_cache|safe }} </div> {% endfor %} </div> diff --git a/templates/news/show.html b/templates/news/show.html index 411cdfc..7e03b5d 100644 --- a/templates/news/show.html +++ b/templates/news/show.html @@ -13,7 +13,7 @@ <h1>{{news.title}}</h1> <div class="news_content"> -{{news.content|safe}} +{{news.content_cache|safe}} </div> <hr/> @@ -23,7 +23,7 @@ Posté par <a href="">{{comment.name}}</a> le {{comment.date|format_date}} </h3> <div class="comment_content"/> -{{comment.content|safe}} +{{comment.content_cache|safe}} </div> {% endfor %} |
