mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-22 20:12:00 -06:00
* Fixes #11209 - Do not add available ips when IPAddressTable sort preferences are saved * Refine check to account scenario right after clearing ordering string * Introduce get_table_ordering() utility to determine intended ordering given a request * Apply fix to VLAN ranges as well --------- Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
This commit is contained in:
parent
cf2f39a0a8
commit
e4cb0c3cc2
@ -1,7 +1,6 @@
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.db.models import F, Prefetch
|
||||
from django.db.models.expressions import RawSQL
|
||||
from django.db.models.functions import Round
|
||||
from django.shortcuts import get_object_or_404, redirect, render
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import gettext as _
|
||||
@ -11,6 +10,7 @@ from dcim.filtersets import InterfaceFilterSet
|
||||
from dcim.models import Interface, Site
|
||||
from netbox.views import generic
|
||||
from tenancy.views import ObjectContactsView
|
||||
from utilities.tables import get_table_ordering
|
||||
from utilities.utils import count_related
|
||||
from utilities.views import ViewTab, register_model_view
|
||||
from virtualization.filtersets import VMInterfaceFilterSet
|
||||
@ -606,7 +606,7 @@ class PrefixIPAddressesView(generic.ObjectChildrenView):
|
||||
return parent.get_child_ips().restrict(request.user, 'view').prefetch_related('vrf', 'tenant', 'tenant__group')
|
||||
|
||||
def prep_table_data(self, request, queryset, parent):
|
||||
if not request.GET.get('q') and not request.GET.get('sort'):
|
||||
if not get_table_ordering(request, self.table):
|
||||
return add_available_ipaddresses(parent.prefix, queryset, parent.is_pool)
|
||||
return queryset
|
||||
|
||||
@ -952,7 +952,9 @@ class VLANGroupVLANsView(generic.ObjectChildrenView):
|
||||
)
|
||||
|
||||
def prep_table_data(self, request, queryset, parent):
|
||||
return add_available_vlans(parent.get_child_vlans(), parent)
|
||||
if not get_table_ordering(request, self.table):
|
||||
return add_available_vlans(parent.get_child_vlans(), parent)
|
||||
return queryset
|
||||
|
||||
|
||||
#
|
||||
|
@ -1,8 +1,24 @@
|
||||
__all__ = (
|
||||
'get_table_ordering',
|
||||
'linkify_phone',
|
||||
)
|
||||
|
||||
|
||||
def get_table_ordering(request, table):
|
||||
"""
|
||||
Given a request, return the prescribed table ordering, if any. This may be necessary to determine prior to rendering
|
||||
the table itself.
|
||||
"""
|
||||
# Check for an explicit ordering
|
||||
if 'sort' in request.GET:
|
||||
return request.GET['sort'] or None
|
||||
|
||||
# Check for a configured preference
|
||||
if request.user.is_authenticated:
|
||||
if preference := request.user.config.get(f'tables.{table.__name__}.ordering'):
|
||||
return preference
|
||||
|
||||
|
||||
def linkify_phone(value):
|
||||
"""
|
||||
Render a telephone number as a hyperlink.
|
||||
|
Loading…
Reference in New Issue
Block a user