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)
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)
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)
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)
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)
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)
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'])
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)
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)
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")
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)
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'))
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)
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!')
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'))
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'))
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)
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')
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")
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)