def route_add_answer(id):
    new_answer = {
        "question_id": id,
        "answer_text": request.form["answer_text"]
    }
    data_manager.add_answer(new_answer)
    return redirect("/")
示例#2
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}')
示例#3
0
def add_answer_post(question_id):
    new_answer = dict(request.form)
    new_answer["submission_time"] = util.get_current_date_time()
    new_answer["question_id"] = question_id
    new_answer["vote_number"] = 0
    new_answer["user_id"] = session[SESSION_ID]
    new_answer["accepted"] = False

    uploaded_file = request.files.getlist('file')
    if len(uploaded_file[0].filename) != 0 or len(
            new_answer['image_url']) != 0:
        new_answer['image'] = 1
        answer_id = data_manager.add_answer(new_answer).get('id')
        if len(uploaded_file[0].filename) != 0:
            for file in uploaded_file:
                data_manager.add_answer_image({
                    "answer_id": answer_id,
                    "image": swap_image(file)
                })
        if len(new_answer['image_url']) != 0:
            data_manager.add_answer_image({
                "answer_id": answer_id,
                "image": new_answer['image_url']
            })

    else:
        new_answer['image'] = 0
        answer_id = data_manager.add_answer(new_answer).get('id')

    return redirect(
        url_for("display_question",
                question_id=question_id,
                answer_id=answer_id))
示例#4
0
def route_add_answer(id):
    new_answer_details = request.form.to_dict()
    new_answer_details["submission_time"] = datetime.now()
    new_answer_details["question_id"] = id
    new_answer_details["user_id"] = session["user_id"]
    data_manager.add_answer(new_answer_details)
    return redirect(request.referrer)
示例#5
0
def add_new_answer(question_id):
    if request.method == 'POST':
        data = request.form.to_dict()
        data["user_id"] = session["user_id"]
        data_manager.add_answer(data)
        return redirect('/question/{}'.format(question_id))
    else:
        return render_template('new_answer.html', question_id=question_id)
示例#6
0
def add_answer(question_id):
    if request.method == "POST":
        message = request.form["answer"]
        image = request.form["image"]
        user_id = session['id']
        data_manager.add_answer(message, question_id, image, user_id)
        return redirect("/list/question/" + question_id)
    return render_template("add_answer.html", question_id=question_id)
示例#7
0
def route_add_answer(question_id):
    if request.method == 'POST':
        image = util.upload_image(request.files, app)
        user_id = session['user_id']['id']
        data_manager.add_answer(user_id, question_id, request.form['message'], image)
        return redirect(url_for('route_show_details', question_id=question_id))

    return render_template('answer.html', question_id=question_id)
示例#8
0
def route_new_answer(question_id):
    if request.method == "POST":
        data_manager.add_answer(question_id, request.form["answer"])
        return redirect(url_for('route_question_id', question_id=question_id))

    return render_template('answer.html',
                           title="Add New Answer!",
                           question_id=question_id)
示例#9
0
def add_answer(question_id):
    if request.method == 'POST':
        answer = {
            'message': request.form['answer'],
            'image': request.form['image'],
            'user_id': session['user_id']
        }
        data_manager.add_answer(answer, question_id)
        return redirect(f"/question/{question_id}")
    return render_template("add_and_edit_answer.html", question_id=question_id)
示例#10
0
def add_new_answer(question_id):
    question = data_manager.get_table_by_id(question_id, "question")
    if request.method == 'POST':
        new_answer = request.form.to_dict()
        data_manager.add_answer(new_answer)

        return redirect('/question/' + new_answer['question_id'])

    else:
        return render_template('post_answer.html',
                               question=question)
示例#11
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('/')
示例#12
0
def add_answer():
    question_id = request.args['id']
    s = session['logged_in']
    if request.method == 'POST':
        if s is True:
            message = request.form['message']
            data_manager.add_answer(question_id, message, session['username'])
            return redirect(url_for("disp_answers", id=question_id))
        else:
            flash('You are not logged in!', 'danger')

    return render_template('answer.html', question_id=question_id)
示例#13
0
def route_new_answer(question_id):
    if 'username' in session:
        if request.method == "POST":
            user_id = data_manager.get_user_id_by_username(session['username'])
            data_manager.add_answer(question_id, request.form["answer"],
                                    user_id)
            return redirect(
                url_for('route_question_id', question_id=question_id))

        return render_template('answer.html',
                               title="Add New Answer!",
                               question_id=question_id)
    else:
        return redirect(url_for('login'))
示例#14
0
def new_answer(question_id):
    if request.method == 'POST':
        user_id = data_manager.get_user_id_by_username(session['username'])
        file_to_upload = request.files['image_file']
        answer_to_add = dict(request.form)
        answer_to_add['image'] = save_file(file_to_upload)
        data_manager.add_answer(answer_to_add, user_id)
        question_id = request.form['question_id']
        return redirect(url_for('route_question', question_id=question_id))
    question = data_manager.get_question_by_id(question_id)
    answers = data_manager.get_answers_by_question_id(question_id)
    return render_template('new-answer.html',
                           question=question,
                           answers=answers)
示例#15
0
def add_answer(question_id: int):
    if request.method == 'POST':
        message = request.form.get('message')
        image = request.form.get('picture')
        submission_time = datetime.now()
        vote_number = 0
        try:
            userid = data_manager.get_user_id(session['username'])
        except KeyError:
            userid = None
        data_manager.add_answer(submission_time, vote_number, question_id,
                                message, image, userid)
        return redirect(f'/question/{question_id}')

    return render_template('add_answer.html', question_id=question_id)
示例#16
0
def route_new_answer(question_id):
    if 'id' not in session:
        return redirect(url_for('route_main'))
    if request.method == "POST":
        file = [request.form[item] for item in request.form]
        image = request.files["image"]
        if image.filename != "":
            filename = data_manager.get_name_of_image(image.filename)
            image.save(os.path.join("static", filename))
            file.append(f"/static/{filename}")
        file.append(session['id'])
        data_manager.add_answer(file, int(question_id))
        return redirect(f"/question/{question_id}/question")
    question = data_manager.get_row_from_table('question', int(question_id))
    return render_template("post_answer.html", question=question, question_id=question_id)
示例#17
0
def new_answer(question_id):
    if request.method == 'POST':
        data_manager.add_answer(
            question_id, request.form['message'],
            data_manager.get_user_id(session['user_name'])[0]['id'])

    question = data_manager.filter_by_id('quest', question_id)[0]
    question['answers'] = data_manager.filter_by_id('answ', question_id)
    if 'user_name' in session:
        user_id = data_manager.get_user_id(session['user_name'])[0]['id']
        return render_template("new-answer.html",
                               question=question,
                               email=session['user_name'],
                               user_id=user_id)
    return redirect(url_for('login'))
示例#18
0
def add_an_answer(question_id):
    if request.method == 'POST':
        answer_data = request.form.to_dict()
        message = answer_data['message']
        submission_data = datetime.now().isoformat(timespec='seconds')
        username = session['username']
        user_id = data_manager.get_user_id(username)
        data_manager.add_answer(question_id, message, submission_data,
                                user_id['user_id'])
        return redirect(url_for('display_question', question_id=question_id))

    return render_template('add_answer.html',
                           question_id=question_id,
                           submission_time='default',
                           vote_nr='5')
示例#19
0
def route_add_answer(question_id):
    global update_views
    update_views = False
    if request.method == 'POST':
        random_file_name = util.random_string()
        message = util.make_compat_display(request.form['message'])
        message = message.replace("'", "''")
        file = request.files['file']
        filename = secure_filename(file.filename)
        if file and data_manager.allowed_file(file.filename):
            extension = filename[-4:]
            filename = str(random_file_name) + extension
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
        data_manager.add_answer(question_id, message, filename)
        return redirect(url_for('route_question', question_id=question_id))
    return render_template('add_answer.html', question_id=question_id)
示例#20
0
def add_answer(question_id: int):
    answer_data = data_manager.get_question_by_id(question_id)
    if request.method == 'POST':
        if 'username' in session:
            username = session['username']
            user_id = data_manager.get_user_id_by_name(username)
            site_input = request.form['new-answer']
            data_manager.add_answer(site_input, user_id[0].get('id'),
                                    question_id)
        else:
            site_input = request.form['new-answer']
            data_manager.add_answer(site_input, None, question_id)
        return redirect(
            url_for('show_specific_question', question_id=question_id))

    return render_template('add_answer.html',
                           question_id=question_id,
                           answer_data=answer_data)
示例#21
0
def submit_answer():
    if request.method == 'POST':
        id_ = data_manager.get_new_answer_id()
        submission_time = data_manager.convert_time(
            data_manager.get_current_unix_timestamp())
        votes = 0
        question_id = request.form['question_id']
        message = request.form['message']
        answer_dict = {
            'id': id_,
            'submission_time': submission_time,
            'vote_number': votes,
            'question_id': question_id,
            'message': message,
            'image': None
        }
        data_manager.add_answer(answer_dict)
    return redirect('/question/' + question_id)
示例#22
0
def route_add_answer(question_id):
    if request.method == 'POST':
        submission_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        vote_number = 0
        message = request.form['message']

        file = request.files['image_file']
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            image = file.filename
        else:
            image = ""

        data_manager.add_answer(submission_time, vote_number, question_id,
                                message, image)
        return redirect(url_for('route_question', question_id=question_id))
    return render_template('new_answer.html', question_id=question_id)
示例#23
0
def q_id(question_id):
    question = data_manager.get_question_by_id(question_id)
    if request.method == 'GET':
        message = question['message']
        title = question['title']
        question_id = question['id']
        answers = data_manager.get_answer_by_question_id(question_id)
        if answers:
            answer_id = answers[0]['id']
        else:
            answer_id = 0
        print(answer_id)
        comments_questions = data_manager.get_question_comments(question_id)
        comments_answers = data_manager.get_answer_comments()
        print(comments_answers)
        return render_template("question_id.html",
                               message=message,
                               title=title,
                               answers=answers,
                               question_id=question_id,
                               comments_questions=comments_questions,
                               comments_answers=comments_answers,
                               answer_id=answer_id)
    elif request.method == 'POST':
        if request.form["btn"] == "Send answer":
            answer = OrderedDict()
            answer['submission_time'] = datetime.now()
            answer['vote_number'] = 0
            answer['question_id'] = question_id
            answer['message'] = request.form.get('comment')
            answer['image'] = None
            data_manager.add_answer(answer)
            return redirect(url_for('get_question_list'))
        elif request.form['btn'] == "Delete question":
            data_manager.delete_question(question_id)
            data_manager.delete_answer(question_id)
            return redirect(url_for('get_question_list'))
        elif request.form['btn'] == "Edit question":
            return redirect(url_for('edit', question_id=question_id))
示例#24
0
def post_answer(question_id, answer_id=""):
    try:
        user_id = data_manager.get_userid_by_username(session['username'])
    except KeyError:
        return redirect('/')
    if request.path == '/question/' + str(question_id) + '/' + str(
            answer_id) and request.method == 'GET':
        single_question = data_manager.get_line_data_by_id(
            data_manager.question_db, question_id)
        question_title = single_question[0]['title']
        answer = data_manager.get_line_data_by_id(data_manager.answer_db,
                                                  answer_id)[0]
        return render_template('post-answer_head.html',
                               question_title=question_title,
                               answer=answer,
                               answer_id=answer_id,
                               user_id=user_id)

    elif request.path == '/question/' + str(question_id) + '/' + str(
            answer_id) and request.method == 'POST':
        form_answer = request.form['answer_message']
        data_manager.update_answer(answer_id, form_answer)
        return redirect('/question/{}'.format(question_id))
    else:
        if request.method == 'POST':
            user_id = data_manager.get_userid_by_username(
                session.get('username'))
            form_answer = request.form['answer_message']
            data_manager.add_answer(question_id, form_answer, user_id)
            return redirect('/question/{}'.format(question_id))
        else:
            single_question = data_manager.get_line_data_by_id(
                data_manager.question_db, question_id)
            question_title = single_question[0]['title']
            return render_template('post-answer_head.html',
                                   question_title=question_title,
                                   answer_id=answer_id,
                                   user_id=user_id)
示例#25
0
def add_answer(question_id, message, image, user_id):
    return data_manager.add_answer(question_id, message, image, user_id)
示例#26
0
def route_new_answer(id):
    if request.method == 'POST':
        data_manager.add_answer(request.form, id)
        return redirect('/show_question/' + id)
    return render_template('answer.html', id=id)