Exemple #1
0
def add_edit_question(question_id=None):
    try:
        user_id = data_manager.get_userid_by_username(session['username'])
    except KeyError:
        return redirect('/')
    if question_id and request.method == 'GET' and user_id == data_manager.get_foreign_key_by_id(
            data_manager.question_db, 'users_id',
            question_id)[0]['users_id']:  # edit question
        question = data_manager.get_line_data_by_id(data_manager.question_db,
                                                    question_id)[0]  # edit get
        return render_template('add_questions_head.html',
                               question=question,
                               question_id=question_id,
                               user_id=user_id)

    elif request.method == 'POST' and question_id and user_id == data_manager.get_foreign_key_by_id(
            data_manager.question_db, 'users_id', question_id)[0]['users_id']:
        title = request.form['question_title']  # edit post
        message = request.form['question_message']
        data_manager.update_question(question_id, title, message)
        return redirect('/question/{}'.format(question_id))

    elif request.method == 'GET' and question_id is None:  # add get
        return render_template('add_questions_head.html',
                               question_id=question_id,
                               user_id=user_id)

    elif request.method == 'POST' and question_id is None:  # add post
        user_id = data_manager.get_userid_by_username(session.get('username'))
        data_manager.add_question(request.form['question_title'],
                                  request.form['question'], user_id)
        question_id = data_manager.get_last_question_id()
    else:
        flash('Invalid user')
    return redirect('/question/{}'.format(question_id))
Exemple #2
0
def update_question(question_id):
    question = data_manager.fetch_dictionary(question_id)[0]
    if request.method == "POST":
        data_manager.update_question(question_id)
        return redirect('/question/' + question_id)
    return render_template('modify_data_layout/update_question.html',
                           question=question)
Exemple #3
0
def route_edit_question(question_id):
    current_question = data_manager.get_record_by_id('question',
                                                     question_id)[0]
    current_question['message'] = current_question['message'].replace(
        '<br/>', "")
    username = session['username']

    if request.method == 'POST':
        edited_question = {
            'title': request.form['title'],
            'message': request.form['message'].replace('\n', '<br/>'),
            'image': current_question['image']
        }

        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)
                edited_question['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.update_question(edited_question, question_id)
        data_manager.update_view_counter(question_id, -1)
        return redirect(url_for('route_show_question',
                                question_id=question_id))

    return render_template('edit_question.html',
                           question=current_question,
                           username=username)
Exemple #4
0
def A_down_up(answer_id):
    file_data = data_manager.read_answer(answer_id)
    file_data["vote_number"] = str(int(file_data["vote_number"]) - 1)
    data_manager.update_answer(answer_id, file_data)
    question_id = file_data["question_id"]
    question_data = data_manager.read_data('questions', str(question_id))
    question_data["view_number"] = str(int(question_data["view_number"]) - 1)
    data_manager.update_question(question_id, question_data)
    return redirect('/question/' + str(question_id))
Exemple #5
0
def question(question_id):
    file_data = data_manager.read_data('questions', int(question_id))
    file_data["view_number"] = str(int(file_data["view_number"]) + 1)
    data_manager.update_question(question_id, file_data)
    file_data["submission_time"] = datetime.fromtimestamp(int(file_data["submission_time"]))
    answers = data_manager.read_data("answers", question_id)
    for answer in answers:
        answer["submission_time"] = datetime.fromtimestamp(int(answer["submission_time"]))
    return render_template('question.html', id=question_id, data=file_data, answers=answers)
Exemple #6
0
def edit_question(question_id):
    if request.method == 'POST':
        update = request.form['message']
        data_manager.update_question(update, question_id)
        return redirect('/question/' + question_id)
    elif request.method == 'GET':
        question = data_manager.get_this_question(question_id)
        return render_template('edit_question.html',
                               question_id=question_id,
                               question=question)
def route_edit_question(question_id):
    edited_question = request.form.to_dict()
    if edited_question:
        data_manager.update_question(question_id, **edited_question)
        return redirect(
            url_for('route_question_display', question_id=question_id))
    question = data_manager.get_record_by_id("question", question_id)
    return render_template('add-edit.html',
                           data=question,
                           type='question',
                           id=question_id)
Exemple #8
0
def edit(question_id):
    question = data_manager.get_question_by_id(question_id)
    if request.method == 'GET':
        message = question['message']
        title = question['title']
        return render_template('edit.html', message=message, title=title)
    elif request.method == 'POST':
        title = request.form.get('title')
        message = request.form.get('message')
        data_manager.update_question(question_id, message, title)
        return redirect(url_for('get_question_list'))
Exemple #9
0
def edit_question(data_id):
    user_id = session['user_id']['id']
    question = data_manager.get_question_to_display(data_id)
    if request.method == 'POST':
        if user_id != question['user_id']:
            return render_template('error.html', error_message='Stop hacking!!!')
        else:
            data_manager.update_question(data_id, request.form['title'], request.form['message'])
            return redirect(url_for('route_show_details', question_id=data_id))

    return render_template('edit-question.html', question=question, data_id=data_id)
def edit_question(question_id):
    if request.method == 'GET':
        question = data_manager.get_question(question_id)
        return render_template('edit_question.html',
                               question_id=question_id,
                               question=question)
    elif request.method == 'POST':
        edited_question_title = request.form['title'].replace("'", "''")
        edited_question_message = request.form['message'].replace("'", "''")
        data_manager.update_question(question_id, edited_question_title,
                                     edited_question_message)
        return redirect(url_for('display_question', question_id=question_id))
Exemple #11
0
def route_update_question(question_id):
    questions_list = data_manager.question(question_id)

    if request.method == 'POST':
        submission_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        title = request.form['title']
        message = request.form['message']
        data_manager.update_question(question_id, submission_time, title,
                                     message)
        return redirect(url_for('route_question', question_id=question_id))
    return render_template('update_question.html',
                           question_id=question_id,
                           message=questions_list['message'],
                           title=questions_list['title'])
Exemple #12
0
def route_question_edit(id):
    edit = True
    action = '/show_question/' + id + '/edit'
    question = data_manager.one_question(id)
    if request.method == 'POST':
        title = request.form['title']
        description = request.form['message']
        data_manager.update_question(id, title, description, "question")
        return redirect('/show_question/' + id)
    return render_template('edit.html',
                           edit=edit,
                           question=question,
                           id=id,
                           action=action)
Exemple #13
0
def add_question(question_id):
    question_id = int(question_id)
    if request.method == 'POST':
        title = request.form['question_title']
        message = request.form['question']
        if question_id == -1:
            data_manager.add_question(title, message)
        else:
            data_manager.update_question(title, message, question_id)
        return redirect(url_for('list'))

    question = data_manager.get_question_by_id(question_id)
    return render_template('add_question.html',
                           question_id=question_id,
                           question=question)
Exemple #14
0
def route_counter_question(question_id, direction):
    question = data_manager.get_question_by_id(question_id)
    votes = int(question['vote_number'])
    votes += 1 if direction == 'up-vote' else -1
    updated_votes = {
        'id': question['id'],
        "submission_time": question["submission_time"],
        'view_number': question['view_number'],
        'vote_number': votes,
        'title': question['title'],
        'message': question['message'],
        'image': question['image']
    }
    data_manager.update_question(updated_votes)
    return redirect('/display/' + question_id)
Exemple #15
0
def update(question_id):
    file_data = data_manager.read_data("questions", question_id)

    if request.method == 'POST':
        question = {
            "id": question_id,
            "submission_time": file_data["submission_time"],
            "view_number": file_data['view_number'],
            "vote_number": file_data['vote_number'],
            "title": request.form.get('title'),
            "message": request.form.get("message"),
            "image": request.form.get("image")
        }
        data_manager.update_question(question_id, question)
        return redirect('/list')
    return render_template('edit.html', id=question_id, data=file_data)
Exemple #16
0
def route_edit_question(question_id):
    question_id_conv = int(question_id)
    global update_views
    update_views = False
    edit_me = True
    if request.method == 'POST':
        title = request.form['title']
        title = title.rstrip('?')
        message = request.form['message']
        message = util.make_compat_display(message, 'not_textarea')
        data_manager.update_question(question_id_conv, message, title)
        return redirect(url_for("route_index"))
    if request.method == 'GET':
        question = data_manager.display_question(question_id_conv)
        question[0]['message'] = util.make_compat_display(question[0]['message'], 'textarea')
        id_q = question[0]['id']
        return render_template('add_question.html', edit_me=edit_me, question=question, id_q=id_q)
Exemple #17
0
def edit_question(question_id):
    current_question = data_manager.get_question_by_id(question_id)

    if request.method == 'POST':
        updated_question = dict(request.form)
        image = request.files['image']
        if image.filename == "" or image.filename is None:
            updated_question['image'] = current_question["image"]
        else:
            image.save(
                os.path.join(app.config['IMAGE_UPLOADS'], image.filename))
            updated_question["image"] = image.filename
        data_manager.update_question(question_id, updated_question)
        return redirect("/")
    return render_template("add_question_or_answer.html",
                           question_id=question_id,
                           question=current_question)
Exemple #18
0
def edit_question(question_id):
    question = data_manager.get_question_by_question_id(question_id)
    question_id = question['id']
    if request.method == 'GET':
        try:
            return render_template('edit.html', question=question, question_id=question_id)
        except (IndexError, UndefinedError):
            abort(404)
    elif request.method == 'POST':
        submission_time = datetime.now().isoformat(timespec='seconds')
        title = request.form['title']
        message = request.form['message']
        image = request.form['image']
        if image == "":
            image = None
        data_manager.update_question(submission_time, title, message, image, question_id)
        return redirect(f'/question/{question_id}')
Exemple #19
0
def edit_route(question_id):
    if session.get('username') is not None:
        question_user_id=data_manager.find_userid_by_questionid(question_id)
        if question_user_id:
            if session['user_id'] == question_user_id['user_id'] or session['username'] == 'administrator':
                if request.method == "GET":
                    question = data_manager.get_question(question_id)
                    return render_template("edit-question.html", question=question, question_id=question_id)
                elif request.method == "POST":
                    title=request.form['title']
                    message=request.form['message']
                    data_manager.update_question("question",title,message,question_id)
                    return redirect(url_for('question_route', id=question_id))
            else:
                flash("You dont have acces","no_acces")
                return redirect(url_for('question_route', id=question_id))
    else:
        flash('You must login before using features', 'no_user')
        return redirect(url_for('question_route', id=question_id))
def edit_question(question_id):
    if authenticate_user():
        question = data_manager.get_question_by_id(question_id)

        if request.method == "GET":

            return render_template('add-question.html', question=question)
        elif request.method == 'POST':
            updated_details = request.form.to_dict()

            updated_question = {}
            for key in question.keys():
                updated_question[key] = updated_details[
                    key] if key in updated_details else question[key]

            data_manager.update_question(updated_question)

            return redirect(url_for('show_question', question_id=question_id))
    return redirect(url_for('login'))
Exemple #21
0
def edit_question(question_id):
    question_details = data_manager.get_display_question(question_id)
    if request.method == 'GET':
        return render_template("edit_question_new.html",
                               question=question_details)
    else:
        new_title = request.form['edittitle']
        new_message = request.form['editbody']
        file = request.files['editimage']
        filename = file.filename
        if filename != '':
            filename = os.path.join('static/', filename)
            file.save(filename)
            image = filename
        else:
            image = question_details['image']
        data_manager.update_question(question_id, new_title, new_message,
                                     image)
    return redirect('/question/' + question_id)
Exemple #22
0
def route_edit_question(question_id):
    question = data_manager.get_question_by_id(question_id)
    if request.method == 'GET':
        return render_template('ask.html',
                               question=question,
                               req_url=url_for('display.route_edit_question',
                                               question_id=question_id),
                               question_id=question_id)
    else:
        updated_question = {
            'id': question['id'],
            "submission_time": question["submission_time"],
            'view_number': question['view_number'],
            'vote_number': question['vote_number'],
            'title': request.form['title'],
            'message': request.form['message'],
            'image': question['image']
        }
        data_manager.update_question(updated_question)
        return redirect('/display/' + question_id)
def edit_question_post(question_id):
    edited_question = dict(request.form)

    uploaded_file = request.files.getlist('file')

    if len(uploaded_file[0].filename) != 0 or len(
            edited_question['image_url']) != 0:
        edited_question['image'] = 1
        data_manager.update_question(edited_question)
        if len(uploaded_file[0].filename) != 0:
            for file in uploaded_file:
                data_manager.add_question_image({
                    "question_id": question_id,
                    "image": swap_image(file)
                })
        if len(edited_question['image_url']) != 0:
            data_manager.add_question_image({
                "question_id":
                question_id,
                "image":
                edited_question['image_url']
            })

    else:
        if len(data_manager.get_question_pictures_paths(question_id)) == 0:
            edited_question['image'] = 0
            data_manager.update_question(edited_question)
        else:
            edited_question['image'] = 1
            data_manager.update_question(edited_question)

    return redirect(url_for("display_question", question_id=question_id))
Exemple #24
0
def route_edit_question(question_id):
    if request.method == 'POST':
        question = data_manager.get_question_by_id(question_id)
        # question['title'] = request.form['title']
        # question['message'] = request.form['message']
        image = ''

        if 'file' not in request.files:
            flash('No file part')
            return redirect(request.url)
        file = request.files['file']
        # if user does not select file, browser also
        # submit a empty part without filename
        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))

            image = filename

        values = [
            question_id, request.form['title'], request.form['message'], image
        ]

        # data_manager.add_question(values)

        data_manager.update_question(values)  #question_id, question,
        return redirect('/')
    else:

        # question_headers = data_manager.get_question_fields()[4:7]
        # return render_template('add-question.html', question_headers=question_headers)

        question = data_manager.get_question_by_id(question_id)
        return render_template('add-question.html',
                               id=question_id,
                               question=question)
Exemple #25
0
def edit_question(question_id):

    edited_question = {
        "id": question_id,
        "submission_time": util.get_current_time(),
        "view_number": 0,
        "vote_number": 0,
        "title": request.form.get("title"),
        "message": request.form.get("message"),
    }

    questions = data_manager.update_question(edited_question, question_id)

    return redirect(url_for("display_question", question_id=question_id))
Exemple #26
0
def route_edit_question(question_id):
    if request.method == "GET":
        tags = data_manager.read_tags()
        checked_tags = data_manager.get_checked_tags(question_id)
        question = data_manager.find_question_for_answer(question_id)
        action = "update"
        return render_template("ask-question.html",
                               question_id=question_id,
                               action=action,
                               question=question,
                               tags=tags,
                               checked_tags=checked_tags)
    if request.method == "POST":
        subject = request.form['title']
        text = request.form['text']
        new_tag = request.form['new_tag']
        # Finds selected tags.
        tag_ids = data_manager.get_list_of_tag_ids()
        selected_tags_list = []
        for tag_id in tag_ids:
            try:
                selected_tags = request.form[str(tag_id)]
                selected_tags_list.append(selected_tags)
            except KeyError:
                continue
        # If new tag not empty, adds it
        if new_tag != '':
            selected_tags_list.append(
                data_manager.add_tag_for_existing_question(
                    new_tag, question_id))
        # Compare new tags to old ones.
        data_manager.compare_new_tags_to_old_ones(selected_tags_list,
                                                  question_id)
        # Updates question data
        data_manager.update_question(question_id, subject, text)
        return redirect(url_for('route_question', question_id=question_id))
Exemple #27
0
def update_question(id, title, message, image):
    return data_manager.update_question(id, title, message, image)
Exemple #28
0
def Q_vote_down(question_id):
    file_data = data_manager.read_data('questions', question_id)
    file_data["vote_number"] = str(int(file_data["vote_number"]) - 1)
    data_manager.update_question(question_id, file_data)
    return redirect('/list')
Exemple #29
0
def edit_question_to_csv(question_id):
    question_id = int(question_id)
    title = request.form['title']
    message = request.form['message']
    data_manager.update_question(question_id, title, message)
    return redirect('/question/' + str(question_id))