Exemplo n.º 1
0
def edit_task_action(calendar_id: str, year: int, month: int, day: int, task_id: int) -> Response:
    month_names = GregorianCalendar.MONTH_NAMES
    calendar_data = CalendarData(current_app.config['DATA_FOLDER'])

    repeats = request.args.get("repeats") == "1"
    try:
        if repeats:
            task = calendar_data.repetitive_task_from_calendar(
                calendar_id=calendar_id, year=year, month=month, task_id=int(task_id)
            )
        else:
            task = calendar_data.task_from_calendar(
                calendar_id=calendar_id, year=year, month=month, day=day, task_id=int(task_id)
            )
    except (FileNotFoundError, IndexError):
        abort(404)

    if task["details"] == " ":
        task["details"] = ""

    return cast(Response, render_template(
        "task.html",
        calendar_id=calendar_id,
        year=year,
        month=month,
        day=day,
        min_year=current_app.config['MIN_YEAR'],
        max_year=current_app.config['MAX_YEAR'],
        month_names=month_names,
        task=task,
        base_url=current_app.config['BASE_URL'],
        editing=True)
    )
Exemplo n.º 2
0
def test_existing_repetitive_task_retrieval(
        calendar_data: CalendarData) -> None:
    task_id = 2
    task = calendar_data.repetitive_task_from_calendar(
        calendar_id="sample_data_file", year=2017, month=11, task_id=task_id)
    assert task is not None
    assert task["id"] == task_id
    assert task["is_all_day"] is True
Exemplo n.º 3
0
def edit_task_action(calendar_id: str, year: int, month: int, day: int,
                     task_id: int) -> Response:
    month_names = GregorianCalendar.MONTH_NAMES
    calendar_data = CalendarData(current_app.config["DATA_FOLDER"],
                                 current_app.config["WEEK_STARTING_DAY"])

    repeats = request.args.get("repeats") == "1"
    try:
        if repeats:
            task = calendar_data.repetitive_task_from_calendar(
                calendar_id=calendar_id,
                year=year,
                month=month,
                task_id=int(task_id))
        else:
            task = calendar_data.task_from_calendar(
                calendar_id=calendar_id,
                year=year,
                month=month,
                day=day,
                task_id=int(task_id),
            )
    except (FileNotFoundError, IndexError):
        abort(404)

    if task["details"] == " ":
        task["details"] = ""

    emojis_enabled = current_app.config.get("EMOJIS_ENABLED", False)

    return cast(
        Response,
        render_template(
            "task.html",
            calendar_id=calendar_id,
            year=year,
            month=month,
            day=day,
            min_year=current_app.config["MIN_YEAR"],
            max_year=current_app.config["MAX_YEAR"],
            month_names=month_names,
            task=task,
            accounts=task["account"],
            base_url=current_app.config["BASE_URL"],
            editing=True,
            emojis_enabled=emojis_enabled,
            button_default_color_value=current_app.
            config["BUTTON_CUSTOM_COLOR_VALUE"],
            buttons_colors=current_app.config["BUTTONS_COLORS_LIST"],
            buttons_emojis=current_app.config["BUTTONS_EMOJIS_LIST"]
            if emojis_enabled else tuple(),
        ),
    )
Exemplo n.º 4
0
def change_amount_action(calendar_id: str, year: str, month: int, day: int,
                         task_id: int, new_amount: float) -> Response:
    print("ACTIONS -> CHANGE_AMOUNT_ACTION: ", new_amount, file=sys.stderr)
    calendar_data = CalendarData(current_app.config["DATA_FOLDER"],
                                 current_app.config["WEEK_STARTING_DAY"])
    repeats = False
    try:
        task = calendar_data.repetitive_task_from_calendar(
            calendar_id=calendar_id,
            year=year,
            month=month,
            task_id=int(task_id))
        repeats = True
    except (FileNotFoundError, IndexError):
        try:
            task = calendar_data.task_from_calendar(
                calendar_id=calendar_id,
                year=year,
                month=month,
                day=day,
                task_id=int(task_id),
            )

        except (FileNotFoundError, IndexError):
            abort(404)

    calendar_data.update_task_amount(calendar_id=calendar_id,
                                     year=year,
                                     month=month,
                                     day=day,
                                     task_id=int(task_id),
                                     new_amount='{0:.2f}'.format(
                                         float(new_amount)),
                                     repeats=repeats)

    return cast(Response, jsonify({}))
Exemplo n.º 5
0
def test_non_existing_repetitive_task_retrieval(
        calendar_data: CalendarData) -> None:
    with pytest.raises(IndexError):
        calendar_data.repetitive_task_from_calendar(
            calendar_id="sample_data_file", year=2017, month=11, task_id=111)