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'))
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)
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'))
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)
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))
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))
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)
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)
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')
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)