Centralizing page size code, reading cookie
Centralizing duplicate code around the default page size. Additionally, we now read the 'horizon_pagesize' cookie set for the user in the settings panel to reuse the value across sessions. Closes-bug: #1251456 Change-Id: I78b6c978926f53a598f89745c517b8083270e5ba
This commit is contained in:
parent
efdae3ce35
commit
e7a8a20d60
horizon/utils
openstack_dashboard
@ -52,3 +52,13 @@ def logout_with_message(request, msg):
|
||||
'%s?next=%s' % (settings.LOGOUT_URL, request.path))
|
||||
add_logout_reason(request, response, msg)
|
||||
return response
|
||||
|
||||
|
||||
def get_page_size(request, default=20):
|
||||
session = request.session
|
||||
cookies = request.COOKIES
|
||||
return int(session.get('horizon_pagesize',
|
||||
cookies.get('horizon_pagesize',
|
||||
getattr(settings,
|
||||
'API_RESULT_PAGE_SIZE',
|
||||
default))))
|
||||
|
@ -29,6 +29,8 @@ from django.conf import settings # noqa
|
||||
|
||||
import glanceclient as glance_client
|
||||
|
||||
from horizon.utils import functions as utils
|
||||
|
||||
from openstack_dashboard.api import base
|
||||
|
||||
|
||||
@ -59,9 +61,7 @@ def image_get(request, image_id):
|
||||
|
||||
def image_list_detailed(request, marker=None, filters=None, paginate=False):
|
||||
limit = getattr(settings, 'API_RESULT_LIMIT', 1000)
|
||||
page_size = request.session.get('horizon_pagesize',
|
||||
getattr(settings, 'API_RESULT_PAGE_SIZE',
|
||||
20))
|
||||
page_size = utils.get_page_size(request)
|
||||
|
||||
if paginate:
|
||||
request_size = page_size + 1
|
||||
|
@ -253,9 +253,8 @@ def tenant_delete(request, project):
|
||||
|
||||
def tenant_list(request, paginate=False, marker=None, domain=None, user=None):
|
||||
manager = VERSIONS.get_project_manager(request, admin=True)
|
||||
page_size = request.session.get('horizon_pagesize',
|
||||
getattr(settings, 'API_RESULT_PAGE_SIZE',
|
||||
20))
|
||||
page_size = utils.get_page_size(request)
|
||||
|
||||
limit = None
|
||||
if paginate:
|
||||
limit = page_size + 1
|
||||
|
@ -35,6 +35,7 @@ from novaclient.v1_1 import security_groups as nova_security_groups
|
||||
from novaclient.v1_1 import servers as nova_servers
|
||||
|
||||
from horizon import conf
|
||||
from horizon.utils import functions as utils
|
||||
from horizon.utils.memoized import memoized # noqa
|
||||
|
||||
from openstack_dashboard.api import base
|
||||
@ -493,9 +494,8 @@ def server_get(request, instance_id):
|
||||
|
||||
|
||||
def server_list(request, search_opts=None, all_tenants=False):
|
||||
page_size = request.session.get('horizon_pagesize',
|
||||
getattr(settings, 'API_RESULT_PAGE_SIZE',
|
||||
20))
|
||||
page_size = utils.get_page_size(request)
|
||||
|
||||
paginate = False
|
||||
if search_opts is None:
|
||||
search_opts = {}
|
||||
|
@ -21,6 +21,7 @@ from troveclient.v1 import client
|
||||
|
||||
from openstack_dashboard.api import base
|
||||
|
||||
from horizon.utils import functions as utils
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
@ -44,8 +45,7 @@ def troveclient(request):
|
||||
|
||||
|
||||
def instance_list(request, marker=None):
|
||||
default_page_size = getattr(settings, 'API_RESULT_PAGE_SIZE', 20)
|
||||
page_size = request.session.get('horizon_pagesize', default_page_size)
|
||||
page_size = utils.get_page_size(request)
|
||||
return troveclient(request).instances.list(limit=page_size, marker=marker)
|
||||
|
||||
|
||||
|
@ -16,6 +16,7 @@
|
||||
|
||||
from django.conf import settings # noqa
|
||||
from horizon import forms
|
||||
from horizon.utils import functions as utils
|
||||
|
||||
from openstack_dashboard.dashboards.settings.user import forms as user_forms
|
||||
|
||||
@ -33,12 +34,7 @@ class UserSettingsView(forms.ModalFormView):
|
||||
'timezone': self.request.session.get(
|
||||
'django_timezone',
|
||||
self.request.COOKIES.get('django_timezone', 'UTC')),
|
||||
'pagesize': self.request.session.get(
|
||||
'horizon_pagesize',
|
||||
self.request.COOKIES.get(
|
||||
'horizon_pagesize',
|
||||
getattr(settings,
|
||||
'API_RESULT_PAGE_SIZE', 20)))}
|
||||
'pagesize': utils.get_page_size(self.request)}
|
||||
|
||||
def form_valid(self, form):
|
||||
return form.handle(self.request, form.cleaned_data)
|
||||
|
Loading…
x
Reference in New Issue
Block a user