Esempio n. 1
0
def display_post(post_id):
    result = database.get_post(post_id)
    if result[0]:
        post = dict(id=result[1][0], title=result[1][1],
                    content=result[1][2], author=result[1][3],
                    posted=format_dt(result[1][4]), parent=result[1][5],
                    locked=result[1][6],
                    children=get_children(result[1][0],config.NESTING))
        return render_user_page('display_post.html',
                                post=post)
    else:
        abort(404)
Esempio n. 2
0
def edit_post(post_id):
    if user.is_logged_in():
        result = database.get_post(post_id)
        if not result[0]:
            return render_user_page('edit_post.html', error=result[1])
        post = dict(id=result[1][0], title=result[1][1],
                    content=result[1][2], author=result[1][3],
                    posted=format_dt(result[1][4]), locked=result[1][6],
                    pinned=result[1][7])
        if post['locked'] and not user.is_admin():
            return redirect(url_for('display_news'))
        if (user.get_name() == post['author'] or user.is_admin()):
            if request.method == 'POST':
                if user.is_admin():
                    locked = request.form.get('locked', 0)
                    pinned = request.form.get('pinned', 0)
                else:
                    locked = 0
                    pinned = 0
                result = database.update_post(post_id,
                                              request.form['title'],
                                              request.form['content'],
                                              locked,
                                              pinned)
                if result[0]:
                    flash('Post Updated.')
                    redir = request.args.get('redirect', post_id)
                    return redirect(url_for('display_post',
                                            post_id=redir))
                else:
                    return render_user_page('edit_post.html',
                                            error=result[1])
            else:
                return render_user_page('edit_post.html', post=post)
    else:
        return redirect(url_for('display_news'))