aboutsummaryrefslogtreecommitdiffstats
path: root/famille.py
diff options
context:
space:
mode:
Diffstat (limited to 'famille.py')
-rw-r--r--famille.py39
1 files changed, 23 insertions, 16 deletions
diff --git a/famille.py b/famille.py
index d657941..3ba4919 100644
--- a/famille.py
+++ b/famille.py
@@ -43,7 +43,7 @@ def format_date(date_object, formatstr=u"%a %d %b %Y à %Hh%M"):
if not date_object:
return ""
formatstr = formatstr.encode("utf8")
- return date_object.replace(tzinfo=timezone('utc')).\
+ return date_object.replace(tzinfo=timezone('utc')). \
astimezone(timezone(session['timezone'])).strftime(formatstr).decode("utf8")
@app.template_filter('format_ago')
@@ -51,8 +51,8 @@ def format_ago(date_object, formatstr):
if not date_object:
return ""
formatstr = formatstr.encode("utf8")
- readable = date_object.replace(tzinfo=timezone('utc')).\
- astimezone(timezone(session['timezone'])).strftime(formatstr)
+ readable = date_object.replace(tzinfo=timezone('utc')). \
+ astimezone(timezone(session['timezone'])).strftime(formatstr)
iso_format = date_object.strftime('%Y-%m-%dT%H:%M:%SZ')
return '<span class=timeago title="{0}">{1}</span>'.\
format(iso_format, readable).decode("utf8")
@@ -74,7 +74,8 @@ def pluralize(word, count, plural=None):
return "{0} {1}s".format(count, word)
def query_db(stmt, one=False):
- cur = db_session.execute(stmt)
+ db = db_session()
+ cur = db.execute(stmt)
rv = cur.fetchone() if one else cur.fetchall()
cur.close()
return rv
@@ -104,10 +105,11 @@ def list_news():
comments = Table('comments', metadata, autoload=True)
stmt = select([news, users.c.user_name, func.count(comments.c.id).label('ncomments')]).\
- select_from(news.outerjoin(users).outerjoin(comments, comments.c.news_id==news.c.id)).\
- group_by(news.c.id).order_by(news.c.date.desc())
+ select_from(news.outerjoin(users).outerjoin(comments, comments.c.news_id==news.c.id)).\
+ group_by(news.c.id).order_by(news.c.date.desc())
list_news = query_db(stmt)
- stmt = select([comments]).select_from(comments.outerjoin(users)).order_by(comments.c.date.desc()).limit(5)
+ stmt = select([comments]).select_from(comments.outerjoin(users)).\
+ order_by(comments.c.date.desc()).limit(5)
list_comments = query_db(stmt)
stmt = select([users]).order_by(users.c.last_seen.desc())
list_users = query_db(stmt)
@@ -126,12 +128,13 @@ def add_news():
news = Table('news', metadata, autoload=True)
comments = Table('comments', metadata, autoload=True)
ins = news.insert().values(title = request.form['title'],
- content = request.form['content'],
+ content = content,
content_cache = content_cache,
user_id = session['user_id'])
- result = db_session.execute(ins)
+ db = db_session()
+ result = db.execute(ins)
news_id = result.inserted_primary_key[0]
- db_session.commit()
+ db.commit()
# send email
#emails = query_db(db, "SELECT email from users where notify=1")
emails = None
@@ -162,26 +165,30 @@ def show_news(news_id):
users = Table('users', metadata, autoload=True)
news = Table('news', metadata, autoload=True)
comments = Table('comments', metadata, autoload=True)
- stmt = select(['*']).select_from(news.outerjoin(users)).where(news.c.id == news_id)
+ stmt = select([news,users.c.user_name]).select_from(news.outerjoin(users)).\
+ where(news.c.id == news_id)
news_content = query_db(stmt, True)
if request.method == 'GET':
- stmt = select(['*']).select_from(comments.outerjoin(users)).\
+ stmt = select([comments, users.c.user_name]).\
+ select_from(comments.outerjoin(users)).\
where(comments.c.news_id == news_id).order_by(comments.c.date)
list_comments = query_db(stmt)
return render_template("news/show.html", news=news_content, comments=list_comments)
elif request.method == 'POST':
+ content = request.form['content']
ins = comments.insert().values(user_id=session['user_id'],
- content=request.form['content'],
+ content=content,
news_id=news_id,
content_cache = rstify(content))
- db_session.execute(ins)
- db_session.commit()
+ db = db_session()
+ db.execute(ins)
+ 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):
- db = get_db()
+ db = db_session()
if request.method == 'GET':
news = query_db(db, "SELECT * from news WHERE news.id = ?",
(news_id,), True)