def display_question(id, count_view=True):
    question_list = ui.get_record_from_sql_db('question', "id=%s" % (id))
    title = question_list[0][4]
    message = question_list[0][5]
    view_number = question_list[0][2] + 1
    ui.update_record('question', "view_number=%s" % (view_number),
                     "id=%s" % (id))
    answer_list = ui.get_record_from_sql_db('answer', "question_id=%s" % (id))
    comment_list = ui.get_record_from_sql_db('comment',
                                             "question_id=%s" % (id))
    answer_comment_list = []
    for answer in answer_list:
        answer_comment_list.append(
            ui.get_record_from_sql_db('comment', "answer_id=%s" % (answer[0])))
    # SELECT tag.name FROM tag JOIN question_tag ON question_tag.tag_id=tag.id WHERE question_tag.question_id=1;
    tag_list = ui.get_record_from_tag(
        'tag', 'question_tag ON question_tag.tag_id=tag.id',
        "question_tag.question_id=%s" % (id))
    return render_template('display_question.html',
                           id=id,
                           title=title,
                           message=message,
                           list_answers=answer_list,
                           list_comments=comment_list,
                           list_answer_comments=answer_comment_list,
                           tag_list=tag_list)
def add_image_post(id):
    if 'file' not in request.files:
        flash('No file part')
        return redirect(request.url)
    file = request.files['file']
    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))
        ui.update_record('question', "image='/images/%s'" % (filename),
                         "id=%s" % (id))
        return app_logic.redirect('/')
def vote_question_up():
    id = request.args.get('id')
    question_list = ui.get_record_from_sql_db('question', "id=%s" % (id))
    vote_number = question_list[0][3] + 1
    ui.update_record('question', "vote_number=%s" % (vote_number),
                     "id=%s" % (id))
    query = """SELECT users_id \
            FROM question
            WHERE id = %s""" % (id)
    user_id = ui.handle_query(query)[0][0]
    query = """UPDATE users \
            SET reputation = reputation + 5 \
            WHERE id = %s""" % user_id
    ui.handle_query(query)
    return redirect('/')
def add_answer_image_post(id):
    if 'file' not in request.files:
        flash('No file part')
        return redirect(request.url)
    file = request.files['file']
    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))
        ui.update_record('answer', "image='/images/%s'" % (filename),
                         "id=%s" % (id))
        answer = ui.get_record_from_sql_db('answer', "id=%s" % (id))
        question_id = answer[0][3]
        return app_logic.display_question(question_id, count_view=False)
def vote_answer_down():
    id = request.args.get('id')
    answer_list = ui.get_record_from_sql_db('answer', "id=%s" % (id))
    vote_number = answer_list[0][2] - 1
    ui.update_record('answer', "vote_number=%s" % (vote_number),
                     "id=%s" % (id))
    question_id = answer_list[0][3]
    query = """SELECT users_id \
            FROM answer
            WHERE id = %s""" % (id)
    user_id = ui.handle_query(query)[0][0]
    query = """UPDATE users \
            SET reputation = reputation - 2 \
            WHERE id = %s""" % user_id
    ui.handle_query(query)
    return display_question(question_id, count_view=False)