mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Remember user's per_page preference (POC for UserConfig)
This commit is contained in:
netbox/utilities
@ -37,3 +37,22 @@ class EnhancedPage(Page):
|
||||
page_list.insert(page_list.index(i), False)
|
||||
|
||||
return page_list
|
||||
|
||||
|
||||
def get_paginate_count(request):
|
||||
"""
|
||||
Determine the length of a page, using the following in order:
|
||||
|
||||
1. per_page URL query parameter
|
||||
2. Saved user preference
|
||||
3. PAGINATE_COUNT global setting.
|
||||
"""
|
||||
if 'per_page' in request.GET:
|
||||
try:
|
||||
per_page = int(request.GET.get('per_page'))
|
||||
request.user.config.set('paginate_count', per_page, commit=True)
|
||||
return per_page
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
return request.user.config.get('paginate_count', settings.PAGINATE_COUNT)
|
||||
|
@ -2,7 +2,6 @@ import logging
|
||||
import sys
|
||||
from copy import deepcopy
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib import messages
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.core.exceptions import FieldDoesNotExist, ValidationError
|
||||
@ -29,7 +28,7 @@ from utilities.forms import BootstrapMixin, CSVDataField
|
||||
from utilities.utils import csv_format, prepare_cloned_fields
|
||||
from .error_handlers import handle_protectederror
|
||||
from .forms import ConfirmationForm, ImportForm
|
||||
from .paginator import EnhancedPaginator
|
||||
from .paginator import EnhancedPaginator, get_paginate_count
|
||||
|
||||
|
||||
class GetReturnURLMixin(object):
|
||||
@ -172,7 +171,7 @@ class ObjectListView(View):
|
||||
# Apply the request context
|
||||
paginate = {
|
||||
'paginator_class': EnhancedPaginator,
|
||||
'per_page': request.GET.get('per_page', settings.PAGINATE_COUNT)
|
||||
'per_page': get_paginate_count(request)
|
||||
}
|
||||
RequestConfig(request, paginate).configure(table)
|
||||
|
||||
|
Reference in New Issue
Block a user