def delete_for_program(entity): """Permanently delete anything in the datastore from a program. Works with Projects, ProjectCohorts, and Surveys. Also requires a param set in mapreduce.yaml: `program_label`. """ params = context.get().mapreduce_spec.mapper.params if getattr(entity, 'program_label', None) != params['program_label']: return # If this is a project cohort, delete the Unique entity that serves as an # index of participation codes. key_name = ProjectCohort.uniqueness_key(getattr(entity, 'code', '')) unique_entity = ndb.Key('Unique', key_name).get() if unique_entity: yield op.db.Delete(unique_entity) # Some entities have tasks in their entity group. There's no convenient # way to query tasks directly, so delete them while we're handling their # parent. # Bypass DatastoreModel to make sure we get soft-deleted entities. for task in Task.query(ancestor=entity.key).iter(): yield op.db.Delete(task) yield op.db.Delete(entity)
def get(self): print("get finish task request") task_id = self.request.get(IDENTIFIER_TASK_ID) total_cost = self.request.get(IDENTIFIER_TOTAL_COST) user_email = self.request.get(IDENTIFIER_USER_EMAIL) total_cost = float(total_cost) print("get cost " + str(total_cost)) tasks = Task.query(Task.task_id == task_id).fetch() task = tasks[0] print("Found the task " + task.task_name) if task.finished: response = {} response['error'] = 'the task has already been finished' return self.respond(**response) if user_email != task.charger_email: response = {} response['error'] = 'the task has been assigned to other roommate' return self.respond(**response) task.finished = True task.put() item_id = str(uuid.uuid4()) sharer_lst = task.candidate_lst # sharer_lst.remove(task.charger_email) # newly removed this line print("creating item ") new_Item = Item(item_id=item_id, cover_url=str(task.photo_blobkey), expense_id=task.expense_id, total_cost=total_cost, buyer_email=task.charger_email, sharer_email_lst=sharer_lst, item_name=task.task_name) new_Item.put() expenses = Expense.query(Expense.expense_id == task.expense_id).fetch() if len(expenses) == 0: print("cannot find the expense") else: expense = expenses[0] item_ids = expense.item_id_lst item_ids.append(item_id) expense.item_id_lst = item_ids expense.put() print("done ") self.respond(item_name=task.task_name, item_id=task.task_id, status="Success")
def post(self): print 'UploadImageService >> get upload image request ', str(len(self.get_uploads())) if len(self.get_uploads())!=0: blobkey = "" for upload in self.get_uploads(): blobkey = upload.key() task_id = self.request.get(IDENTIFIER_TASK_ID) tasks = Task.query(Task.task_id == task_id).fetch() target_task = tasks[0] target_task.photo_blobkey = blobkey target_task.put() print 'UploadImageService >> image upload success'
def post(self): print 'UploadImageService >> get upload image request ', str( len(self.get_uploads())) if len(self.get_uploads()) != 0: blobkey = "" for upload in self.get_uploads(): blobkey = upload.key() task_id = self.request.get(IDENTIFIER_TASK_ID) tasks = Task.query(Task.task_id == task_id).fetch() target_task = tasks[0] target_task.photo_blobkey = blobkey target_task.put() print 'UploadImageService >> image upload success'
def get(self): print("get finish task request") task_id = self.request.get(IDENTIFIER_TASK_ID) total_cost = self.request.get(IDENTIFIER_TOTAL_COST) user_email = self.request.get(IDENTIFIER_USER_EMAIL) total_cost = float(total_cost) print("get cost " + str(total_cost)) tasks = Task.query(Task.task_id == task_id).fetch() task = tasks[0] print("Found the task " + task.task_name) if task.finished: response = {} response['error'] = 'the task has already been finished' return self.respond(**response) if user_email != task.charger_email: response = {} response['error'] = 'the task has been assigned to other roommate' return self.respond(**response) task.finished = True task.put() item_id = str(uuid.uuid4()) sharer_lst = task.candidate_lst # sharer_lst.remove(task.charger_email) # newly removed this line print("creating item ") new_Item = Item(item_id = item_id, cover_url = str(task.photo_blobkey), expense_id = task.expense_id, total_cost = total_cost, buyer_email = task.charger_email, sharer_email_lst = sharer_lst, item_name = task.task_name) new_Item.put() expenses = Expense.query(Expense.expense_id == task.expense_id).fetch() if len(expenses) == 0: print("cannot find the expense"); else: expense = expenses[0] item_ids = expense.item_id_lst item_ids.append(item_id) expense.item_id_lst = item_ids expense.put() print("done ") self.respond(item_name = task.task_name, item_id = task.task_id, status="Success")
def get(self): task_id = self.request.get(IDENTIFIER_TASK_ID) user_email = self.request.get(IDENTIFIER_USER_EMAIL) tasks = Task.query(Task.task_id == task_id).fetch() task = tasks[0] if not user_email in task.candidate_lst: response = {} response['error'] = 'the email: ' + user_email + ' is not valid for this task' return self.respond(**response) users = User.query(User.user_email == user_email).fetch() user = users[0] user.tasks_list.append(task_id) user.put() task.assigned = True task.charger_email = user_email task.put() self.respond(status="Success")
def get(self): task_id = self.request.get(IDENTIFIER_TASK_ID) user_email = self.request.get(IDENTIFIER_USER_EMAIL) tasks = Task.query(Task.task_id == task_id).fetch() task = tasks[0] if not user_email in task.candidate_lst: response = {} response[ 'error'] = 'the email: ' + user_email + ' is not valid for this task' return self.respond(**response) users = User.query(User.user_email == user_email).fetch() user = users[0] user.tasks_list.append(task_id) user.put() task.assigned = True task.charger_email = user_email task.put() self.respond(status="Success")
def get(self): tasks = Task.query().fetch() tasks = [t.to_dct() for t in tasks] self.response.write(json.dumps(tasks))
def get(self): ndb.delete_multi( Project.query().fetch(keys_only=True) ) ndb.delete_multi( Quest.query().fetch(keys_only=True) ) ndb.delete_multi( Task.query().fetch(keys_only=True) ) project = Project(name="project 01", progress=0, description="descricao", xp=100) project.put() quest = Quest(name="quest 01", description="description", xp=30, deadline="2013-11-21", progress=0, projectKey=project.key) quest.put() task = Task(name="task 01", done="false", xp=15, progress=50, questKey=quest.key) task.put() task = Task(name="task 02", done="false", xp=15, progress=50, questKey=quest.key) task.put() quest = Quest(name="quest 02", description="description", xp=30, deadline="2013-12-10", progress=0, projectKey=project.key) quest.put() task = Task(name="task 01", done="false", xp=15, progress=50, questKey=quest.key) task.put() task = Task(name="task 02", done="false", xp=15, progress=50, questKey=quest.key) task.put() quest = Quest(name="quest 03", description="description", xp=30, deadline="2014-01-10", progress=0, projectKey=project.key) quest.put() task = Task(name="task 01", done="false", xp=15, progress=50, questKey=quest.key) task.put() task = Task(name="task 02", done="false", xp=15, progress=50, questKey=quest.key) task.put() self.response.write("ok")