예제 #1
0
def edit_article(article_id):
    """ edit article """
    article = db_session.query(Article).filter_by(id=article_id).one()

    if not authenticated():
        return redirect(url_for('login'))
    if not can_modify(article):
        return redirect(url_for('index'))

    if request.method == 'GET':
        topics, _articles = base_query(db_session)

        return render_template('article_form.html',
                               is_authenticated=authenticated,
                               topics=topics,
                               article=article,
                               action='edit')
    else:
        form = dict(request.form)

        article.title = form['article_title'][0]
        article.url = form['article_url'][0]
        article.description = form['article_description'][0]
        article.topic_id = form['article_topic_id'][0]

        db_session.add(article)
        db_session.commit()

        return redirect(url_for('index'))
예제 #2
0
def new_article():
    """ add new article """
    if not authenticated():
        return redirect(url_for('login'))

    if request.method == 'GET':
        topics, _articles = base_query(db_session)

        return render_template('article_form.html',
                               is_authenticated=authenticated,
                               topics=topics,
                               article=None,
                               action='new')
    else:
        form = dict(request.form)

        article = Article(title=form['article_title'][0],
                          url=form['article_url'][0],
                          date_added=date.today(),
                          description=form['article_description'][0],
                          topic_id=form['article_topic_id'][0],
                          adder_id=session['user_id'])

        db_session.add(article)
        db_session.commit()

        return redirect(url_for('index'))
예제 #3
0
def view_topics(topic_id):
    """ show filtered articles """
    topics, _articles = base_query(db_session)
    articles = db_session.query(Article).filter_by(topic_id=topic_id)
    articles_reversed = articles[::-1]

    return render_template('articles.html',
                           can_modify=can_modify,
                           is_authenticated=authenticated,
                           topics=topics,
                           articles=articles_reversed,
                           active_topic=topic_id)
예제 #4
0
def index():
    """ index page """
    database_seed(db_session)

    topics, articles = base_query(db_session)
    articles_reversed = articles[::-1]

    return render_template('articles.html',
                           can_modify=can_modify,
                           is_authenticated=authenticated,
                           topics=topics,
                           articles=articles_reversed,
                           active_topic=None)
예제 #5
0
def get_articles():
    """ JSON route - return all articles """
    _, articles = base_query(db_session)
    return jsonify([p.serialize for p in articles])
예제 #6
0
def get_topics():
    """ JSON route - return all topics """
    topics, _ = base_query(db_session)
    return jsonify([p.serialize for p in topics])