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'))
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'))
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)
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)
def get_articles(): """ JSON route - return all articles """ _, articles = base_query(db_session) return jsonify([p.serialize for p in articles])
def get_topics(): """ JSON route - return all topics """ topics, _ = base_query(db_session) return jsonify([p.serialize for p in topics])