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 edit_answer(answer_id): if request.method == "GET": answer = data_manager.get_answer_by_id(answer_id) return render_template('edit_answer.html', answer=answer) question_id = data_manager.get_answer_by_id(answer_id)['question_id'] edited_answer_data = { 'message': request.form.get('message'), 'image': request.form.get('image') } data_manager.edit_answer(answer_id, edited_answer_data) return redirect(url_for('display_question', question_id=question_id))
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 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 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 edit_answer(id): if request.method == 'GET': answer = data_manager.get_answer_by_id(id) return render_template('new_answer.html', answer=answer, edit=True) else: answer = request.form.to_dict() data_manager.update_answer(answer) return redirect('question/{}'.format(answer['question_id']))
def answer_page(question_id, answer_id): answers = data_manager.get_answer_by_id(question_id) all_comment = data_manager.get_comments(answer_id) comments = [] for comment in all_comment: if comment['answer_id'] == answer_id: comments.append(comment) return render_template("answer.html", question_id=question_id, answer_id=answer_id, answers=answers, comments=comments)
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_answer(answer_id): answer = data_manager.get_answer_by_id(answer_id) if request.method == 'GET': return render_template('edit_answer.html', answer=answer) answer['message'] = request.form['message'] data_manager.edit_answer(answer) return redirect( url_for('detail_question', question_id=answer['question_id']))
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 downvote_answer(): answer_id = request.form["answer_id"] data_manager.add_answer_downvote(answer_id) answer = data_manager.get_answer_by_id(answer_id) answer_author = data_manager.get_user_email_by_id(answer['user_id']) data_manager.minus_reputation_2(answer_author) question_id = data_manager.get_question_id_for_answer(answer_id) url_to_question = url_for("get_question_details", question_id=question_id) return redirect(url_to_question)
def route_remove_comment(comment_id): comment = data_manager.get_comment_by_id(comment_id) 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'] data_manager.remove_record('comment', comment_id) return redirect(f'/question/{question_id}')
def delete_comment(comment_id): comment = data_manager.get_table_by_id(comment_id, "comment") question_id = comment['question_id'] if question_id is None: question_id = data_manager.get_answer_by_id(comment['answer_id'])['question_id'] data_manager.delete_from_table_by_id(comment_id, "comment") return redirect('/question/' + str(question_id))
def update_answer(answer_id): answer = data_manager.get_answer_by_id(answer_id) if request.method == 'GET': return render_template('add_answer.html', answer=answer.get('message'), answer_id=answer.get('id')) elif request.method == 'POST': data_manager.update_answer(request.form.get('message'), answer_id) return redirect( url_for('question_details', question_id=answer.get('question_id')))
def add_answer(question_id, answer_id): question_id = int(question_id) answer_id = int(answer_id) if request.method == 'POST': answer = request.form['answer'] if answer_id == -1: data_manager.save_answer(answer, question_id) else: data_manager.update_answer(answer, answer_id) return redirect(url_for('route_question', question_id=question_id)) try: answer = data_manager.get_answer_by_id(answer_id)[0] except IndexError: answer = data_manager.get_answer_by_id(answer_id) return render_template('add_answer.html', answer=answer, question_id=question_id, answer_id=answer_id)
def vote(id, direction, question): if question == 'yes': reputation_id_question = data_manager.get_user_id_question(id) data_manager.voting(id, True, direction, reputation_id_question) return redirect('/question/{}'.format(id)) else: reputation_id_answer = data_manager.get_user_id_answer(id) data_manager.voting(id, False, direction, reputation_id_answer) answer = data_manager.get_answer_by_id(id) return redirect('/question/{}'.format(answer[0]['question_id']))
def route_expand_question(question_id): question = dm.get_question_by_id(question_id)[0] answers_by_question_id = dm.get_answer_by_id(question_id) comments_to_question = dm.get_all_comments_to_a_question(question_id) question["view_number"] = question["view_number"] + 1 dm.update_view_count("question", question) return render_template('question.html', question=question, answers=answers_by_question_id, question_id=question_id, comments=comments_to_question)
def add_comment_to_answer(answer_id=None, question_id=None): if request.method == 'POST': data_manager.add_comment( create_new_comment_data(answer_id, question_id)) return redirect( url_for('question_details', question_id=request.form.get('redirect_id'))) elif request.method == 'GET': answer = data_manager.get_answer_by_id(answer_id) return render_template('add_answer_comment.html', answer_id=answer_id, redirect_id=answer.get('question_id'))
def edit_answer(answer_id: int): answer_data = data_manager.get_answer_by_id(answer_id) question_id = data_manager.get_question_id_by_answer_id(answer_id) question_id = question_id[0].get('id') if request.method == 'POST': site_input = [request.form['new-answer']] site_input.append(answer_id) data_manager.edit_answer(site_input) return redirect( url_for('show_specific_question', question_id=question_id)) return render_template('edit_answer.html', answer_data=answer_data, question_id=question_id)
def edit_answer(answer_id): if authenticate_user(): answer = data_manager.get_answer_by_id(answer_id) if request.method == "GET": return show_question(answer['question_id'], answer_to_edit=answer_id) elif request.method == "POST": data = request.form.to_dict() data['id'] = answer_id data_manager.update_answer(data) return redirect( url_for("show_question", question_id=answer['question_id'])) return redirect(url_for('login'))
def edit_comment(comment_id): comment = data_manager.get_table_by_id(comment_id, "comment") question_id = comment['question_id'] if question_id is None: question_id = data_manager.get_answer_by_id(comment['answer_id'])['question_id'] if request.method == 'POST': my_new_data = request.form.to_dict() data_manager.edit_comment(my_new_data) return redirect('/question/' + str(question_id)) return render_template('edit_comment.html', comment=comment, question_id=str(question_id))
def route_counter_answer(question_id, response_id, direction): answers = data_manager.get_answer_by_id(response_id) votes = int(answers['vote_number']) votes += 1 if direction == 'up-vote' else -1 updated_votes = { 'id': answers['id'], "submission_time": answers["submission_time"], 'vote_number': votes, 'question_id': answers['question_id'], 'message': answers['message'], 'image': answers['image'] } data_manager.update_answer(updated_votes) return redirect('/display/' + question_id)
def route_edit_answer(question_id, answer_id): if request.method == 'GET': answer = data_manager.get_answer_by_id(answer_id) question = data_manager.get_question_by_id(question_id) req_url = url_for('display.route_edit_answer', question_id=question_id, answer_id=answer_id) return render_template('post_answer.html', answers=answer, question=question, req_url=req_url) else: answer = data_manager.get_answer_by_id(answer_id) updated_votes = { 'id': answer['id'], "submission_time": answer["submission_time"], 'vote_number': answer['vote_number'], 'question_id': answer['question_id'], 'message': request.form['answer'], 'image': answer['image'] } data_manager.update_answer(updated_votes) return redirect('/display/' + question_id)
def add_new_comment_to_answer(answer_id): if authenticate_user(): question_id = data_manager.get_answer_by_id(answer_id)['question_id'] comments_for_answers = data_manager.get_comments_for_answers( question_id) if request.method == "GET": return show_question(question_id, answer_to_comment=answer_id) elif request.method == "POST": new_comment = request.form.to_dict() new_comment["question_id"] = question_id new_comment["answer_id"] = answer_id new_comment['user_id'] = session['user_id'] data_manager.add_comment(new_comment) return redirect(url_for("show_question", question_id=question_id)) return redirect(url_for('login'))
def edit_answer(id, answer_id): if request.method == 'POST': updated_answer = request.form.get('updated_answer') data_manager.update_answer_by_id(updated_answer, id) return redirect(url_for('display_question', id=id)) if request.method == 'GET': id = int(id) message = data_manager.get_answer_by_id(answer_id) return render_template('edit_question_answer.html', id=id, answer_id=answer_id, message=message)
def edit_answer(answer_id): if request.method == "GET": full_answer = data_manager.get_answer_by_id(answer_id) message = full_answer[0]['message'] time = datetime.now() return render_template('edit_answer.html', message=message, answer_id=answer_id) if request.method == "POST": answer_data = request.form.to_dict() message = answer_data['message'] question_id_in_list = data_manager.get_question_id(answer_id) question_id = question_id_in_list[0]['question_id'] data_manager.update_answer_by_id(answer_id, message, datetime.now()) return redirect(url_for('display_question', question_id=question_id))
def add_comment_to_answer(answer_id, question_id): if request.method == "GET": answer = data_manager.get_answer_by_id(answer_id) question = data_manager.get_question_by_id(question_id) return render_template('add_comment_to_answer.html', answer=answer, question=question) new_comment_to_answer = { 'message': request.form.get('comment'), 'type': 'answer', 'answer_id': answer_id } data_manager.write_to_comments(new_comment_to_answer) global latest_opened_question_id return redirect( url_for('display_question', question_id=latest_opened_question_id))
def edit_comment(comment_id): if request.method == "GET": comment = data_manager.get_comment_by_id(comment_id) return render_template('edit_comment.html', comment=comment) comment = data_manager.get_comment_by_id(comment_id) if comment['question_id']: question_id = comment['question_id'] else: question_id = data_manager.get_answer_by_id( comment['answer_id'])['question_id'] edited_comment_data = { 'message': request.form.get('message'), 'edited_count': comment['edited_count'] + 1 if type(comment['edited_count']) is int else 1 } data_manager.edit_comment(comment_id, edited_comment_data) return redirect(url_for('display_question', question_id=question_id))
def edit_answer_get(question_id, answer_id): user_id = data_manager.get_user_id_by_activity('answer', answer_id) question = data_manager.get_question_by_id(question_id) if session.get(FORM_USERNAME) and session[SESSION_ID] == user_id: answer = data_manager.get_answer_by_id(answer_id) answer_images = util.get_answers_images([answer]) if answer is None: return redirect( url_for("display_question", question_id=question_id)) else: response = make_response( render_template("add_update_answer.html", username=SESSION_USERNAME, question=question, answer=answer, answer_images=answer_images)) return response else: flash("Update option is available only for the author!", "warning") return redirect(url_for('display_question', question_id=question_id))