示例#1
0
    def list_requests(self, status, sort_by = None, sort_descending = None):
        """ 
            Retrieve the list of requests
            
            PARAMETERS:
            * status: filter requests by status 
        """

        query = RequestEntity.all().filter('status =', status)
        sign = sort_descending and '-' or ''
        
        if sort_descending is None:
            sort_descending = False
        
        if sort_by == RequestSortOrder.REQUESTOR:
            requests = query.order('%srequestor' % sign).fetch(1000)
        elif sort_by == RequestSortOrder.RANK:
            requests = query.fetch(1000)
            requests.sort(key = lambda request: request.requestor.rank, reverse = sort_descending)
        elif sort_by == RequestSortOrder.CATEGORY:
            requests = query.fetch(1000)
            requests.sort(key = lambda request: request.category.category, reverse = sort_descending)
        elif sort_by == RequestSortOrder.SUBMITTED_ON:
            requests = query.order('%ssubmitted_on' % sign).fetch(1000)
        else:
            requests = query.fetch(1000)
        
        return requests