Преглед изворни кода

Closes #9260: Apply user preferences to tables under object detail views

jeremystretch пре 3 година
родитељ
комит
0301aec409

+ 1 - 0
docs/release-notes/version-3.2.md

@@ -7,6 +7,7 @@
 * [#8894](https://github.com/netbox-community/netbox/issues/8894) - Include full names when listing users
 * [#8998](https://github.com/netbox-community/netbox/issues/8998) - Enable filtering racks & reservations by site group
 * [#9122](https://github.com/netbox-community/netbox/issues/9122) - Introduce `clearcache` management command & clear cache during upgrade
+* [#9260](https://github.com/netbox-community/netbox/issues/9260) - Apply user preferences to tables under object detail views
 * [#9278](https://github.com/netbox-community/netbox/issues/9278) - Linkify device types count under manufacturers list
 
 ### Bug Fixes

+ 3 - 3
netbox/circuits/views.py

@@ -32,7 +32,7 @@ class ProviderView(generic.ObjectView):
         ).prefetch_related(
             'type', 'tenant', 'terminations__site'
         )
-        circuits_table = tables.CircuitTable(circuits, exclude=('provider',))
+        circuits_table = tables.CircuitTable(circuits, user=request.user, exclude=('provider',))
         circuits_table.configure(request)
 
         return {
@@ -93,7 +93,7 @@ class ProviderNetworkView(generic.ObjectView):
         ).prefetch_related(
             'type', 'tenant', 'terminations__site'
         )
-        circuits_table = tables.CircuitTable(circuits)
+        circuits_table = tables.CircuitTable(circuits, user=request.user)
         circuits_table.configure(request)
 
         return {
@@ -147,7 +147,7 @@ class CircuitTypeView(generic.ObjectView):
 
     def get_extra_context(self, request, instance):
         circuits = Circuit.objects.restrict(request.user, 'view').filter(type=instance)
-        circuits_table = tables.CircuitTable(circuits, exclude=('type',))
+        circuits_table = tables.CircuitTable(circuits, user=request.user, exclude=('type',))
         circuits_table.configure(request)
 
         return {

+ 9 - 7
netbox/dcim/views.py

@@ -166,7 +166,7 @@ class RegionView(generic.ObjectView):
         sites = Site.objects.restrict(request.user, 'view').filter(
             region=instance
         )
-        sites_table = tables.SiteTable(sites, exclude=('region',))
+        sites_table = tables.SiteTable(sites, user=request.user, exclude=('region',))
         sites_table.configure(request)
 
         return {
@@ -251,7 +251,7 @@ class SiteGroupView(generic.ObjectView):
         sites = Site.objects.restrict(request.user, 'view').filter(
             group=instance
         )
-        sites_table = tables.SiteTable(sites, exclude=('group',))
+        sites_table = tables.SiteTable(sites, user=request.user, exclude=('group',))
         sites_table.configure(request)
 
         return {
@@ -435,7 +435,7 @@ class LocationView(generic.ObjectView):
             'rack_count',
             cumulative=True
         ).filter(pk__in=location_ids).exclude(pk=instance.pk)
-        child_locations_table = tables.LocationTable(child_locations)
+        child_locations_table = tables.LocationTable(child_locations, user=request.user)
         child_locations_table.configure(request)
 
         nonracked_devices = Device.objects.filter(
@@ -514,7 +514,9 @@ class RackRoleView(generic.ObjectView):
             role=instance
         )
 
-        racks_table = tables.RackTable(racks, exclude=('role', 'get_utilization', 'get_power_utilization'))
+        racks_table = tables.RackTable(racks, user=request.user, exclude=(
+            'role', 'get_utilization', 'get_power_utilization',
+        ))
         racks_table.configure(request)
 
         return {
@@ -767,7 +769,7 @@ class ManufacturerView(generic.ObjectView):
             manufacturer=instance
         )
 
-        devicetypes_table = tables.DeviceTypeTable(device_types, exclude=('manufacturer',))
+        devicetypes_table = tables.DeviceTypeTable(device_types, user=request.user, exclude=('manufacturer',))
         devicetypes_table.configure(request)
 
         return {
@@ -1480,7 +1482,7 @@ class DeviceRoleView(generic.ObjectView):
         devices = Device.objects.restrict(request.user, 'view').filter(
             device_role=instance
         )
-        devices_table = tables.DeviceTable(devices, exclude=('device_role',))
+        devices_table = tables.DeviceTable(devices, user=request.user, exclude=('device_role',))
         devices_table.configure(request)
 
         return {
@@ -1544,7 +1546,7 @@ class PlatformView(generic.ObjectView):
         devices = Device.objects.restrict(request.user, 'view').filter(
             platform=instance
         )
-        devices_table = tables.DeviceTable(devices, exclude=('platform',))
+        devices_table = tables.DeviceTable(devices, user=request.user, exclude=('platform',))
         devices_table.configure(request)
 
         return {

+ 5 - 5
netbox/ipam/views.py

@@ -161,7 +161,7 @@ class RIRView(generic.ObjectView):
         aggregates = Aggregate.objects.restrict(request.user, 'view').filter(rir=instance).annotate(
             child_count=RawSQL('SELECT COUNT(*) FROM ipam_prefix WHERE ipam_prefix.prefix <<= ipam_aggregate.prefix', ())
         )
-        aggregates_table = tables.AggregateTable(aggregates, exclude=('rir', 'utilization'))
+        aggregates_table = tables.AggregateTable(aggregates, user=request.user, exclude=('rir', 'utilization'))
         aggregates_table.configure(request)
 
         return {
@@ -221,12 +221,12 @@ class ASNView(generic.ObjectView):
     def get_extra_context(self, request, instance):
         # Gather assigned Sites
         sites = instance.sites.restrict(request.user, 'view')
-        sites_table = SiteTable(sites)
+        sites_table = SiteTable(sites, user=request.user)
         sites_table.configure(request)
 
         # Gather assigned Providers
         providers = instance.providers.restrict(request.user, 'view')
-        providers_table = ProviderTable(providers)
+        providers_table = ProviderTable(providers, user=request.user)
         providers_table.configure(request)
 
         return {
@@ -366,7 +366,7 @@ class RoleView(generic.ObjectView):
             role=instance
         )
 
-        prefixes_table = tables.PrefixTable(prefixes, exclude=('role', 'utilization'))
+        prefixes_table = tables.PrefixTable(prefixes, user=request.user, exclude=('role', 'utilization'))
         prefixes_table.configure(request)
 
         return {
@@ -805,7 +805,7 @@ class VLANGroupView(generic.ObjectView):
         vlans_count = vlans.count()
         vlans = add_available_vlans(vlans, vlan_group=instance)
 
-        vlans_table = tables.VLANTable(vlans, exclude=('group',))
+        vlans_table = tables.VLANTable(vlans, user=request.user, exclude=('group',))
         if request.user.has_perm('ipam.change_vlan') or request.user.has_perm('ipam.delete_vlan'):
             vlans_table.columns.show('pk')
         vlans_table.configure(request)

+ 4 - 4
netbox/tenancy/views.py

@@ -35,7 +35,7 @@ class TenantGroupView(generic.ObjectView):
         tenants = Tenant.objects.restrict(request.user, 'view').filter(
             group=instance
         )
-        tenants_table = tables.TenantTable(tenants, exclude=('group',))
+        tenants_table = tables.TenantTable(tenants, user=request.user, exclude=('group',))
         tenants_table.configure(request)
 
         return {
@@ -184,7 +184,7 @@ class ContactGroupView(generic.ObjectView):
         contacts = Contact.objects.restrict(request.user, 'view').filter(
             group=instance
         )
-        contacts_table = tables.ContactTable(contacts, exclude=('group',))
+        contacts_table = tables.ContactTable(contacts, user=request.user, exclude=('group',))
         contacts_table.configure(request)
 
         return {
@@ -250,7 +250,7 @@ class ContactRoleView(generic.ObjectView):
         contact_assignments = ContactAssignment.objects.restrict(request.user, 'view').filter(
             role=instance
         )
-        contacts_table = tables.ContactAssignmentTable(contact_assignments)
+        contacts_table = tables.ContactAssignmentTable(contact_assignments, user=request.user)
         contacts_table.columns.hide('role')
         contacts_table.configure(request)
 
@@ -307,7 +307,7 @@ class ContactView(generic.ObjectView):
         contact_assignments = ContactAssignment.objects.restrict(request.user, 'view').filter(
             contact=instance
         )
-        assignments_table = tables.ContactAssignmentTable(contact_assignments)
+        assignments_table = tables.ContactAssignmentTable(contact_assignments, user=request.user)
         assignments_table.columns.hide('contact')
         assignments_table.configure(request)
 

+ 2 - 2
netbox/virtualization/views.py

@@ -39,7 +39,7 @@ class ClusterTypeView(generic.ObjectView):
             device_count=count_related(Device, 'cluster'),
             vm_count=count_related(VirtualMachine, 'cluster')
         )
-        clusters_table = tables.ClusterTable(clusters, exclude=('type',))
+        clusters_table = tables.ClusterTable(clusters, user=request.user, exclude=('type',))
         clusters_table.configure(request)
 
         return {
@@ -101,7 +101,7 @@ class ClusterGroupView(generic.ObjectView):
             device_count=count_related(Device, 'cluster'),
             vm_count=count_related(VirtualMachine, 'cluster')
         )
-        clusters_table = tables.ClusterTable(clusters, exclude=('group',))
+        clusters_table = tables.ClusterTable(clusters, user=request.user, exclude=('group',))
         clusters_table.configure(request)
 
         return {

+ 2 - 2
netbox/wireless/views.py

@@ -29,7 +29,7 @@ class WirelessLANGroupView(generic.ObjectView):
         wirelesslans = WirelessLAN.objects.restrict(request.user, 'view').filter(
             group=instance
         )
-        wirelesslans_table = tables.WirelessLANTable(wirelesslans, exclude=('group',))
+        wirelesslans_table = tables.WirelessLANTable(wirelesslans, user=request.user, exclude=('group',))
         wirelesslans_table.configure(request)
 
         return {
@@ -97,7 +97,7 @@ class WirelessLANView(generic.ObjectView):
         attached_interfaces = Interface.objects.restrict(request.user, 'view').filter(
             wireless_lans=instance
         )
-        interfaces_table = tables.WirelessLANInterfacesTable(attached_interfaces)
+        interfaces_table = tables.WirelessLANInterfacesTable(attached_interfaces, user=request.user)
         interfaces_table.configure(request)
 
         return {