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.")
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')
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(","))
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')