Beispiel #1
0
def edit_task():
    """
    Edits a to-do task from modal input.

    Can be a single task or multiple, related tasks.
    """

    edit_task = Post()
    edit_task.form = TaskForm()
    edit_task.task_to_be_edited = current_user.posts.filter_by(
        id=int(edit_task.form.ident.data)
    ).first()
    if not edit_task.form.validate_on_submit():
        return redirect(url_for("main.index", date_set="ph"))
    else:
        edit_task.calc_mins_height_and_end()
        if edit_task.form.single_event.data is True:
            if (
                edit_task.task_to_be_edited.exclude
                and edit_task.task_to_be_edited.exclude
                != int(edit_task.form.ident.data)
            ):
                edit_task.edit_single_task()
            else:
                edit_task.edit_single_freq_task()
        else:
            if edit_task.task_to_be_edited.exclude:
                edit_task.edit_all_freq_parent_and_child_tasks()
            else:
                edit_task.edit_all_tasks()
        db.session.commit()
        return jsonify({"id": edit_task.form.ident.data})
Beispiel #2
0
def new_task():
    """Creates a new todo task."""
    new_task = Post()
    new_task.form = TaskForm()
    if not new_task.form.validate_on_submit():
        return redirect(url_for("main.index", date_set="ph"))
    else:
        new_task.calc_mins_height_and_end()
        if new_task.minutes > new_task.end:
            return redirect(url_for("main.index", date_set="ph"))
        new_task.set_frequency()
        if new_task.form.frequency.data and new_task.form.to_date.data:
            new_task.to_date = convert_date_format(new_task.form.to_date.data)
            new_task.date = new_task.string_to_datetime(new_task.form.date.data)
            if new_task.to_date > new_task.date:
                new_task.add_multiple_tasks()
                flash("Your tasks are now live!", "success")
            else:
                return redirect(url_for("main.index", date_set="ph"))
        elif not new_task.form.to_date.data:
            task_to_be_added = new_task.add_single_task(
                date=new_task.string_to_datetime(new_task.form.date.data),
                frequency=new_task.form.frequency.data,
            )
            db.session.add(task_to_be_added)
            new_task.commit_flush()
            new_task.ident = task_to_be_added.id
            flash("Your task is now live!", "success")
        else:
            return redirect(url_for("main.index", date_set="ph"))
        return jsonify(
            {
                "minutes": new_task.minutes,
                "height": new_task.height,
                "task": new_task.form.task.data,
                "id": new_task.ident,
                "color": new_task.form.color.data,
                "frequency": new_task.form.frequency.data,
            }
        )