コード例 #1
0
def set_question_values(manipulated_question):
    manipulated_question["title"] = request.form["title"]
    manipulated_question["submission_time"] = util.get_new_timestamp()
    manipulated_question["message"] = request.form["description"]
    manipulated_question["user_id"] = data_manager.get_user_data(session['username'])['id']
    if 'file' in request.files:
        file = request.files['file']
        manipulated_question["image"] = util.save_image(file, data_manager.UPLOAD_FOLDER, "question")
    return manipulated_question
コード例 #2
0
def login():
    if 'username' in session:
        return redirect("/")
    if request.method == "GET":
        return render_template("login.html", logged=False)
    username = request.form.get("email")
    if not user_already_registered(username):
        flash('Wrong password or username!')
        return redirect("/login")
    password = request.form.get("password")
    if username and password:
        hashed_password = data_manager.get_user_data(username).get("password")
        if bcrypt.checkpw(password.encode("utf-8"),
                          hashed_password.encode("utf-8")):
            session["username"] = username
            session["user_id"] = data_manager.get_user_data(username).get("id")
            return redirect("/")
    flash('Wrong password or username!')
    return redirect("/login")
コード例 #3
0
ファイル: answer_handler.py プロジェクト: kasia-gra/ask_mate
def add_answer_status(answer_id):
    answer_data = data_manager.get_specific_record(answer_id, "answer")
    answer_owner = answer_data['user_id']
    reputation_points_based_on_accept_status = {True: 15, False: -15}
    question_owner_id = data_manager.get_question_owner_based_on_answer(
        answer_id)['user_id']
    if 'username' in session and int(question_owner_id) == int(
            data_manager.get_user_data(session['username'])['id']):
        status = not answer_data["accepted"]
        data_manager.change_answer_status(answer_id, status)
        data_manager.update_reputation(
            answer_owner, reputation_points_based_on_accept_status[status])
        return redirect("/question/" + str(answer_data["question_id"]))
    return abort(401)
コード例 #4
0
def answer_vote(answer_id, voting_type):
    if 'username' not in session:
        abort(401)
    username = session['username']
    user_id = data_manager.get_user_data(username).get("id")
    user_votes = data_manager.get_user_votes(user_id)
    answer = data_manager.get_specific_record(answer_id, "answer")
    if int(user_id) == int(answer.get("user_id")):
        return render_your_question_page("answer")
    for vote in user_votes:
        if vote["answer_id"] and int(
                vote["answer_id"]) == int(answer_id) and int(user_id) == int(
                    vote["user_id"]):
            return render_already_voted_page("answer")
    if voting_type == "down":
        data_manager.update_vote_number("answer", str(answer_id), "down")
        data_manager.update_reputation(answer["user_id"], -2)
    else:
        data_manager.update_vote_number("answer", str(answer_id), "up")
        data_manager.update_reputation(answer["user_id"], 10)
    data_manager.update_answer_vote(user_id, answer_id)
    return redirect("/question/" + str(answer.get("question_id")))
コード例 #5
0
def question_vote(question_id, vote):
    if 'username' not in session:
        abort(401)
    username = session['username']
    user_id = data_manager.get_user_data(username).get("id")
    user_votes = data_manager.get_user_votes(user_id)
    question = data_manager.get_specific_record(question_id, "question")
    if int(user_id) == int(question.get("user_id")):
        return render_your_question_page("question")
    for voter in user_votes:
        print(voter["question_id"])
        print(question_id)
        if voter["question_id"] and int(voter["question_id"]) == int(
                question_id) and int(user_id) == int(voter["user_id"]):
            return render_already_voted_page("question")
    if vote == "down":
        data_manager.update_vote_number("question", str(question_id), "down")
        data_manager.update_reputation(question["user_id"], -2)
    else:
        data_manager.update_vote_number("question", str(question_id), "up")
        data_manager.update_reputation(question["user_id"], 5)
    data_manager.update_question_vote(user_id, question_id)
    return redirect("/question/" + question_id)
コード例 #6
0
ファイル: util.py プロジェクト: kasia-gra/ask_mate
def get_user_details_from_session():
    username = session['username']
    user_id = data_manager.get_user_data(username)['id']
    return username, user_id