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 delete_tag(question_id): tag_name = request.args.get('tag_name') tag_id = ui.get_record_from_sql_db('tag', "name='%s'" % (tag_name))[0][0] ui.delete_record('question_tag', "question_id=%s AND tag_id=%s" % (question_id, tag_id)) tag_id_in_question_tag = ui.get_record_from_sql_db('question_tag', "tag_id=%s" % (tag_id)) if not tag_id_in_question_tag: ui.delete_record('tag', "id=%s" % (tag_id)) return redirect('/question/' + question_id)
def delete_question(question_id): answer_list = ui.get_record_from_sql_db('answer', "question_id=%s" % (question_id)) for record in answer_list: ui.delete_record('comment', "answer_id=%s" % (record[0])) ui.delete_record('answer', "question_id=%s" % (question_id)) ui.delete_record('question_tag', "question_id=%s" % (question_id)) ui.delete_record('comment', "question_id=%s" % (question_id)) ui.delete_record('question', "id=%s" % (question_id)) return redirect('/')
def add_new_tag(question_id): if request.form['new_tag']: if not ui.get_record_from_sql_db( 'tag', "name='%s'" % (request.form['new_tag'])): ui.add_item_to_tag('tag', request.form['new_tag']) new_tag_id_list = ui.get_tag_id_by_name(request.form['new_tag']) if not ui.get_record_from_sql_db( 'question_tag', "question_id=%s AND tag_id=%s" % (question_id, new_tag_id_list[0][0])): ui.add_item_to_question_tag('question_tag', question_id, new_tag_id_list[0][0]) else: existing_tag_id_list = ui.get_tag_id_by_name( request.form['existing_tag']) if not ui.get_record_from_sql_db( 'question_tag', "question_id=%s AND tag_id=%s" % (question_id, existing_tag_id_list[0][0])): ui.add_item_to_question_tag('question_tag', question_id, existing_tag_id_list[0][0]) return redirect('/question/' + question_id)
def add_new_answer_comment(): new_answer_comment_user = request.form['new_answer_comment_user'] user_id = ui.handle_query( """SELECT id FROM users WHERE user_name='{}';""".format( new_answer_comment_user)) ui.handle_query( """INSERT INTO comment (answer_id, message, submission_time, users_id) VALUES ({}, '{}', '{}', {});""".format( request.form['answer_id'], request.form['new_comment_message'], str(datetime.now())[:-7], user_id[0][0])) question_id = ui.get_record_from_sql_db( 'answer', 'id=%s' % (request.form["answer_id"]))[0][3] return redirect('/question/' + str(question_id))
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)