def edit_answer(question_id, answer_id): data_manager.get_question_by_id(question_id) if request.method == 'GET': answer = data_manager.get_answer_by_id(answer_id) return render_template('edit_answer.html', answer=answer) data_manager.edit_answer(answer_id, request.form['message']) return redirect('/')
def question_by_id(question_id): answer = data_manager.get_answers(question_id) question = data_manager.get_question_by_id(question_id) return render_template('question_id.html', question=question, answer=answer, question_id=question_id)
def add_new_comment_to_answer(answer_id: int): question_id = data_manager.get_question_id_by_answer_id(answer_id) question_id = question_id[0].get('id') user_name = data_manager.get_answers_for_questions(question_id) answer_data = data_manager.get_answer_by_id(answer_id) question_data = data_manager.get_question_by_id(question_id) answer_comment = data_manager.get_comments_for_answer(answer_id) if request.method == 'POST': if 'username' in session: username = session['username'] user_id = data_manager.get_user_id_by_name(username) site_input = [ answer_id, request.form['comment'], 'answer', user_id[0].get('id') ] data_manager.add_comment(site_input) else: site_input = [answer_id, request.form['comment'], 'answer', None] data_manager.add_comment(site_input) return redirect( url_for('add_new_comment_to_answer', answer_id=answer_id)) return render_template('add_answer_comment.html', answer_data=answer_data, answer_comment=answer_comment, question_id=question_id, question_data=question_data, user_name=user_name)
def manage_questions(question_id): if request.args.getlist('addinganswer'): addinganswer = True else: addinganswer = False current_question = data_manager.get_question_by_id(question_id) answers_to_question = data_manager.get_answers_by_question_id(question_id) reputation = data_manager.get_reputation(current_question['user_name']) current_question['reputation'] = reputation['reputation'] comments = data_manager.find_comments(question_id) if 'user' in session: question_vote = data_manager.check_if_user_voted_on_question( session['user'], question_id) else: question_vote = [] return render_template("question-child.html", question_id=int(question_id), comments=comments, question=current_question, answers=answers_to_question, addinganswer=addinganswer, question_headers=QUESTION_HEADERS, answer_headers=ANSWER_HEADERS, question_vote=question_vote)
def route_question_detail(id): try: question = data_manager.get_question_by_id(id) answers = data_manager.get_answers_by_question_id(id) return render_template('qd.html', question=question, id=id, answers=answers) except ValueError: return redirect('/')
def show_question(question_id, is_new_answer=False, is_new_comment=False, answer_to_edit=False, answer_to_comment=False, show_modal=False, comment_to_edit=None): question = data_manager.get_question_by_id(question_id) answers_for_question = data_manager.get_answers_for_question(question_id) comments_for_question = data_manager.get_comments(question_id) comments_for_answers = data_manager.get_comments_for_answers(question_id) tags_for_question = data_manager.get_tags_for_question(question_id) tags_wo_question = data_manager.get_tags_wo_question(question_id) return render_template('maintain-question.html', question=question, answers_for_question=answers_for_question, is_new_answer=is_new_answer, comments_for_question=comments_for_question, comments_for_answers=comments_for_answers, is_new_comment=is_new_comment, answer_to_edit=answer_to_edit, answer_to_comment=answer_to_comment, comment_to_edit=comment_to_edit, tags_for_question=tags_for_question, tags_wo_question=tags_wo_question, show_modal=show_modal)
def route_answer(question_id): return render_template( 'post_answer.html', question_id=question_id, question=data_manager.get_question_by_id(question_id), req_url=url_for('display.route_display', question_id=question_id), answers={})
def route_edit_answer(answer_id): question_id = data_manager.get_question_id_by_answer_id(answer_id) answer = data_manager.get_answer_by_id(answer_id) if request.method == 'POST': image = '' if 'file' not in request.files: flash('No file part') return redirect(request.url) file = request.files['file'] # if user does not select file, browser also # submit a empty part without filename if file.filename == '': flash('No selected file') return redirect(request.url) if file and allowed_file(file.filename): filename = secure_filename(file.filename) file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) image = filename values = [answer_id, request.form['message'], image] data_manager.update_answer(values) return redirect(f'/question/{question_id}') else: question = data_manager.get_question_by_id(question_id) return render_template('answer.html', id=answer_id, question=question, answer=answer)
def route_add_comment(what, id_): if request.method == 'GET': question = None answer = None if what == 'question': question = data_manager.get_question_by_id(id_) elif what == 'answer': answer = data_manager.get_answer_by_id(id_) return render_template('comment.html', question=question, answer=answer, comment=None) elif request.method == 'POST': answer_id = None question_id = None if what == 'question': question_id = id_ elif what == 'answer': answer_id = id_ values = [ question_id, answer_id, request.form['message'], util.get_timestamp(), '0' ] data_manager.add_comment(values) if answer_id: question_id = data_manager.get_question_id_by_answer_id(answer_id) return redirect(f'/question/{question_id}')
def route_edit_comment(comment_id): comment = data_manager.get_comment_by_id(comment_id) if request.method == 'GET': question = None answer = None if comment['question_id']: question = data_manager.get_question_by_id(comment['question_id']) else: answer = data_manager.get_answer_by_id(comment['answer_id']) return render_template('comment.html', question=question, answer=answer, comment=comment) elif request.method == 'POST': values = [ comment_id, request.form['message'], comment['edited_count'] + 1 ] data_manager.update_comment(values) if comment['question_id']: question_id = comment['question_id'] else: answer = data_manager.get_answer_by_id(comment['answer_id']) question_id = answer['question_id'] return redirect(f'/question/{question_id}')
def route_add_answer(question_id): if request.method == 'GET': question = data_manager.get_question_by_id(question_id) answers = data_manager.get_answers_by_question_id(question_id) return render_template('answer.html', question=question, answers=answers) elif request.method == 'POST': if 'file' not in request.files: flash('No file part') return redirect(request.url) file = request.files['file'] # if user does not select file, browser also # submit a empty part without filename if file.filename == '': flash('No selected file') return redirect(request.url) if file and allowed_file(file.filename): filename = secure_filename(file.filename) file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) values = [ util.get_timestamp(), '0', question_id, request.form['message'], filename ] data_manager.add_answer(values) return redirect(f'/question/{question_id}')
def downvote_question(): question_id = request.form["question_id"] data_manager.add_question_downvote(question_id) question = data_manager.get_question_by_id(question_id) question_author = data_manager.get_user_email_by_id(question['user_id']) data_manager.minus_reputation_2(question_author) url_to_voted_question = url_for("get_question_details", question_id=question_id) return redirect(url_to_voted_question)
def show_specific_question(question_id: int): question_data = data_manager.get_question_by_id(question_id) question_comment = data_manager.get_comments_for_question(question_id) question_answer = data_manager.get_answers_for_questions(question_id) return render_template('question_details.html', question_comment=question_comment, question_answer=question_answer, question_data=question_data)
def route_search_answer(question_id): pattern = request.form["search_input"] question = data_manager.get_question_by_id(question_id) answers = data_manager.search_answer(pattern) return render_template('display_question.html', question=question, answers=answers, question_id=question_id)
def display_question_by_id(question_id): question_by_id = data_manager.get_question_by_id(question_id) answers_by_question_id = data_manager.get_answer_by_question_id( question_id) return render_template('question_id_answer.html', question_by_id=question_by_id, answers_by_question_id=answers_by_question_id)
def edit_answer(answer_id): answer_to_edit = data_manager.get_answer_by_id(answer_id) dict_of_question = data_manager.get_question_by_id(answer_to_edit["question_id"]) user_action = "Edit" form_action = url_for("save_edited_answer") return render_template('new_answer.html', dict_of_question=dict_of_question, dict_of_answer=answer_to_edit, user_action=user_action, form_action=form_action)
def edit_question(question_id): if request.method == 'GET': question = data_manager.get_question_by_id(question_id) return render_template('edit_question.html', question=question, question_id=question_id) data_manager.edit_question(request.form['title'], request.form['message'], question_id) return redirect('/')
def route_edit_question(question_id=None): if request.method == 'POST': data_manager.edit_question(request.form['title'], request.form['message'], question_id) return redirect( url_for('get_question_and_answer_and_comments_by_id', question_id=question_id)) datas = data_manager.get_question_by_id(question_id) return render_template('/edit_question.html', datas=datas)
def display_question(question_id): questions = data_manager.get_question_by_id(question_id) answers = data_manager.get_answer_by_id(question_id) comments = data_manager.get_comments(question_id) tag = data_manager.get_tagz(question_id) user_id = session.get('id', None) question_user_id = [question['user_id'] for question in questions] return render_template("display_question.html", questions=questions, answers=answers, question_id=question_id, comments=comments, tag=tag, user_id=user_id, question_user_id=question_user_id)
def route_post(question_id): question = data_manager.get_question_by_id(question_id) if request.method == 'POST': saved_answer = request.form['answer'] submission_time = data_manager.get_time() data_manager.save_answers_to_question(saved_answer, question_id, submission_time) return redirect(f"/question/{question_id}") return render_template('answer.html', question=question)
def question_details(question_id): question = data_manager.get_question_by_id(question_id) data_manager.update_view_number(question.get('view_number'), question_id) return render_template('question-details.html', question=question, question_id=question_id, answers=data_manager.get_all_answers(), comments=data_manager.get_all_comments(), login=get_user_id())
def route_question(question_id): data_manager.update_question_view_number(question_id) question = data_manager.get_question_by_id(question_id) answers = data_manager.get_answers_by_question_id(question_id) comments = data_manager.get_comments() return render_template('question.html', question=question, answers=answers, comments=comments)
def new_answer(question_id): if "user" not in session: return redirect(url_for("index")) question_to_answer = data_manager.get_question_by_id(question_id) question_author = data_manager.get_user_email_by_id(question_to_answer["user_id"]) user_action = "Add new" form_action = url_for("post_answer", question_id=question_to_answer["id"]) return render_template("new_answer.html", dict_of_question=question_to_answer, dict_of_answer=None, user_action=user_action, form_action=form_action, question_author=question_author)
def get_question_details(question_id): data_manager.add_question_view(question_id) question = data_manager.get_question_by_id(question_id) question_author = data_manager.get_user_data_by_id(question["user_id"]) answers_for_question = data_manager.get_answers_by_question_id(question_id) comments_for_question = data_manager.get_comments_by_question_id(question_id) comments_for_answer = data_manager.get_answer_comments_to_question(question_id) return render_template("question_page.html", dict_of_question=question, question_author_data=question_author, comments_for_question=comments_for_question, answers_to_list=answers_for_question, comments_for_answer=comments_for_answer)
def voting(question_id): user_id = data_manager.get_user_id_by_question(question_id) question = data_manager.get_question_by_id(question_id) if 'vote-up' in str(request.url_rule): data_manager.voting(question_id, 1) data_manager.update_reputation(user_id['user_id'], 5) elif 'vote-down' in str(request.url_rule): data_manager.voting(question_id, -1) data_manager.update_reputation(user_id['user_id'], -2) return redirect(url_for("display_question", question_id=question['id']))
def edit_question(question_id): if request.method == "POST": question_id = question_id title = request.form["title"] message = request.form["message"] image = request.form["image"] data_manager.edit_question(question_id, title, message, image) return redirect("/list/question/" + str(question_id)) question = data_manager.get_question_by_id(question_id) return render_template("edit_question.html", question=question, question_id=question_id)
def edit_question(question_id): question = data_manager.get_question_by_id(question_id) if request.method == 'GET': return render_template('edit_question.html', question=question) title = request.form['title'], message = request.form['message'] data_manager.edit_question(title=title, message=message, question_id=question_id) return redirect(url_for('detail_question', question_id=question_id))
def add_answer(question_id): question = data_manager.get_question_by_id(question_id) if request.method == 'GET': return render_template('add_answer.html', question=question) message = request.form.get('message', '') dt = datetime.now() for dict in session['user_id']: for key, value in dict.items(): data_manager.add_answer(question_id, message, dt, value) return redirect('/')
def detail_question(question_id): if request.args.get('count_view'): data_manager.increase_view_number(question_id) return redirect(url_for("detail_question", question_id=question_id)) question = data_manager.get_question_by_id(question_id) answers = data_manager.get_answers_by_question_id(question_id) tags = data_manager.get_tags_by_question_id(question_id) return render_template('detailed_question.html', question=question, tags=tags, answers=answers)
def edit(question_id): question = data_manager.get_question_by_id(question_id) if request.method == 'GET': message = question['message'] title = question['title'] return render_template('edit.html', message=message, title=title) elif request.method == 'POST': title = request.form.get('title') message = request.form.get('message') data_manager.update_question(question_id, message, title) return redirect(url_for('get_question_list'))