예제 #1
0
    def get(self, worklist_id):
        """Get items inside a worklist.

        :param worklist_id: The ID of the worklist.

        """
        worklist = worklists_api.get(worklist_id)
        user_id = request.current_user_id
        if not worklist or not worklists_api.visible(worklist, user_id):
            raise exc.NotFound(_("Worklist %s not found") % worklist_id)

        if worklist.automatic:
            return [wmodels.WorklistItem(**item)
                    for item in worklists_api.filter_items(worklist)]

        if worklist.items is None:
            return []

        worklist.items.sort(key=lambda i: i.list_position)

        visible_items = worklists_api.get_visible_items(
            worklist, current_user=request.current_user_id)
        return [
            wmodels.WorklistItem.from_db_model(item)
            for item in visible_items
        ]
예제 #2
0
    def get(self, worklist_id):
        """Get items inside a worklist.

        Example::

          curl https://my.example.org/api/v1/worklists/49/items

        :param worklist_id: The ID of the worklist.

        """
        worklist = worklists_api.get(worklist_id)
        user_id = request.current_user_id
        if not worklist or not worklists_api.visible(worklist, user_id):
            raise exc.NotFound(_("Worklist %s not found") % worklist_id)

        if worklist.automatic:
            return [
                wmodels.WorklistItem(**item)
                for item in worklists_api.filter_items(worklist)
            ]

        if worklist.items is None:
            return []

        worklist.items.order_by(models.WorklistItem.list_position)

        visible_items = worklists_api.get_visible_items(
            worklist, current_user=request.current_user_id)
        return [
            wmodels.WorklistItem.from_db_model(item) for item in visible_items
        ]
예제 #3
0
    def get(self, worklist_id):
        """Get items inside a worklist.

        Example::

          curl https://my.example.org/api/v1/worklists/49/items

        :param worklist_id: The ID of the worklist.

        """
        worklist = worklists_api.get(worklist_id)
        user_id = request.current_user_id
        if not worklist or not worklists_api.visible(worklist, user_id):
            raise exc.NotFound(_("Worklist %s not found") % worklist_id)

        if worklist.automatic:
            return [wmodels.WorklistItem(**item)
                    for item in worklists_api.filter_items(worklist)]

        if worklist.items is None:
            return []

        worklist.items.order_by(models.WorklistItem.list_position)

        visible_items = worklists_api.get_visible_items(
            worklist, current_user=request.current_user_id)
        return [
            wmodels.WorklistItem.from_db_model(item)
            for item in visible_items
        ]
예제 #4
0
 def _resolve_automatic_items(self, worklist, user_id):
     for item in worklists_api.filter_items(worklist):
         item_model = WorklistItem(**item)
         valid = item_model.resolve_item(item_model)
         if not valid:
             continue
         item_model.resolve_due_date(item_model)
         self.items.append(item_model)
     self.items.sort(key=lambda x: x.list_position)
예제 #5
0
 def _resolve_automatic_items(self, worklist, user_id):
     for item in worklists_api.filter_items(worklist):
         item_model = WorklistItem(**item)
         valid = item_model.resolve_item(item_model)
         if not valid:
             continue
         item_model.resolve_due_date(item_model)
         self.items.append(item_model)
     self.items.sort(key=lambda x: x.list_position)
예제 #6
0
 def _resolve_automatic_items(self, worklist, user_id):
     items, stories, tasks = worklists_api.filter_items(worklist, user_id)
     story_cache = {story.id: story for story in stories}
     task_cache = {task.id: task for task in tasks}
     for item in items:
         item_model = WorklistItem(**item)
         valid = item_model.resolve_item(item_model, story_cache,
                                         task_cache, due_dates=False)
         if not valid:
             continue
         item_model.resolved_due_date = None
         self.items.append(item_model)
예제 #7
0
 def _resolve_automatic_items(self, worklist, user_id):
     items, stories, tasks = worklists_api.filter_items(worklist, user_id)
     story_cache = {story.id: story for story in stories}
     task_cache = {task.id: task for task in tasks}
     for item in items:
         item_model = WorklistItem(**item)
         valid = item_model.resolve_item(item_model,
                                         story_cache,
                                         task_cache,
                                         due_dates=False)
         if not valid:
             continue
         item_model.resolved_due_date = None
         self.items.append(item_model)
예제 #8
0
    def get(self, worklist_id):
        """Get items inside a worklist.

        :param worklist_id: The ID of the worklist.

        """
        worklist = worklists_api.get(worklist_id)
        user_id = request.current_user_id
        if not worklist or not worklists_api.visible(worklist, user_id):
            raise exc.NotFound(_("Worklist %s not found") % worklist_id)

        if worklist.automatic:
            return [wmodels.WorklistItem(**item) for item in worklists_api.filter_items(worklist)]

        if worklist.items is None:
            return []

        worklist.items.sort(key=lambda i: i.list_position)

        visible_items = worklists_api.get_visible_items(worklist, current_user=request.current_user_id)
        return [wmodels.WorklistItem.from_db_model(item) for item in visible_items]