def tactions(): default = request.vars.current_page or URL('task_group', user_signature=True) action = request.vars.action if not action or action == 'none': session.flash = "No action selected" redirect(default) if not request.vars.t_records: session.flash = "No tasks selected" redirect(default) if isinstance(request.vars.t_records, str): t = [request.vars.t_records] else: t = request.vars.t_records if action == 'disable': rtn = dbs(st.id.belongs(t)).update(enabled=False) if rtn: session.flash = "%s tasks disabled correctly" % rtn else: session.flash = "No tasks disabled" redirect(default) elif action == 'enable': rtn = dbs(st.id.belongs(t)).update(enabled=True) if rtn: session.flash = "%s tasks enabled correctly" % rtn else: session.flash = "No tasks enabled" redirect(default) elif action == 'delete': rtn = dbs(st.id.belongs(t)).delete() if rtn: session.flash = "%s tasks deleted" % rtn else: session.flash = "No tasks deleted" redirect(default) elif action == 'clone': requeued = [] tasks = dbs(st.id.belongs(t)).select() for row in tasks: res = requeue_task(st, row) if res: requeued.append(requeued) if requeued: session.flash = "%s tasks successfully requeued" % (len(requeued)) else: session.flash = "Cloning failed" elif action == 'stop': stopped = [] tasks = dbs(st.id.belongs(t)).select() for row in tasks: res = s.stop_task(row.id) if res == 1: stopped.append(res) if stopped: session.flash = "%s tasks successfully stopped" % (len(stopped)) else: session.flash = "Stopping failed" redirect(default)
def edit_task(): task_id = request.args(0) if task_id is None: return '' try: task_id = int(task_id) except: return '' task = dbs(st.id == task_id).select().first() if not task and task_id != 0: return '' if request.args(1) == 'delete': task.delete_record() session.flash = 'Task deleted correctly' redirect(URL('index')) elif request.args(1) == 'stop': rtn = s.stop_task(task.id) if rtn == 1: session.flash = 'Task stopped' else: session.flash = 'Nothing to do...' redirect(URL('task_details', args=task.id, user_signature=True)) elif request.args(1) == 'clone': result = requeue_task(st, task) if result: session.flash = 'Task requeued correctly' redirect(URL('task_details', args=result, user_signature=True)) else: session.flash = 'Task clone failed' redirect(URL('edit_task', args=task_id, user_signature=True)) elif request.args(1) == 'new': if task_id != 0: st.function_name.default = task.function_name st.task_name.default = task.task_name st.group_name.default = task.group_name task = None form = SQLFORM(st, task, formstyle=mybootstrap) if form.process().accepted: if request.args(1) == 'new': response.flash = 'Task created correctly' else: response.flash = 'Updated correctly' elif form.errors: response.flash = 'Errors detected' return dict(form=form, task=task)