Django

Code

Ticket #720: paginator_diff.py

File paginator_diff.py, 1.3 kB (added by m@bagai.com, 3 years ago)

svn diff output with added methods

Line 
1 Index: paginator.py
2 ===================================================================
3 --- paginator.py        (revision 1066)
4 +++ paginator.py        (working copy)
5 @@ -56,6 +56,29 @@
6  
7      def has_previous_page(self, page_number):
8          return page_number > 0
9 +    
10 +    def first_on_page(self, page_number):
11 +        "Returns the # of the first object on the current page relative to total objects found (hits)."
12 +        if page_number == 0:
13 +            return page_number + 1
14 +        else:
15 +            return (self.num_per_page * page_number) + 1
16 +    
17 +    def last_on_page(self, page_number):
18 +        "Returns the # of the last object on the current page relative to total objects found (hits)."
19 +        hits_,pages_ = self.hits,self.pages
20 +        if page_number == 0: #first page
21 +            if self.num_per_page >= hits_:
22 +                return hits_
23 +            else:
24 +                return self.num_per_page
25 +        elif page_number == (pages_ - 1): # last page is (pages - 1) because the paginator is zero-indexed
26 +            if ((page_number + 1) * self.num_per_page) > hits_:
27 +                return hits_
28 +            else:
29 +                return ((page_number + 1) * self.num_per_page)
30 +        else: # pages between first and last
31 +            return ((page_number + 1) * self.num_per_page)
32  
33      def _get_hits(self):
34          if self._hits is None: