def delete_task(self, task_id, modifier_id): task = Task.get_by_key(int(task_id)) if task.is_trashed: tag.delete_tagmodels(modifier_id, model_nk=(Task.get_modelname(), task.uid), modifier_id=modifier_id) filex.delete_files(task.creator_id, model_nk=(Task.get_modelname(), task.uid), modifier_id=modifier_id) self.delete_taskcomments(task_id, modifier_id) self.delete_taskversions(modifier_id, task_id=task.key(), is_affected=None) self.delete_taskcomponents(modifier_id, task_id=task.key()) mclog.delete_mclogs(Task.get_modelname(), task.key(), modifier_id) task.delete(modifier_id) else: if task.creator_id != modifier_id: raise Error("task_error_deletesharedtask") self.trash_tasks([task.uid], True, modifier_id) return True
def empty_trash(self, user_id, modifier_id): query = Task.all() query.filter("is_trashed =", True) query.filter("creator_id =", user_id) tasks = query.fetch() for task in tasks: self.delete_task(task.key(), modifier_id) return True
def delete_worksheet(self, worksheet_id, modifier_id): worksheet = Worksheet.get_by_key(worksheet_id) worksheet.delete(modifier_id) query = Task.all() query.filter("worksheet_id =", worksheet_id) query.set("worksheet_id", EMPTY_UID) query.set("is_trashed", True) query.update(modifier_id) query = Worksheet.all() return True
def fetch_tasks(self, user_id, whats=None, filters=None, limit=20, offset=0): def append_filters(query): for ft in filters: for (key, value) in ft.items(): for nr in TASKRESOLVERS: nrinst = nr(key, value) query.extend(nrinst, user_id=user_id) if whats == None: query = Task.all(alias="a") for key in Task.get_properties(persistent=True).keys(): query.what("a.%s" % key, alias=key) else: query = stdModel.all() query.model(Task.get_modelname(), alias="a") for what in whats: query.what("a.%s" % what, alias=what) query.select("DISTINCT") query.what("a.uid", alias="uid") worksheet_ids = self.fetch_my_worksheets(user_id, onlyrtnids=True) if len(worksheet_ids) > 0: query.filter("a.worksheet_id in", worksheet_ids, parenthesis="(") query.filter("a.creator_id =", user_id, logic="or", parenthesis=")") else: query.filter("a.creator_id =", user_id) query.order("-a.uid") if filters is not None: append_filters(query) if not query.has_filter("a.is_trashed"): query = query.filter("a.is_trashed =", False) def task_proc(task): task.mclogs = mclog.fetch_mclogs(Task.get_modelname(), task.key(), worksheet_id=self.get_worksheet_name, assignee_id=ContactService.get_instance().get_contact_name) task.taskComments = self.fetch_taskcomments(task.key()) pager = query.fetch(limit, offset, paging=True, model_proc=task_proc) return pager
def get_taskcount(self, is_trashed, user_id, worksheet_id=None, is_complete=None , ex_assignee_id=None): query = Task.all() query.filter("is_trashed =", is_trashed) if worksheet_id != None and worksheet_id != model.EMPTY_UID: query.filter("worksheet_id =", worksheet_id) elif worksheet_id == model.EMPTY_UID: query.filter("worksheet_id =", worksheet_id) query.filter("creator_id =", user_id) else: query.filter("creator_id =", user_id) if is_complete != None and is_complete == True: query.filter("t_status_code =", 'task_code_closed') if is_complete != None and is_complete != True: query.filter("t_status_code !=", 'task_code_closed') if ex_assignee_id != None: query.filter("assignee_id !=", ex_assignee_id) return query.count()
def update_task(self, task, modifier_id): nt = Task.get_by_key(task.uid) if task.creator_id != modifier_id and nt.worksheet_id != task.worksheet_id: raise Error("task_error_movesharedtask") if nt.is_trashed : raise Error("task_error_trashed_update") if task.t_status_code == 'task_code_closed': task.actual_finishdate = dtutil.localtoday(conf.get_preferred_timezone()) if nt.actual_startdate is None: task.actual_startdate = dtutil.localtoday(conf.get_preferred_timezone()) else: task.actual_finishdate = None if task.t_status_code == 'task_code_inprogress' and nt.t_status_code != 'task_code_inprogress' and task.actual_startdate != None: task.actual_startdate = dtutil.localtoday(conf.get_preferred_timezone()) task.put(modifier_id) self.create_taskcomponents(task.key(), task.component_ids, modifier_id) self.create_taskversions(task.key(), task.affected_version_ids, True, modifier_id) self.create_taskversions(task.key(), task.fixed_version_ids, False, modifier_id) return task
def trash_tasks(self, task_ids, is_trashed, modifier_id): for task_id in task_ids: task = Task.get_by_key(task_id) task.is_trashed = is_trashed task.put(modifier_id) return True
def get_task(self, task_id): task = Task.get_by_key(task_id) return task
def __init__(self, **kwa): Task.__init__(self) PeakProjector.__init__(self, **kwa)
def __init__(self, **kwa): GELSPeakAlignment.__init__(self, **kwa) Task.__init__(self, **kwa)
def __init__(self, **kwa): MinBiasPeakAlignment.__init__(self, **kwa) Task.__init__(self, **kwa)
def __init__(self, **kwa): Task.__init__(self) super().__init__(**kwa)
def __init__(self, **_): Task.__init__(self, **_) FixedBeadDetection.__init__(self, **_)
def __init__(self, **kw) -> None: EventDetectionConfig.__init__(self, **kw) Task.__init__(self)
def task_proc(task): task.mclogs = mclog.fetch_mclogs(Task.get_modelname(), task.key(), worksheet_id=self.get_worksheet_name, assignee_id=ContactService.get_instance().get_contact_name) task.taskComments = self.fetch_taskcomments(task.key())
def recover_task(self, task_id, worksheet_id, modifier_id): task = Task.get_by_key(task_id) task.is_trashed = False task.worksheet_id = worksheet_id task.put(modifier_id) return task
def move_task(self, task_id, worksheet_id, modifier_id): task = Task.get_by_key(task_id) task.worksheet_id = int(worksheet_id) task.put(modifier_id) return task
def __init__(self, **kwa): Task.__init__(self) PeakSelector.__init__(self, **kwa)
def __init__(self, **kwa): Task.__init__(self) EventDetectionConfig.__init__(self, **kwa)