def clear_assignee_index(task): index = AssigneeIndex.get_by_key_name(task.identifier(), parent=task) if index: db.delete(index) task.assignee_index_sequence = 0 yield op.db.Put(task)
def post(self): domain_identifier = self.request.get('domain') task_identifier = self.request.get('task') task = api.get_task(domain_identifier, task_identifier) if not task: logging.error("No task '%s/%s'", domain_identifier, task_identifier) return index = AssigneeIndex.get_by_key_name(task.identifier(), parent=task) if not index: logging.error("No assignee index for task '%s'", task) return assignees = index.assignees description = "" if len(assignees) == 1: user = api.get_user_from_identifier(assignees[0]) description = user.name elif len(assignees) == 2: user0 = api.get_user_from_identifier(assignees[0]) user1 = api.get_user_from_identifier(assignees[1]) description = "%s, %s" % (user0.name, user1.name) elif len(assignees) > 2: user = api.get_user_from_identifier(assignees[0]) description = "%s and %d others" % (user, len(assignees) - 1) task.baked_assignee_description = description task.put()
def txn(): index = AssigneeIndex.get_by_key_name(task.identifier(), parent=task) if index: return instance = api.get_task(task.domain_identifier(), task.identifier()) if instance.assignee_key(): workers.UpdateAssigneeIndex.queue_worker( instance, add_assignee=instance.assignee_identifier())
def _get_index(task): index = AssigneeIndex.get_by_key_name(task.identifier(), parent=task) if not index: index = AssigneeIndex(key_name=task.identifier(), parent=task) return index