Django

Code

Changeset 3040

Show
Ignore:
Timestamp:
05/31/06 23:29:39 (2 years ago)
Author:
adrian
Message:

Fixed #720 -- Added first_on_page() and last_on_page() methods to ObjectPaginator?. Thanks, m@bagai.com

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/core/paginator.py

    r2809 r3040  
    5555        return page_number > 0 
    5656 
     57    def first_on_page(self, page_number): 
     58        """ 
     59        Returns the 1-based index of the first object on the given page, 
     60        relative to total objects found (hits). 
     61        """ 
     62        if page_number == 0: 
     63            return 1 
     64        return (self.num_per_page * page_number) + 1 
     65 
     66    def last_on_page(self, page_number): 
     67        """ 
     68        Returns the 1-based index of the last object on the given page, 
     69        relative to total objects found (hits). 
     70        """ 
     71        if page_number == 0 and self.num_per_page >= self._hits: 
     72            return self._hits 
     73        elif page_number == (self._pages - 1) and (page_number + 1) * self.num_per_page > self._hits: 
     74            return self._hits 
     75        return (page_number + 1) * self.num_per_page 
     76 
    5777    def _get_hits(self): 
    5878        if self._hits is None: 
  • django/trunk/tests/modeltests/pagination/models.py

    r3031 r3040  
    5656True 
    5757 
     58>>> paginator.first_on_page(0) 
     591 
     60>>> paginator.first_on_page(1) 
     616 
     62>>> paginator.last_on_page(0) 
     635 
     64>>> paginator.last_on_page(1) 
     659 
     66 
    5867"""