Catalog: Set correct sort_dir for next/prev page buttons

Before, navigating Next and Previous page used incorrect sort_dir and
incorrect markers because of that. Now marker chosed for next/prev link
is chosen by inspecting current sort_dir.

Change-Id: If181bf6c243878cb798129e69618912eec8c4dcd
Closes-Bug: #1439020
This commit is contained in:
Kirill Zaitsev 2015-04-16 12:59:38 +03:00
parent 10aa8fbb01
commit b472dd55a3

View File

@ -480,6 +480,7 @@ class IndexView(list_view.ListView):
return self._more
else:
query_params = self.get_query_params(internal_query=True)
query_params['sort_dir'] = 'asc'
packages, more = pkg_api.package_list(
self.request, filters=query_params, paginate=True,
marker=self.get_marker(), page_size=1)
@ -512,14 +513,19 @@ class IndexView(list_view.ListView):
def prev_page_url(self):
query_params = self.get_query_params()
query_params.update({'marker': self.get_marker(0),
'sort_dir': 'desc'})
sort_dir = self.request.GET.get('sort_dir') or 'asc'
query_params['marker'] = self.get_marker(0) \
if sort_dir == 'asc' else self.get_marker()
query_params['sort_dir'] = 'desc'
return '{0}?{1}'.format(reverse('horizon:murano:catalog:index'),
http_utils.urlencode(query_params))
def next_page_url(self):
query_params = self.get_query_params()
query_params['marker'] = self.get_marker()
sort_dir = self.request.GET.get('sort_dir') or 'asc'
query_params['marker'] = self.get_marker() \
if sort_dir == 'asc' else self.get_marker(0)
query_params['sort_dir'] = 'asc'
return '{0}?{1}'.format(reverse('horizon:murano:catalog:index'),
http_utils.urlencode(query_params))