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