예제 #1
0
def user_page(username):
    user_id = data_manager.get_user_id_by_username(username)
    questions = data_manager.get_data_by_user_id(user_id, 'question')
    answers = data_manager.get_data_by_user_id(user_id, 'answer')
    comments = data_manager.get_comments_by_user_id(user_id)

    return render_template('user_page.html', questions=questions, answers=answers, comments=comments)
예제 #2
0
def route_add_question():
    username = session['username']

    if request.method == 'POST':
        user_id = data_manager.get_user_id_by_username(username)
        new_question = {
            'submission_time': "",
            'view_number': 0,
            'vote_number': 0,
            'title': request.form['title'],
            'message': request.form['message'].replace('\n', '<br/>'),
            'image': "",
            'user_id': user_id
        }

        if len(request.files) > 0:
            if request.files['image'].filename != "":
                current_image_name = str(request.files['image'])
                normal_image_name = data_manager.get_back_image_name(
                    current_image_name)
                new_question['image'] = normal_image_name

                file = request.files['image']
                filename = secure_filename(file.filename)
                file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))

        filename = ""

        data_manager.insert_new_question_to_database(new_question)
        return redirect(url_for('index', filename=filename))

    return render_template('new_question.html', username=username)
예제 #3
0
def route_new_answer(question_id):
    username = session['username']
    data_manager.update_view_counter(question_id, -2)

    if request.method == 'POST':
        username = session['username']
        user_id = data_manager.get_user_id_by_username(username)
        new_answer = {
            'submission_time': "",
            'vote_number': 0,
            'question_id': question_id,
            'message': request.form['message'].replace('\n', '<br/>'),
            'image': "",
            'user_id': user_id
        }

        if len(request.files) > 0:
            if request.files['image'].filename != "":
                current_image_name = str(request.files['image'])
                normal_image_name = data_manager.get_back_image_name(
                    current_image_name)
                new_answer['image'] = normal_image_name

                file = request.files['image']
                filename = secure_filename(file.filename)
                file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))

        data_manager.insert_new_answer_to_database(new_answer)
        return redirect(url_for('route_show_question',
                                question_id=question_id))

    return render_template('new_answer.html',
                           question_id=question_id,
                           username=username)
예제 #4
0
def add_question():
    if request.method == 'POST':
        user_id = data_manager.get_user_id_by_username(session['username'])
        new_question = dict(request.form)
        file_to_upload = request.files['image_file']
        new_question['image'] = save_file(file_to_upload)
        data_manager.add_question(new_question, user_id)
        return redirect('/list')
    questions = data_manager.get_questions()
    return render_template('add-question.html', questions=questions)
예제 #5
0
def add_comment_to_question(question_id):
    if request.method == 'POST':
        question_comment = request.form['question_comment']
        user_id = data_manager.get_user_id_by_username(session['username'])
        data_manager.create_question_comment(question_comment,
                                             user_id,
                                             question_id=question_id)
        return redirect('/question/' + str(question_id))
    else:
        return render_template('comment_to_question.html',
                               question_id=question_id)
예제 #6
0
def add_new_answer(question_id):
    if request.method == "POST":
        new_answer = request.form["answer"]
        user_id = data_manager.get_user_id_by_username(session['username'])
        file = request.files['img']
        image = util.get_image_name(file)
        data_manager.create_new_answer(new_answer, question_id, image, user_id)
        data_manager.more_user_details(user_id=user_id)
        return redirect("/question/" + question_id)
    else:
        return render_template("new_answer.html", question_id=question_id)
예제 #7
0
def display_messages():
    if request.method == 'POST':
        username = session['username']
        message = request.form['message']
        user_id = data_manager.get_user_id_by_username(username)
        data_manager.add_message(message, user_id)
        return redirect(url_for('display_messages'))
    messages = data_manager.get_all_messages()
    return render_template('messages.html',
                           messages=messages,
                           username=session['username'])
예제 #8
0
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)
예제 #9
0
def add_comment_to_answer(answer_id):
    if request.method == 'POST':
        question_id = (data_manager.get_question_id(answer_id))['question_id']
        answer_comment = request.form['answer_comment']
        user_id = data_manager.get_user_id_by_username(session['username'])
        data_manager.create_new_comment(answer_comment,
                                        user_id,
                                        answer_id=answer_id,
                                        question_id=question_id)
        data_manager.more_user_details(user_id=user_id)
        return redirect('/question/' + str(question_id))
    return render_template('add_cooment_to_answer.html', answer_id=answer_id)
예제 #10
0
파일: server.py 프로젝트: jkrisz511/AskMate
def add_question():
    if 'username' in session:
        if request.method == "POST":
            user_id = data_manager.get_user_id_by_username(session['username'])
            user_story_id = data_manager.add_question(
                request.form["question-title"], request.form["new-question"],
                user_id)
            return redirect(
                url_for('route_question_id', question_id=user_story_id))
    else:
        return redirect(url_for('login'))
    return render_template("newquestion.html")
예제 #11
0
def add_comment_to_question(question_id):
    if request.method == 'POST':
        user_id = data_manager.get_user_id_by_username(session['username'])
        data_manager.add_comment_to_question(question_id, dict(request.form),
                                             user_id)
        question_comments = data_manager.get_comments_from_question_id(
            question_id)
        return redirect(
            url_for('route_question',
                    question_id=question_id,
                    question_comments=question_comments))
    question = data_manager.get_question_by_id(question_id)
    return render_template('add-comment.html', question=question)
예제 #12
0
파일: server.py 프로젝트: jkrisz511/AskMate
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'))
예제 #13
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)
예제 #14
0
def login():
    if request.method == 'POST':
        hash = data_manager.get_hash_by_username(request.form['username'])
        if hash and util.verify_password(request.form['password'], hash):
            session['username'] = request.form['username']
            session['user_id'] = data_manager.get_user_id_by_username(
                session['username'])
            return redirect(url_for('route_list'))
        else:
            return render_template('reg_login.html',
                                   error='Wrong username/password',
                                   title='Login',
                                   server_function='login',
                                   submit_text='Login!')
    return render_template('reg_login.html',
                           title='Login',
                           server_function='login',
                           submit_text='Login!')
예제 #15
0
파일: server.py 프로젝트: jkrisz511/AskMate
def route_new_comment(question_id='', answer_id=''):
    if 'username' in session:
        if request.method == "POST":
            user_id = data_manager.get_user_id_by_username(session['username'])
            if question_id == '':
                data_manager.add_comment(
                    str(data_manager.get_question_id(answer_id)), answer_id,
                    request.form["comment"], user_id)
                return redirect(url_for('route_list'))
            elif answer_id == '':
                data_manager.add_comment(question_id, None,
                                         request.form["comment"], user_id)
                return redirect(url_for('route_list'))
        return render_template('newcomment.html',
                               title="Add New Comment!",
                               answer_id=answer_id,
                               question_id=question_id)
    else:
        return redirect(url_for('route_main'))
예제 #16
0
파일: server.py 프로젝트: jkrisz511/AskMate
def profile_question(user_id, type):
    try:
        get_user_id = data_manager.get_user_id_by_username(session['username'])
    except KeyError:
        return redirect(url_for('route_main'))

    if get_user_id == user_id:
        if type == "question":
            some_data = data_manager.get_questions()
        elif type == "answer":
            some_data = data_manager.get_answers_for_user()
        elif type == "comment":
            some_data = data_manager.get_comment_for_user()
        user_name = data_manager.get_user_name(user_id)
        return render_template('user_profile.html',
                               datas=some_data,
                               user_id=user_id,
                               user_name=user_name)
    else:
        return redirect(url_for('route_main'))
예제 #17
0
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 add_question():
    if request.method == "POST":
        dictionary_of_questions = data_manager.create_new_question()
        file = request.files['questionimage']
        image = util.get_image_name(file)
        user_id = data_manager.get_user_id_by_username(session['username'])
        dictionary_of_questions.update({
            'user_id':
            user_id,
            'title':
            request.form.get('questiontitle'),
            'message':
            request.form.get('questionbody'),
            'image':
            image
        })
        data_manager.write_to_questions(dictionary_of_questions)
        data_manager.more_user_details(user_id=user_id)
        return redirect('/list')
    else:
        return render_template('ask_questions.html')
예제 #19
0
파일: server.py 프로젝트: jkrisz511/AskMate
def login():
    if request.method == 'GET':
        if session.get('username') is not None:
            return redirect(url_for('loginerror'))
        else:
            return render_template('login.html', error=None)
    elif request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        hashed_password = data_manager.get_password_by_username(username)
        if hashed_password is not None:
            hashed_password = hashed_password.encode('utf-8')
            if bcrypt.checkpw(password.encode('utf-8'),
                              hashed_password) is True:
                session['username'] = username
                session['user_id'] = int(
                    data_manager.get_user_id_by_username(username))
                session.permanent = True
                return redirect(url_for('route_main'))
            else:
                return render_template('login.html', error="not valid")
        else:
            return render_template('login.html', error="not valid")
예제 #20
0
def show_votes():
    username = request.cookies['username']
    user_id = data_manager.get_user_id_by_username(username)
    votes = data_manager.get_votes_by_user_id(user_id)
    return jsonify(votes)