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:
@ -37,3 +37,22 @@ class EnhancedPage(Page):
|
|||||||
page_list.insert(page_list.index(i), False)
|
page_list.insert(page_list.index(i), False)
|
||||||
|
|
||||||
return page_list
|
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
|
import sys
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
|
|
||||||
from django.conf import settings
|
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.core.exceptions import FieldDoesNotExist, ValidationError
|
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 utilities.utils import csv_format, prepare_cloned_fields
|
||||||
from .error_handlers import handle_protectederror
|
from .error_handlers import handle_protectederror
|
||||||
from .forms import ConfirmationForm, ImportForm
|
from .forms import ConfirmationForm, ImportForm
|
||||||
from .paginator import EnhancedPaginator
|
from .paginator import EnhancedPaginator, get_paginate_count
|
||||||
|
|
||||||
|
|
||||||
class GetReturnURLMixin(object):
|
class GetReturnURLMixin(object):
|
||||||
@ -172,7 +171,7 @@ class ObjectListView(View):
|
|||||||
# Apply the request context
|
# Apply the request context
|
||||||
paginate = {
|
paginate = {
|
||||||
'paginator_class': EnhancedPaginator,
|
'paginator_class': EnhancedPaginator,
|
||||||
'per_page': request.GET.get('per_page', settings.PAGINATE_COUNT)
|
'per_page': get_paginate_count(request)
|
||||||
}
|
}
|
||||||
RequestConfig(request, paginate).configure(table)
|
RequestConfig(request, paginate).configure(table)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user