示例#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
示例#2
0
 def find_request(self, id):
     ''' Find a request by its id '''
     id = int(id)
     
     return RequestEntity.get_by_id(id)
示例#3
0
 def create_request(self, category_id, subject, notes):
     ''' Create a new request '''
     request = RequestEntity.create(requestor = self._requestor_key, category_id = category_id, subject = subject, notes = notes)
     request.put()
     return request