def add_a_question(): if request.method == "POST": new_data = request.form.to_dict() new_data['submission_time'] = datetime.now().isoformat( timespec='seconds') submission_time = new_data['submission_time'] view_nr = new_data['view_number'] vote_nr = new_data['vote_number'] title = new_data['title'] message = new_data['message'] image = new_data['image'] user_name = session['username'] user_id = data_manager.get_user_id(user_name) question_id_dict = data_manager.add_question(submission_time, view_nr, vote_nr, title, message, image, user_id['user_id']) question_id = question_id_dict[0]['id'] return redirect(url_for('display_question', question_id=question_id)) return render_template("add_a_question.html", submission_time='default', view_nr='0', vote_nr='5')
def login(): user_data = request.get_json() if data_manager.check_login(user_data): session['username'] = user_data['username'] user_id = data_manager.get_user_id(user_data['username']) return jsonify(username=session["username"], user_id=user_id) else: return jsonify(error="error")
def question_page(question_id): question = data_manager.get_question_details(question_id) if 'user_name' in session: user_id = data_manager.get_user_id(session['user_name'])[0]['id'] return render_template("question.html", question=question, email=session['user_name'], user_id=user_id) return render_template("question.html", question=question)
def login(): user_data = request.get_json() if data_manager.check_login(user_data): session['username'] = user_data['username'] user_id = data_manager.get_user_id(user_data['username']) session['user_id'] = user_id return jsonify(state="loggedIn") else: return jsonify(error="error")
def save_user_vote(): if request.method == 'POST': planet_id = request.form.get('planet-id') planet_name = request.form.get('planet-name') username = session['username'] user_id = data_manager.get_user_id(username)['id'] data_manager.add_to_planet_votes(planet_id, planet_name, user_id) return redirect(url_for('show_planets')) else: return redirect(url_for('show_planets'))
def list_route(): questions = sorted(data_manager.get_question_data(), key=lambda key: key['submission_time'], reverse=True) try: user_id = data_manager.get_user_id(session['username']) except KeyError: user_id = '' return render_template('all_questions.html', questions=questions, user_id=user_id)
def search(): try: userid = data_manager.get_user_id(session['username']) except KeyError: userid = '' search = '%' + request.args.get('search') + '%' questions = data_manager.search(search) return render_template('main.html', questions=questions, search=search, user_id=userid)
def route_login(): if request.method == 'POST': if data_manager.check_user_validity(request.form['user_name'], request.form['password']): session['username'] = request.form['user_name'] session['user_id'] = data_manager.get_user_id(request.form['user_name']) return redirect(url_for('route_list')) else: error_message = "Invalid user name or password" return render_template('error.html', error_message=error_message) return render_template('register-login.html', html_data='Login')
def show_list(): questions = data_manager.get_list( request.args.get('order_by', default='submission_time'), request.args.get('order_direction', default='desc')) if 'user_name' in session: user_id = data_manager.get_user_id(session['user_name'])[0]['id'] return render_template("list.html", questions=questions, email=session['user_name'], user_id=user_id) return render_template("list.html", questions=questions)
def add_form(): """if request.method == 'POST': # we update how many times it has been edited saved_data['edit_count'] = saved_data.get('edit_count', 0) + 1""" if request.method == 'POST': new_q_id = data_manager.add_question( request.form['title'], request.form['message'], data_manager.get_user_id(session['user_name'])[0]['id']) return redirect(url_for('question_page', question_id=new_q_id)) if 'user_name' in session: return render_template("add-question.html", email=session['user_name']) return redirect(url_for('login'))
def add_question_comment(question_id: int): if request.method == 'POST': user_comment = request.form.get('comment') now_time = datetime.now() try: userid = data_manager.get_user_id(session['username']) except KeyError: userid = None data_manager.add_comment_to_question(question_id, user_comment, now_time, userid) return redirect(f'/question/{question_id}') return render_template('add_comment_question.html', question_id=question_id)
def add_a_comment_to_question(question_id): if request.method == 'POST': message_data = request.form.to_dict() message = message_data['message'] user_name = session['username'] user_id = data_manager.get_user_id(user_name) data_manager.add_comment_to_question(question_id, message, user_id['user_id']) return redirect(url_for('display_question', question_id=question_id)) return render_template('add_a_comment_to_question.html', question_id=question_id)
def add_answer_comment(answer_id: int, question_id: int): if request.method == 'POST': user_comment = request.form.get('comment') now_time = datetime.now() try: user_id = data_manager.get_user_id(session['username']) except: user_id = '' data_manager.add_comment_to_answer(answer_id, user_comment, now_time, user_id) return redirect(f'/question/{question_id}') return render_template('add_comment_answer.html', answer_id=answer_id, question_id=question_id)
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)
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')
def login(): if request.method == 'GET': return render_template('login.html') session.pop('user', None) hashed_password = data_manager.get_user_password( request.form.get('username')) check_password = util.verify_password( request.form.get('password'), hashed_password['password'] if hashed_password else None) if hashed_password is None or check_password is False: return render_template('login.html', error=True) session['user'] = request.form.get('username') session['user_id'] = data_manager.get_user_id(session['user']) return redirect(url_for('index'))
def login(): if 'id' in session: return redirect(url_for('route_main')) if request.method == 'POST': req = request.form try: if not util.verify_password(req['password'], data_manager.get_password(req['username'])[0]['password']): flash('Incorrect password or username!') return redirect(request.url) else: session['id'] = data_manager.get_user_id(req['username'])[0]['id'] session['username'] = req['username'] return redirect(url_for('route_main')) except IndexError: flash('Incorrect Username!') return redirect(request.url) return render_template('login.html')
def boards(): ''' this is a one-pager which shows all the boards and cards ''' if "username" in session: username = session["username"] board_ids = data_manager.get_board_ids(username) user_id = data_manager.get_user_id(username) boards = json.dumps(data_manager.get_boards(username)) cards = json.dumps(data_manager.get_cards(board_ids)) statuses = json.dumps(data_handler.get_statuses()["statuses"]) return render_template("boards.html", username=username, user_id=user_id, boards=boards, cards=cards, statuses=statuses) else: return render_template("boards.html")
def add_question(): if request.method == 'POST': message = request.form.get("message") title = request.form.get('title') image = request.form.get('image') view_number = 0 vote_number = 0 submission_time = datetime.now() try: user_id = data_manager.get_user_id(session['username']) except KeyError: user_id = '' question_id = data_manager.add_question(message, title, image, view_number, vote_number, submission_time, user_id)[0]['id'] return redirect(f'/question/{question_id}') return render_template('add_question.html')
def user_login(): if request.method == "POST": input_username = request.form['username'] input_password = request.form['password'] stored_password = data_manager.get_hashed_password(input_username) if stored_password is None: return redirect(url_for('user_login')) isPasswordVerified = utility.verify_password( input_password, stored_password['password']) if isPasswordVerified: session['username'] = input_username session['id'] = data_manager.get_user_id(input_username)['id'] return render_template('index.html', username=input_username) else: return redirect(url_for('user_login')) else: return render_template('login.html')
def route_selected_question(question_id: int): question = data_manager.get_question_data(question_id) answers = data_manager.get_answer_data(question_id) question_comments = data_manager.get_question_comment(question_id) answer_ids = data_manager.get_answer_ids(question_id) answer_comments = {} try: user_id = data_manager.get_user_id(session['username']) except KeyError: user_id = '' for a_id in answer_ids: for i in a_id: answer_comments[a_id[i]] = data_manager.get_answer_comment(a_id[i]) return render_template('question.html', question=question, question_id=question_id, answers=answers, question_comments=question_comments, answer_comments=answer_comments, user_id=user_id)
def registration(): if request.method == 'POST': req = request.form hashed_password = util.hash_password(req['password']) if data_manager.check_user_data('username', req['username']) is True: flash('This username is already taken!') return redirect(request.url) elif data_manager.check_user_data('email_address', req['email']) is True: flash('This email address is already taken!') return redirect(request.url) elif len(req['password']) < 7: flash('Too short password! (Min. 7 character.)') return redirect(request.url) elif not util.verify_password(req['password_again'], hashed_password): flash('The passwords are different!') return redirect(request.url) else: list_of_data = [req['username'], req['email'], util.hash_password(req['password'])] data_manager.add_new_user(list_of_data) session['id'] = data_manager.get_user_id(req['username'])[0]['id'] session['username'] = req['username'] return redirect(url_for('route_main')) return render_template('registration.html')
def get_user_id(dict): login = dict['email'] return data_manager.get_user_id(login)[0]['users_id']
def vote(vote_input): planet_name = vote_input['planet_name'] planet_id = vote_input['planet_id'] user_id = data_manager.get_user_id() submission_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") data_manager.save_vote(planet_name, planet_id, submission_time, user_id)