def delete_element(element_type, element_id):
    data = connection.read_file(f'{element_type}.csv')
    updated_data = [
        data_element for data_element in data
        if data_element['id'] != element_id
    ]
    connection.write_file(updated_data, f'{element_type}.csv')

    # if quesiton is deleted - also delete corresponding answers
    if element_type == "questions":
        answers = connection.read_file('answers.csv')
        updated_answers = [
            answer for answer in answers if answer['question_id'] != element_id
        ]
        connection.write_file(updated_answers, 'answers.csv')
Exemple #2
0
def update_question(id, form_data):
    questions = connection.read_file()
    for question in questions:
        if question['id'] == id:
            question['title'] = form_data['title']
            question['message'] = form_data['description']
    connection.write_file(questions)
Exemple #3
0
def get_question_by_id(id):
    questions = connection.read_file()
    for question in questions:
        if question['id'] == id:
            formatted_question = util.convert_time_value_to_formatted_string(
                question)
            return formatted_question
Exemple #4
0
def change_vote(file_type, id, change_step):
    data = connection.read_file(f"{file_type}.csv")
    for element in data:
        if element['id'] == id:
            element['vote_number'] = str(
                int(element['vote_number']) + change_step)
    connection.write_file(data, f"{file_type}.csv")
Exemple #5
0
def get_all_questions():
    questions = connection.read_file()
    sorted_questions = sorted(questions,
                              key=lambda k: k['submission_time'],
                              reverse=True)
    questions_with_proper_date_format = map(
        util.convert_time_value_to_formatted_string, sorted_questions)
    return questions_with_proper_date_format
Exemple #6
0
def get_answers_by_question_id(id):
    answers = connection.read_file('answers.csv')
    answers_to_question = []
    for answer in answers:
        if answer['question_id'] == id:
            answer_with_proper_date_format = util.convert_time_value_to_formatted_string(
                answer)
            answers_to_question.append(answer_with_proper_date_format)
    return answers_to_question
Exemple #7
0
def sort_questions(order_by, order_direction):
    questions = connection.read_file()
    sort_type = True if order_direction == 'asc' else False
    sorted_questions = sorted(questions,
                              key=lambda k: k[order_by],
                              reverse=sort_type)
    questions_with_proper_date_format = map(
        util.convert_time_value_to_formatted_string, sorted_questions)
    return questions_with_proper_date_format
Exemple #8
0
def delete_element(element_type, element_id):

    # delete file if exists
    data = connection.read_file(f'{element_type}.csv')
    try:
        deleted_element_img_path = [
            element['image'] for element in data if element['id'] == element_id
        ][0]
        file_name = deleted_element_img_path.split("/")[1]
        if file_name:
            os.remove(f"static/images/{file_name}")
    except IndexError:
        pass

    # delete element
    updated_data = [
        data_element for data_element in data
        if data_element['id'] != element_id
    ]
    connection.write_file(updated_data, f'{element_type}.csv')

    # if question is deleted - also delete corresponding answers
    if element_type == "questions":
        answers = connection.read_file('answers.csv')

        # delete answer's image
        img_paths_of_deleted_answers = [
            answer['image'] for answer in answers
            if answer['question_id'] == element_id
        ]
        for img_path in img_paths_of_deleted_answers:
            try:
                file_name = img_path.split("/")[1]
                if file_name:
                    os.remove(f"static/images/{file_name}")
            except IndexError:
                pass

        # delete answer
        updated_answers = [
            answer for answer in answers if answer['question_id'] != element_id
        ]
        connection.write_file(updated_answers, 'answers.csv')
Exemple #9
0
def add_answer(form_data, id):
    answers = connection.read_file('answers.csv')
    new_answer = {
        'id': uuid.uuid4(),
        'submission_time': time.time(),
        'vote_number': 0,
        'question_id': id,
        'message': form_data['answer'],
        'image': None
    }
    answers.append(new_answer)
    connection.write_file(answers, 'answers.csv')
def add_answer(form_data, id):
    answers = connection.read_file('answers.csv')
    new_answer = {
        'id': uuid.uuid4(),
        'submission_time': time.time(),
        'vote_number': 0,
        'question_id': id,
        'message': form_data['answer'],
        'image': 'static/placeimg_640_480_grayscale_tech.jpg'
    }
    answers.append(new_answer)
    connection.write_file(answers, 'answers.csv')
Exemple #11
0
def add_question(form_data):
    questions = connection.read_file()
    new_question = {
        'id': uuid.uuid4(),
        'title': form_data['title'],
        'message': form_data['description'],
        'submission_time': time.time(),
        'view_number': 0,
        'vote_number': 0,
        'image': None
    }
    questions.append(new_question)
    connection.write_file(questions, 'questions.csv')
def add_question(form_data):
    questions = connection.read_file()
    new_question = {
        'id': uuid.uuid4(),
        'title': form_data['title'],
        'message': form_data['description'],
        'submission_time': time.time(),
        'view_number': 0,
        'vote_number': 0,
        'image': 'static/placeimg_640_480_grayscale_tech.jpg'
    }
    questions.append(new_question)
    connection.write_file(questions, 'questions.csv')
Exemple #13
0
def get_all_answers():
    a_list = connection.read_file('answers.csv')
    return a_list
Exemple #14
0
def question_view_count_increase(id):
    questions = connection.read_file()
    for question in questions:
        if question['id'] == id:
            question['view_number'] = str(int(question['view_number']) + 1)
    connection.write_file(questions)
Exemple #15
0
def update_image(file_type, filename, id):
    data = connection.read_file(f"{file_type}.csv")
    for element in data:
        if element['id'] == id:
            element['image'] = 'images/' + filename
    connection.write_file(data, f"{file_type}.csv")