1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

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

This commit is contained in:
jeremystretch
2022-05-04 15:46:13 -04:00
parent 015bc48345
commit 0301aec409
7 changed files with 26 additions and 23 deletions

View File

@ -7,6 +7,7 @@
* [#8894](https://github.com/netbox-community/netbox/issues/8894) - Include full names when listing users * [#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 * [#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 * [#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 * [#9278](https://github.com/netbox-community/netbox/issues/9278) - Linkify device types count under manufacturers list
### Bug Fixes ### Bug Fixes

View File

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

View File

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

View File

@ -161,7 +161,7 @@ class RIRView(generic.ObjectView):
aggregates = Aggregate.objects.restrict(request.user, 'view').filter(rir=instance).annotate( 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', ()) 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) aggregates_table.configure(request)
return { return {
@ -221,12 +221,12 @@ class ASNView(generic.ObjectView):
def get_extra_context(self, request, instance): def get_extra_context(self, request, instance):
# Gather assigned Sites # Gather assigned Sites
sites = instance.sites.restrict(request.user, 'view') sites = instance.sites.restrict(request.user, 'view')
sites_table = SiteTable(sites) sites_table = SiteTable(sites, user=request.user)
sites_table.configure(request) sites_table.configure(request)
# Gather assigned Providers # Gather assigned Providers
providers = instance.providers.restrict(request.user, 'view') providers = instance.providers.restrict(request.user, 'view')
providers_table = ProviderTable(providers) providers_table = ProviderTable(providers, user=request.user)
providers_table.configure(request) providers_table.configure(request)
return { return {
@ -366,7 +366,7 @@ class RoleView(generic.ObjectView):
role=instance 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) prefixes_table.configure(request)
return { return {
@ -805,7 +805,7 @@ class VLANGroupView(generic.ObjectView):
vlans_count = vlans.count() vlans_count = vlans.count()
vlans = add_available_vlans(vlans, vlan_group=instance) 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'): if request.user.has_perm('ipam.change_vlan') or request.user.has_perm('ipam.delete_vlan'):
vlans_table.columns.show('pk') vlans_table.columns.show('pk')
vlans_table.configure(request) vlans_table.configure(request)

View File

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

View File

@ -39,7 +39,7 @@ class ClusterTypeView(generic.ObjectView):
device_count=count_related(Device, 'cluster'), device_count=count_related(Device, 'cluster'),
vm_count=count_related(VirtualMachine, '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) clusters_table.configure(request)
return { return {
@ -101,7 +101,7 @@ class ClusterGroupView(generic.ObjectView):
device_count=count_related(Device, 'cluster'), device_count=count_related(Device, 'cluster'),
vm_count=count_related(VirtualMachine, '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) clusters_table.configure(request)
return { return {

View File

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