コード例 #1
0
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}')
コード例 #2
0
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)
コード例 #3
0
ファイル: server.py プロジェクト: Gnorbi951/ask-mate-python
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)
コード例 #4
0
def vote_down_answer(answer_id):
    data_manager.vote_down_answer(answer_id)
    question_id = data_manager.get_question_id_by_answer_id(
        answer_id)['question_id']
    user_id = data_manager.get_display_question(question_id)['user_id']
    reputation = data_manager.get_reputation(user_id=user_id)
    data_manager.update_reputation(user_id, (reputation - 2))
    return redirect('/question/' + str(question_id))
コード例 #5
0
ファイル: server.py プロジェクト: bbucsek/ask-mate-python
def delete_answer(answer_id):
    answer_user_id = data_manager.get_user_id_by_answer_id(answer_id)
    if session['user_id'] == answer_user_id:
        question_id = data_manager.get_question_id_by_answer_id(answer_id)
        data_manager.delete_answer_with_image_by_id(answer_id)
        return redirect(url_for('route_question', question_id=question_id))
    else:
        return "You don't have the permission to delete this answer!"
コード例 #6
0
ファイル: server.py プロジェクト: JanBartoszek/Lordex
def toggle_accepted(answer_id):
    data_manager.toggle_accepted(answer_id)
    value = user.check_value_of_accepted_button(answer_id)
    if value == True:
        user.change_user_reputation_in_answer(answer_id, 15)
    elif value == False:
        user.change_user_reputation_in_answer(answer_id, -15)
    question_id = data_manager.get_question_id_by_answer_id(answer_id)
    return redirect('/question/{}'.format(question_id))
コード例 #7
0
def answer_vote(answer_id, vote):
    value = 0
    if vote == 'vote-up':
        value = 1
    elif vote == 'vote-down':
        value = -1
    data_manager.update_vote_number('answer', answer_id, value)
    question_id = data_manager.get_question_id_by_answer_id(answer_id)
    return redirect(f'/question/{question_id}')
コード例 #8
0
def save_edited_comment():
    edited_message = request.form.to_dict()
    data_manager.update_comment(edited_message)
    edited_comment = data_manager.get_comment_by_id(edited_message["id"])
    if edited_comment["question_id"] == None:
        question_id = data_manager.get_question_id_by_answer_id(edited_comment["answer_id"])
    else:
        question_id = edited_comment["question_id"]
    url_to_question = url_for("get_question_details", question_id=question_id)
    return redirect(url_to_question)
コード例 #9
0
ファイル: server.py プロジェクト: bbucsek/ask-mate-python
def add_comment_to_answer(answer_id):
    if request.method == 'POST':
        user_id = data_manager.get_user_id_by_username(session['username'])
        comment_message = request.form['message']
        data_manager.add_comment_to_answer(answer_id, comment_message, user_id)
        question_id = data_manager.get_question_id_by_answer_id(answer_id)
        return redirect(url_for('route_question', question_id=question_id))
    question = data_manager.get_question_by_answer_id(answer_id)
    answer = data_manager.get_answer_by_answer_id(answer_id)
    return render_template('add-comment-to-answer.html',
                           question=question,
                           answer=answer)
コード例 #10
0
def add_comment_to_answer(answer_id):
    if request.method == 'POST':
        comment = {
            'message': request.form['comment'],
            'user_id': session['user_id']
        }
        question_id = data_manager.get_question_id_by_answer_id(answer_id)
        data_manager.add_comment(comment, question_id['id'], answer_id)
        return redirect(f'/question/{question_id["id"]}')

    return render_template('add_and_edit_comment_to_answer.html',
                           answer_id=answer_id)
コード例 #11
0
def accept_answer(answer_id):
    question_id = data_manager.get_question_id_by_answer_id(
        answer_id)['question_id']
    user_questions = data_manager.get_user_questions(session['username'])
    question_ids = [q['id'] for q in user_questions]
    user_id_for_answer = data_manager.get_user_name_by_question_id(
        question_id)['id']
    if question_id in question_ids:
        data_manager.update_reputation_by_acceptance(answer_id,
                                                     user_id_for_answer)
        data_manager.change_acceptance(answer_id)
    return redirect('/question/' + str(question_id))
コード例 #12
0
ファイル: server.py プロジェクト: Gnorbi951/ask-mate-python
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)
コード例 #13
0
ファイル: server.py プロジェクト: AkosCzifra/ask-mate-python
def delete_comment(comment_id):
    try:
        comment = data_manager.get_comment_by_comment_id(comment_id)
        if comment['question_id'] is not None:
            question_id = comment['question_id']
        elif comment['question_id'] is None and comment['answer_id'] is not None:
            question_id = data_manager.get_question_id_by_answer_id(comment['answer_id'])
        if request.method == 'GET':
            return render_template('delete-comment.html', comment_id=comment_id, comment=comment, question_id=question_id)
        elif request.method == 'POST':
            data_manager.delete_comment(comment_id)
            return redirect(url_for('question_page', question_id=question_id))
    except (IndexError, UndefinedError):
        abort(404)
コード例 #14
0
def delete_comment(comment_id):
    site_user_id = data_manager.get_site_user_id_by_comment_id(comment_id)
    if site_user_id['site_user_id'] != session['user_id']:
        return redirect('https://i.imgflip.com/239qx5.jpg')
    question_id = str(
        data_manager.get_question_id_by_comment_id(comment_id)['question_id'])
    if question_id == 'None':
        answer_id = data_manager.get_answer_id_by_comment_id(
            comment_id)['answer_id']
        question_id = str(
            data_manager.get_question_id_by_answer_id(answer_id)
            ['question_id'])

    data_manager.delete_comment(comment_id)
    return redirect('/question/' + question_id)
コード例 #15
0
ファイル: server.py プロジェクト: bbucsek/ask-mate-python
def edit_answer(answer_id):
    answer_user_id = data_manager.get_user_id_by_answer_id(answer_id)
    if session['user_id'] == answer_user_id:
        if request.method == 'POST':
            edited_answer = dict(request.form)
            new_image = save_file(request.files['image_file'])
            edited_answer['image'] = new_image
            edited_answer['id'] = answer_id
            data_manager.edit_answer(edited_answer)

            question_id = data_manager.get_question_id_by_answer_id(answer_id)
            return redirect(url_for('route_question', question_id=question_id))
        question = data_manager.get_question_by_answer_id(answer_id)
        answer_to_edit = data_manager.get_answer_by_answer_id(answer_id)
        return render_template('edit.html',
                               answer_to_edit=answer_to_edit,
                               question=question)
    else:
        return "You don't have permission to edit this answer"
コード例 #16
0
ファイル: server.py プロジェクト: AkosCzifra/ask-mate-python
def edit_comment(comment_id):
    try:
        comment = data_manager.get_comment_by_comment_id(comment_id)
        if comment['question_id'] is not None:
            question_id = comment['question_id']
        elif comment['question_id'] is None and comment['answer_id'] is not None:
            question_id = data_manager.get_question_id_by_answer_id(comment['answer_id'])
        if request.method == 'GET':
            return render_template('edit-comment.html', comment_id=comment_id, comment=comment, question_id=question_id)
        elif request.method == 'POST':
            submission_time = datetime.now().isoformat(timespec='seconds')
            message = request.form['message']
            edited_count = comment['edited_count']
            if edited_count is None:
                edited_count = 0
            edited_count += 1
            data_manager.update_comment(message, submission_time, edited_count, comment_id)
            return redirect(f'/question/{question_id}')
    except (IndexError, UndefinedError):
        abort(404)
コード例 #17
0
ファイル: server.py プロジェクト: vrjolke/ask-mate-python
def add_new_comment_to_answer(answer_id):
    if request.method == 'POST':
        question_id = data_manager.get_question_id_by_answer_id(answer_id)
        username = session['username']
        user_id = data_manager.get_user_id_by_username(username)
        new_comment = {
            'question_id': question_id,
            'answer_id': answer_id,
            'message': request.form['comment_message'].replace('\n', '<br/>'),
            'submission_time': "",
            'edited_count': 0,
            'user_id': user_id
        }

        data_manager.insert_new_answer_comment_to_database(new_comment)
        data_manager.update_view_counter(question_id, -1)
        return redirect(url_for('route_show_question',
                                question_id=question_id))

    return render_template('new_answer_comment.html', answer_id=answer_id)
コード例 #18
0
def new_answer_comment(answer_id):
    if session.get(FORM_USERNAME):
        if request.method == "POST":
            details = dict(request.form)
            details["submission_time"] = util.get_current_date_time()
            details["user_id"] = session['user_id']
            data_manager.add_answer_comment(details)
            question_id = data_manager.get_question_id_by_answer_id(answer_id)
            return redirect(
                url_for("display_question", question_id=question_id))

        if request.method == "GET":
            answer = data_manager.get_answer_by_id(answer_id)
            response = make_response(
                render_template("add_comment.html",
                                username=SESSION_USERNAME,
                                item=answer,
                                item_type="answer",
                                url=url_for('new_answer_comment',
                                            answer_id=answer_id)))
            # item_id = 'answer_id')
            return response
    else:
        return redirect(url_for('login_user'))
コード例 #19
0
def get_question_id(answer_id):
    return data_manager.get_question_id_by_answer_id(answer_id)
コード例 #20
0
def route_remove_answer(answer_id):
    question_id = data_manager.get_question_id_by_answer_id(answer_id)
    data_manager.remove_record('answer', answer_id)
    return redirect(f'/question/{question_id}')
コード例 #21
0
ファイル: server.py プロジェクト: BoziDaniel/askmate1.1
def route_delete_answer(answer_id):
    question_id = dm.get_question_id_by_answer_id(answer_id)
    question_id = dict(question_id[0])
    question_id = question_id['question_id']
    dm.delete_answer(answer_id)
    return redirect(url_for('route_expand_question', question_id=question_id))
コード例 #22
0
ファイル: server.py プロジェクト: bbucsek/ask-mate-python
def accept_answer(answer_id):
    rep_num = 15
    util.update_reputation('answer', answer_id, rep_num)
    data_manager.accept_answer(answer_id)
    question_id = data_manager.get_question_id_by_answer_id(answer_id)
    return redirect(url_for('route_question', question_id=question_id))
コード例 #23
0
def get_question_by_comment_id(comment_id):
    question_id = data_manager.get_question_id_by_comment_id(comment_id)
    if question_id is None:
        answer_id = data_manager.get_answer_id_by_comment_id(comment_id)
        question_id = data_manager.get_question_id_by_answer_id(answer_id)
    return question_id
コード例 #24
0
ファイル: server.py プロジェクト: Gnorbi951/ask-mate-python
def delete_answer(answer_id: int):
    question_id = data_manager.get_question_id_by_answer_id(answer_id)
    question_id = question_id[0].get('id')
    data_manager.delete_answer(answer_id)
    return redirect(url_for('show_specific_question', question_id=question_id))
コード例 #25
0
ファイル: server.py プロジェクト: bbucsek/ask-mate-python
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))
コード例 #26
0
ファイル: server.py プロジェクト: vrjolke/ask-mate-python
def route_vote_answer_down(answer_id):
    data_manager.vote_counter('answer', answer_id, 'down')
    question_id = data_manager.get_question_id_by_answer_id(answer_id)
    data_manager.update_view_counter(question_id, -1)
    return redirect(url_for('route_show_question', question_id=question_id))