def route_vote_answer(question_id, answer_id): if 'user_name' in session: up_or_down = request.form data_manager.vote_answer(answer_id, int(up_or_down['up_or_down'])) return redirect('/question/' + question_id) else: return redirect('/')
def vote_answers(vote_method, answer_id): answer = data_manager.get_answer_by_answer_id(answer_id) question_id = answer["question_id"] user_name = session["user"] user = data_manager.get_user_id_by_name(user_name) user.update({"user_name": user_name, "vote_method": vote_method}) if data_manager.check_if_user_voted_on_answer(user_name, answer_id): result = data_manager.check_if_user_voted_on_answer( user_name, answer_id) voted = data_manager.delete_vote_on_answer_from_votes_db( result, vote_method) if voted: data_manager.vote_answer(vote_method, answer_id) author = data_manager.get_author_by_answer_id( answer_id)["user_name"] author_repu = data_manager.get_reputation(author) new_repu = data_manager.annul_calc_reputation( "answer", vote_method, author_repu) data_manager.update_user_reputation(author, new_repu) return redirect(f'/questions/{question_id}') else: author = data_manager.get_author_by_answer_id(answer_id)["user_name"] author_repu = data_manager.get_reputation(author) new_repu = data_manager.calculate_reputation("answer", vote_method, author_repu) data_manager.update_user_reputation(author, new_repu) data_manager.create_vote_on_answer_in_votes_db(answer_id, user) data_manager.vote_answer(vote_method, answer_id) return redirect(url_for("manage_questions", question_id=question_id))
def vote(question_id, answer_id): question_id = int(question_id) answer_id = int(answer_id) if answer_id == -1: votes = data_manager.get_vote_number(question_id) try: votes = votes + 1 except TypeError: votes = 1 data_manager.vote(votes, question_id) return redirect(url_for('route_question', question_id=question_id)) else: votes = data_manager.get_vote_number_answer(question_id, answer_id) try: votes = votes + 1 except TypeError: votes = 1 data_manager.vote_answer(votes, question_id, answer_id) return redirect(url_for('route_question', question_id=question_id))
def route_answer_vote_down(answer_id): global update_views update_views = False data_manager.vote_answer(answer_id, 'vote_down') return redirect(request.referrer)
def vote_answer(answer_id, vote): rep_num = 10 if vote == 'vote-up' else -2 util.update_reputation('answer', answer_id, rep_num) data_manager.vote_answer(answer_id, vote) question_id = data_manager.get_question_id_by_answer_id(answer_id) return redirect(url_for('route_question', question_id=question_id))