def _execute(self):
     try:
         status = self.parameters['status']
     except KeyError:
         status = RequestStatus.NONE
         
     try:
         sort_order = self.parameters['sort_by'].upper()
     except KeyError:
         sort_order = None
     
     try:
         sort_descending = self.parameters['sort_desc']
     except KeyError:
         sort_descending = False
     
     request_manager = ResponderRequestManager()
     requests = request_manager.list_requests(status = status, sort_by = sort_order, sort_descending = sort_descending)
     
     json = self.jsonize_jqgrid(requests)
     return self.render_content(json)
Esempio n. 2
0
class _RequestHandler(webapp.RequestHandler):
    def initialize(self, request, response):
        super(_RequestHandler, self).initialize(request, response)
        self._request_manager = ResponderRequestManager()

    def _load_request(self, *args):
        # Extract the request id from the path
        path_params = sequential_list_to_map(args)
        if path_params.has_key('id'):
            id = path_params['id']
            self._request = self._request_manager.find_request(id)
        else:
            self._request = None
Esempio n. 3
0
    def setUp(self):
        super(Test_ManageResponderRequests, self).setUp()
        
        (self._category_1, self._category_2) = helpers.create_dummy_request_categories()

        # Create 2 requestors
        self._requestor_manager_1 = helpers.create_dummy_requestor(1)
        request_manager_1 = RequestorRequestManager(self._requestor_manager_1.get_requestor())
        
        self._requestor_manager_2 = helpers.create_dummy_requestor(2)
        request_manager_2 = RequestorRequestManager(self._requestor_manager_2.get_requestor())

        # Create 7 requests, mixing the 2 requestors
        helpers.create_dummy_request(request_manager_1, 1) 
        helpers.create_dummy_request(request_manager_2, 2) 
        helpers.create_dummy_request(request_manager_1, 3) 
        helpers.create_dummy_request(request_manager_2, 4) 
        helpers.create_dummy_request(request_manager_1, 5) 
        helpers.create_dummy_request(request_manager_2, 6) 
        helpers.create_dummy_request(request_manager_1, 7)
        
        self._request_manager = ResponderRequestManager()
Esempio n. 4
0
 def initialize(self, request, response):
     super(_RequestHandler, self).initialize(request, response)
     self._request_manager = ResponderRequestManager()
Esempio n. 5
0
class Test_ManageResponderRequests(BaseAppengineDatastoreTester):
    """
        Request management tests for responders 
    """
    def setUp(self):
        super(Test_ManageResponderRequests, self).setUp()
        
        (self._category_1, self._category_2) = helpers.create_dummy_request_categories()

        # Create 2 requestors
        self._requestor_manager_1 = helpers.create_dummy_requestor(1)
        request_manager_1 = RequestorRequestManager(self._requestor_manager_1.get_requestor())
        
        self._requestor_manager_2 = helpers.create_dummy_requestor(2)
        request_manager_2 = RequestorRequestManager(self._requestor_manager_2.get_requestor())

        # Create 7 requests, mixing the 2 requestors
        helpers.create_dummy_request(request_manager_1, 1) 
        helpers.create_dummy_request(request_manager_2, 2) 
        helpers.create_dummy_request(request_manager_1, 3) 
        helpers.create_dummy_request(request_manager_2, 4) 
        helpers.create_dummy_request(request_manager_1, 5) 
        helpers.create_dummy_request(request_manager_2, 6) 
        helpers.create_dummy_request(request_manager_1, 7)
        
        self._request_manager = ResponderRequestManager()
        
    def test_retrieve_unassigned_requests(self):
        """ Verify that all open requests are correctly retrieved """
        requests = self._request_manager.list_requests(RequestStatus.UNASSIGNED)
        
        self.assertEqual(len(requests), 7)
        
        for request in requests:
            self.verify_entity_instance(request, RequestEntity)
            self.assertEquals(request.status, RequestStatus.UNASSIGNED)
            
        # Verify that there is no OPEN or CLOSED request
        requests = self._request_manager.list_requests(RequestStatus.OPEN)
        self.assertEqual(len(requests), 0)

        requests = self._request_manager.list_requests(RequestStatus.CLOSED)
        self.assertEqual(len(requests), 0)
        
    def test_sort_by_requestor(self):
        """ Verify sort by requestor """
        
        requests = self._request_manager.list_requests(RequestStatus.UNASSIGNED)
        self.assertEqual(len(requests), 7)
        requestor_1 = str(requests[0].requestor)
        requestor_2 = str(requests[1].requestor)
        
        requests = self._request_manager.list_requests(RequestStatus.UNASSIGNED, sort_by = 'REQUESTOR')
        self.assertEqual(len(requests), 7)
                
        self.assertIsInstance(requestor_1, str)
        self.assertIsInstance(requestor_2, str)
        
        self.assertLess(requestor_1, requestor_2)
        
        self.assertEqual(str(requests[0].requestor), requestor_1)
        self.assertEqual(str(requests[1].requestor), requestor_1)
        self.assertEqual(str(requests[2].requestor), requestor_1)
        self.assertEqual(str(requests[3].requestor), requestor_1)
        self.assertEqual(str(requests[4].requestor), requestor_2)
        self.assertEqual(str(requests[5].requestor), requestor_2)
        self.assertEqual(str(requests[6].requestor), requestor_2)
        
    def test_sort_by_rank(self):
        ''' Verify sort by rank '''
        
        # Change the requestors rank
        requestor_1 = self._requestor_manager_1.get_requestor()
        requestor_1.rank = 20
        requestor_1.put()
        
        requestor_2 = self._requestor_manager_2.get_requestor()
        requestor_2.rank = 10
        requestor_2.put()
    
        # Retrieve requests
        requests = self._request_manager.list_requests(RequestStatus.UNASSIGNED, sort_by = 'RANK')
        self.assertEqual(len(requests), 7)

        # Verify that requestor 2's requests come first
        self.assertEqual(requests[0].requestor.key(), requestor_2.key())
        self.assertEqual(requests[1].requestor.key(), requestor_2.key())
        self.assertEqual(requests[2].requestor.key(), requestor_2.key())
        self.assertEqual(requests[3].requestor.key(), requestor_1.key())
        self.assertEqual(requests[4].requestor.key(), requestor_1.key())
        self.assertEqual(requests[5].requestor.key(), requestor_1.key())
        self.assertEqual(requests[6].requestor.key(), requestor_1.key())
                
    def test_sort_by_category(self):
        ''' Verify sort by category '''

        # Retrieve requests
        requests = self._request_manager.list_requests(RequestStatus.UNASSIGNED)
        self.assertEqual(len(requests), 7)

        # Reassign request categories
        requests[0].category = self._category_2
        requests[1].category = self._category_2
        requests[2].category = self._category_1
        requests[3].category = self._category_2
        requests[4].category = self._category_1
        requests[5].category = self._category_1
        requests[6].category = self._category_2

        db.put(requests)

        # Reload requests
        requests = self._request_manager.list_requests(RequestStatus.UNASSIGNED, sort_by = 'CATEGORY')

        # Verify that requests are sorted by category_1 first, then category_2
        self.assertEqual(requests[0].category.key(), self._category_1.key())
        self.assertEqual(requests[1].category.key(), self._category_1.key())
        self.assertEqual(requests[2].category.key(), self._category_1.key())
        self.assertEqual(requests[3].category.key(), self._category_2.key())
        self.assertEqual(requests[4].category.key(), self._category_2.key())
        self.assertEqual(requests[5].category.key(), self._category_2.key())
        self.assertEqual(requests[6].category.key(), self._category_2.key())
    
    def test_sort_by_submitted_on(self):
        ''' Verify sort by submission date '''

        # Retrieve requests
        requests = self._request_manager.list_requests(RequestStatus.UNASSIGNED)
        self.assertEqual(len(requests), 7)
        
        # Reassign request dates
        requests[0].submitted_on = datetime.datetime.strptime('2011-06-15', '%Y-%m-%d')
        requests[1].submitted_on = datetime.datetime.strptime('2011-05-16', '%Y-%m-%d')
        requests[2].submitted_on = datetime.datetime.strptime('2011-07-15', '%Y-%m-%d')
        requests[3].submitted_on = datetime.datetime.strptime('2011-06-20', '%Y-%m-%d')
        requests[4].submitted_on = datetime.datetime.strptime('2011-04-15', '%Y-%m-%d')
        requests[5].submitted_on = datetime.datetime.strptime('2011-05-15', '%Y-%m-%d')
        requests[6].submitted_on = datetime.datetime.strptime('2012-06-15', '%Y-%m-%d')
        
        db.put(requests)

        # Reload requests
        requests = self._request_manager.list_requests(RequestStatus.UNASSIGNED, sort_by = RequestSortOrder.SUBMITTED_ON)
        
        # Verify that requests are sorted by date
        self.assertLess(requests[0].submitted_on, requests[1].submitted_on) 
        self.assertLess(requests[1].submitted_on, requests[2].submitted_on) 
        self.assertLess(requests[2].submitted_on, requests[3].submitted_on) 
        self.assertLess(requests[3].submitted_on, requests[4].submitted_on) 
        self.assertLess(requests[4].submitted_on, requests[5].submitted_on) 
        self.assertLess(requests[5].submitted_on, requests[6].submitted_on) 

    def test_find_by_id(self):
        ''' Test the find by id method to retrieve a request '''
        
        requests = self._request_manager.list_requests(RequestStatus.UNASSIGNED)
        id = requests[6].key().id()
        
        request = self._request_manager.find_request(id)
        self.verify_entity_instance(request, RequestEntity)
        self.assertEqual(request.key(), requests[6].key())