Пример #1
0
def tasks():
    while True:
        option = prompts.prompt_options(get_msg("Choose a Task Option"), [
            "new", "edit", "delete", None, "list", "test", "prime", None,
            "back to menu"
        ],
                                        print_options=False,
                                        menu_style=True,
                                        menu_title=get_title("Tasks"))

        if option == "new":
            task.task_creator(task.Task())

        elif option == "edit":
            task.edit_task()

        elif option == "delete":
            task.delete_task()

        elif option == "list":
            task.list_tasks(pause_after=1)

        elif option == "test":
            test_task()

        elif option == "prime":
            prime_task()

        elif option == "back to menu":
            return

        else:
            print(f"'{option}' not implemented.")
Пример #2
0
def create_tasks():
    form = TaskForm()

    form.source.choices = get_source_choices()
    form.notification_agent.choices = get_notification_agents_choices()

    if form.validate_on_submit():
        task = Task(name=form.name.data,
                    frequency=form.frequency.data,
                    source=form.source.data,
                    notification_agent=form.notification_agent.data,
                    colour_flag=form.colour_flag.data,
                    must_contain=form.must_contain.data,
                    exclude=form.exclude.data)
        db.session.add(task)
        db.session.commit()

        cron.add(int(form.frequency.data), "minutes")

        ## Need to get the task that was just created to send for priming.
        prime_task = prime.Task(source_ids=[form.source.data],
                                notif_agent_ids=[form.notification_agent.data],
                                include=[form.must_contain.data],
                                exclude=[form.exclude.data])
        prime.prime(prime_task,
                    notify=True,
                    recent_ads=int(form.prime_count.data))

        flash('Your task has been created!', 'top_flash_success')
        return redirect(url_for('main.tasks'))
    return render_template('create-task.html',
                           title='Create a Task',
                           form=form,
                           legend='Create a Task')
Пример #3
0
def to_new_core_task(task_model):
    t = deepcopy(task_model)

    if not isinstance(t.source, list):
        t.source = [t.source]

    if not isinstance(t.notification_agent, list):
        t.notification_agent = [t.notification_agent]

    return task.Task(name=t.name,
                     id=t.id,
                     frequency=t.frequency,
                     frequency_unit="minutes",
                     source_ids=t.source,
                     notif_agent_ids=t.notification_agent,
                     include=t.must_contain.split(","),
                     exclude=t.exclude.split(","))
Пример #4
0
def create_tasks():
    State.load()

    form = TaskForm()
    sourceform = AddSourceForm()
    notificationagentform = AddNotificationAgentForm()

    sourceform.source_select.choices = get_source_choices()
    notificationagentform.notification_agent_select.choices = get_notification_agents_choices(
    )

    if form.colour_flag.data == "":
        cf = "#ff8c00"
    else:
        cf = form.colour_flag.data


#    if form.validate_on_submit():
    if form.submit.data:
        source_list = sorted(request.form.getlist('source_select'), key=int)
        for i in range(0, len(source_list)):
            source_list[i] = int(source_list[i])
        source_list = list(set(source_list))

        notification_agent_list = sorted(
            request.form.getlist('notification_agent_select'), key=int)
        for i in range(0, len(notification_agent_list)):
            notification_agent_list[i] = int(notification_agent_list[i])
        notification_agent_list = list(set(notification_agent_list))

        new_task = Task(name=form.name.data,
                        frequency=form.frequency.data,
                        source=source_list,
                        notification_agent=notification_agent_list,
                        colour_flag=cf,
                        must_contain=form.must_contain.data,
                        exclude=form.exclude.data)

        db.session.add(new_task)
        db.session.commit()

        State.refresh_tasks()
        cron.add(int(form.frequency.data), "minutes")

        if form.prime_count.data:
            prime = form.prime_count.data
        else:
            prime = 0

        prime_task = task.Task(source_ids=source_list,
                               notif_agent_ids=notification_agent_list,
                               include=[form.must_contain.data],
                               exclude=[form.exclude.data],
                               colour_flag=form.colour_flag.data)
        task.prime(prime_task, notify=True, recent_ads=int(prime))

        flash('Your task has been created!', 'top_flash_success')

        return redirect(url_for('main.tasks'))
    return render_template('create-task.html',
                           title='Create a Task',
                           form=form,
                           sourceform=sourceform,
                           notificationagentform=notificationagentform,
                           action='create',
                           legend='Create a Task')