Esempio n. 1
0
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)
Esempio n. 2
0
    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")
Esempio n. 3
0
    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'
Esempio n. 4
0
    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'
Esempio n. 5
0
    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")
Esempio n. 6
0
    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")
Esempio n. 7
0
    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")