コード例 #1
0
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('/')
コード例 #2
0
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)
コード例 #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
ファイル: server.py プロジェクト: balintsimon/ask-mate-python
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)
コード例 #5
0
ファイル: server.py プロジェクト: MichalKandybowicz/ask_m8
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('/')
コード例 #6
0
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)
コード例 #7
0
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={})
コード例 #8
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)
コード例 #9
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}')
コード例 #10
0
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}')
コード例 #11
0
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}')
コード例 #12
0
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)
コード例 #13
0
ファイル: server.py プロジェクト: Gnorbi951/ask-mate-python
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)
コード例 #14
0
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)
コード例 #15
0
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)
コード例 #16
0
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)
コード例 #17
0
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('/')
コード例 #18
0
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)
コード例 #19
0
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)
コード例 #20
0
ファイル: server.py プロジェクト: SophieH07/ask-mate-python
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)
コード例 #21
0
ファイル: server.py プロジェクト: pakayb/ask-mate-python
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())
コード例 #22
0
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)
コード例 #23
0
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)
コード例 #24
0
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)
コード例 #25
0
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']))
コード例 #26
0
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)
コード例 #27
0
ファイル: server.py プロジェクト: esztermazi/Ask5mates
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))
コード例 #28
0
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('/')
コード例 #29
0
ファイル: server.py プロジェクト: esztermazi/Ask5mates
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)
コード例 #30
0
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'))