Example #1
0
def answer_incorrect(question_id):
    current_username = session.get('username')

    if current_username:
        current_user = User(current_username)
        current_user.answer_incorrect(question_id)

    return redirect(url_for('index'))
Example #2
0
def feedback(primary_label, node_id, user_feedback):
    current_username = session.get('username')

    if current_username:
        current_user = User(current_username)
        current_user.give_feedback(primary_label, node_id, user_feedback)

    return redirect(request.referrer)
Example #3
0
def delete_question(question_id):
    current_username = session.get('username')

    if current_username:
        current_user = User(current_username)
        current_user.delete_question(question_id)

    return redirect(url_for('index'))
Example #4
0
def profile(username):
    user = User(username)
    facts = user.get_recent_facts()
    questions = user.get_recent_questions()

    return render_template('profile.html',
                           username=username,
                           facts=facts,
                           questions=questions)
Example #5
0
def view_fact(fact_id):
    current_username = session.get('username')

    if current_username:
        current_user = User(current_username)
        current_user.view_fact(fact_id)

    fact = get_fact_from_id(fact_id)

    return render_template('facts/view_fact.html',
                           fact=fact,
                           related_facts=get_related_facts('Fact', fact_id),
                           related_questions=get_related_questions(
                               'Fact', fact_id))
Example #6
0
def view_question(question_id):
    current_username = session.get('username')

    if current_username:
        current_user = User(current_username)
        current_user.view_question(question_id)

    question = get_question_from_id(question_id)

    return render_template(
        'questions/view_question.html',
        question=question,
        related_facts=get_related_facts('Question', question_id),
        related_questions=get_related_questions('Question', question_id))
Example #7
0
def edit_fact(fact_id):

    fact = get_fact_from_id(fact_id)
    data = fact.data()

    title = data[0]['fact']['title']
    tags = ', '.join(get_fact_tags_from_id(fact_id).data()[0]['tags'])
    text = data[0]['fact']['text'].lstrip()

    if request.method == 'POST':
        title = request.form['title']
        tags = request.form['tags']
        text = request.form['text']

        if not title:
            flash('You must give your fact a title.')
        elif not tags:
            flash('You must give your fact at least one tag.')
        elif not text:
            flash('You must give your fact a text body.')
        else:
            # This is disabled while using Heroku's free tier
            # tags = tags + extract_tags(text)
            User(session['username']).edit_fact(fact_id, title, tags, text)

        return redirect(url_for('index'))

    return render_template('facts/edit_fact.html',
                           fact_id=fact_id,
                           fact=fact,
                           title=title,
                           tags=tags,
                           text=text)
Example #8
0
def answer_question(question_id):
    if request.method == 'POST':
        answer = request.form['answer']

        if not answer:
            flash('You must answer this question')
        else:
            User(session['username']).answer_question(question_id, answer)

    return redirect(request.referrer)
Example #9
0
def add_fact():

    if request.method == 'POST':
        title = request.form['title']
        tags = request.form['tags']
        text = request.form['text']

        if not title:
            flash('You must give your fact a title.')
        elif not tags:
            flash('You must give your fact at least one tag.')
        elif not text:
            flash('You must give your fact a text body.')
        else:
            # This is disabled while using Heroku's free tier
            # tags = tags + extract_tags(text)
            User(session['username']).add_fact(title, tags, text)

        return redirect(url_for('index'))

    return render_template('facts/add_fact.html')
Example #10
0
def edit_question(question_id):
    question = get_question_from_id(question_id)
    data = question.data()

    title = data[0]['question']['title']
    tags = ', '.join(get_question_tags_from_id(question_id).data()[0]['tags'])
    text = data[0]['question']['text'].lstrip()
    answer = data[0]['question']['answer'].lstrip()

    if request.method == 'POST':
        title = request.form['title']
        tags = request.form['tags']
        text = request.form['text']
        answer = request.form['answer']

        if not title:
            flash('You must give your question a title.')
        elif not tags:
            flash('You must give your question at least one tag.')
        elif not text:
            flash('You must give your question a text body.')
        elif not answer:
            flash('You must give your question an answer.')
        else:
            # This is disabled while using Heroku's free tier
            # tags = tags + extract_tags(text)
            User(session['username']).edit_question(question_id, title, tags,
                                                    text, answer)

        return redirect(url_for('index'))

    return render_template('questions/edit_question.html',
                           question_id=question_id,
                           question=question,
                           title=title,
                           tags=tags,
                           text=text,
                           answer=answer)