def fetch_tasks(self, user_id, group_id, worksheet_ids, assignee_ids): if group_id is not None: my_group_ids = ContactService.get_instance().fetch_my_groups(user_id, onlyrtnids=True) if group_id not in my_group_ids: raise UnauthorizedError() worksheet_ids = self.fetch_worksheet_ids(group_id, worksheet_ids=worksheet_ids) assignee_ids = self.fetch_assignee_ids(group_id, assignee_ids=assignee_ids) else: my_worksheet_ids = TaskService.get_instance().fetch_my_worksheets(user_id, onlyrtnids=True) worksheet_ids = list(set(worksheet_ids).intersection(set(my_worksheet_ids))) query = Task.all("a") query.what("a.uid") query.what("a.t_subject") query.what("a.due_startdate") query.what("a.due_finishdate") query.what("a.actual_progress") query.what("a.actual_startdate") query.what("a.actual_finishdate") query.what("a.t_status_code") query.what("a.assignee_id") if worksheet_ids != None and len(worksheet_ids) > 0: query.filter("a.worksheet_id in", worksheet_ids, wrapper=False) if assignee_ids != None and len(assignee_ids) > 0: query.filter("a.assignee_id in", assignee_ids, wrapper=False) tasks = query.fetch() return tasks
def delete_contact(self, contact_id, modifier_id): contact = Contact.get_by_key(int(contact_id)) if contact.is_trashed: contact.delete(modifier_id) self.delete_contactgroups(modifier_id, contact_id=contact_id) else: if contact.creator_id != modifier_id: raise Error("cont_error_deletesharedcontact") query = Task.all() query.filter("assignee_id =", contact_id) query.filter("is_trashed =", False) if query.count() > 0: raise Error('cont_error_assignedtasks') else: self.trash_contacts([contact.uid], True, modifier_id) return True