Fix #5819 and #5872 - Fix Primary IP Sorting Issues for Devices and VMs

This commit is contained in:
Luke Anderson 2021-02-15 21:01:55 +10:30
parent 3d3748d6f5
commit d2c8aae59c
No known key found for this signature in database
GPG Key ID: 2E44E16C001190FC
2 changed files with 26 additions and 10 deletions

View File

@ -1,5 +1,6 @@
import django_tables2 as tables import django_tables2 as tables
from django_tables2.utils import Accessor from django_tables2.utils import Accessor
from django.conf import settings
from dcim.models import ( from dcim.models import (
ConsolePort, ConsoleServerPort, Device, DeviceBay, DeviceRole, FrontPort, Interface, InventoryItem, Platform, ConsolePort, ConsoleServerPort, Device, DeviceBay, DeviceRole, FrontPort, Interface, InventoryItem, Platform,
@ -127,11 +128,18 @@ class DeviceTable(BaseTable):
verbose_name='Type', verbose_name='Type',
text=lambda record: record.device_type.display_name text=lambda record: record.device_type.display_name
) )
primary_ip = tables.Column( if settings.PREFER_IPV4:
linkify=True, primary_ip = tables.Column(
order_by=('primary_ip6', 'primary_ip4'), linkify=True,
verbose_name='IP Address' order_by=('primary_ip4', 'primary_ip6'),
) verbose_name='IP Address'
)
else:
primary_ip = tables.Column(
linkify=True,
order_by=('primary_ip6', 'primary_ip4'),
verbose_name='IP Address'
)
primary_ip4 = tables.Column( primary_ip4 = tables.Column(
linkify=True, linkify=True,
verbose_name='IPv4 Address' verbose_name='IPv4 Address'

View File

@ -1,5 +1,5 @@
import django_tables2 as tables import django_tables2 as tables
from django.conf import settings
from dcim.tables.devices import BaseInterfaceTable from dcim.tables.devices import BaseInterfaceTable
from tenancy.tables import COL_TENANT from tenancy.tables import COL_TENANT
from utilities.tables import ( from utilities.tables import (
@ -125,10 +125,18 @@ class VirtualMachineDetailTable(VirtualMachineTable):
linkify=True, linkify=True,
verbose_name='IPv6 Address' verbose_name='IPv6 Address'
) )
primary_ip = tables.Column( if settings.PREFER_IPV4:
linkify=True, primary_ip = tables.Column(
verbose_name='IP Address' linkify=True,
) order_by=('primary_ip4', 'primary_ip6'),
verbose_name='IP Address'
)
else:
primary_ip = tables.Column(
linkify=True,
order_by=('primary_ip6', 'primary_ip4'),
verbose_name='IP Address'
)
tags = TagColumn( tags = TagColumn(
url_name='virtualization:virtualmachine_list' url_name='virtualization:virtualmachine_list'
) )