@@ -3,14 +3,14 @@ class PaginatedListViewMixin:
33 max_page_size = 100
44
55 PAGE_SIZE_CHOICES = [
6- {' value' : 20 , ' label' : ' 20 per page' },
7- {' value' : 50 , ' label' : ' 50 per page' },
8- {' value' : 100 , ' label' : ' 100 per page' }
6+ {" value" : 20 , " label" : " 20 per page" },
7+ {" value" : 50 , " label" : " 50 per page" },
8+ {" value" : 100 , " label" : " 100 per page" },
99 ]
1010
1111 def get_paginate_by (self , queryset = None ):
1212 try :
13- page_size = int (self .request .GET .get (' page_size' , self .paginate_by ))
13+ page_size = int (self .request .GET .get (" page_size" , self .paginate_by ))
1414 if page_size <= 0 :
1515 return self .paginate_by
1616 return min (page_size , self .max_page_size )
@@ -19,21 +19,22 @@ def get_paginate_by(self, queryset=None):
1919
2020 def get_context_data (self , ** kwargs ):
2121 context = super ().get_context_data (** kwargs )
22-
22+
2323 current_page_size = self .get_paginate_by ()
24- total_count = context ['paginator' ].count
25-
26- context .update ({
27- 'current_page_size' : current_page_size ,
28- 'page_size_choices' : self .PAGE_SIZE_CHOICES ,
29- 'total_count' : total_count ,
30- 'page_range' : self ._get_page_range (
31- context ['paginator' ],
32- context ['page_obj' ].number
33- ),
34- 'search' : self .request .GET .get ('search' , '' )
35- })
36-
24+ total_count = context ["paginator" ].count
25+
26+ context .update (
27+ {
28+ "current_page_size" : current_page_size ,
29+ "page_size_choices" : self .PAGE_SIZE_CHOICES ,
30+ "total_count" : total_count ,
31+ "page_range" : self ._get_page_range (
32+ context ["paginator" ], context ["page_obj" ].number
33+ ),
34+ "search" : self .request .GET .get ("search" , "" ),
35+ }
36+ )
37+
3738 return context
3839
3940 def _get_page_range (self , paginator , current_page , window = 2 ):
@@ -42,16 +43,16 @@ def _get_page_range(self, paginator, current_page, window=2):
4243
4344 pages = [1 ]
4445 if current_page > 3 :
45- pages .append (' ...' )
46+ pages .append (" ..." )
4647
4748 start_page = max (2 , current_page - window )
4849 end_page = min (paginator .num_pages - 1 , current_page + window )
4950 pages .extend (range (start_page , end_page + 1 ))
50-
51+
5152 if current_page < paginator .num_pages - 2 :
52- pages .append (' ...' )
53-
53+ pages .append (" ..." )
54+
5455 if paginator .num_pages not in pages :
5556 pages .append (paginator .num_pages )
56-
57+
5758 return pages
0 commit comments