diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py index 5f3046c6a..7808d3070 100644 --- a/netbox/ipam/views.py +++ b/netbox/ipam/views.py @@ -216,6 +216,7 @@ class ASNRangeASNsView(generic.ObjectChildrenView): child_model = ASN table = tables.ASNTable filterset = filtersets.ASNFilterSet + template_name = 'generic/object_tab.html' tab = ViewTab( label=_('ASNs'), badge=lambda x: x.get_child_asns().count(), @@ -366,9 +367,7 @@ class AggregatePrefixesView(generic.ObjectChildrenView): return add_requested_prefixes(parent.prefix, queryset, show_available, show_assigned) def get_extra_context(self, request, instance): - context = super().get_extra_context(request, instance) return { - **context, 'bulk_querystring': f'within={instance.prefix}', 'first_available_prefix': instance.get_first_available_prefix(), 'show_available': bool(request.GET.get('show_available', 'true') == 'true'), @@ -555,9 +554,7 @@ class PrefixPrefixesView(generic.ObjectChildrenView): return add_requested_prefixes(parent.prefix, queryset, show_available, show_assigned) def get_extra_context(self, request, instance): - context = super().get_extra_context(request, instance) return { - **context, 'bulk_querystring': f"vrf_id={instance.vrf.pk if instance.vrf else '0'}&within={instance.prefix}", 'first_available_prefix': instance.get_first_available_prefix(), 'show_available': bool(request.GET.get('show_available', 'true') == 'true'), @@ -585,9 +582,7 @@ class PrefixIPRangesView(generic.ObjectChildrenView): ) def get_extra_context(self, request, instance): - context = super().get_extra_context(request, instance) return { - **context, 'bulk_querystring': f"vrf_id={instance.vrf.pk if instance.vrf else '0'}&parent={instance.prefix}", 'first_available_ip': instance.get_first_available_ip(), } @@ -616,9 +611,7 @@ class PrefixIPAddressesView(generic.ObjectChildrenView): return queryset def get_extra_context(self, request, instance): - context = super().get_extra_context(request, instance) return { - **context, 'bulk_querystring': f"vrf_id={instance.vrf.pk if instance.vrf else '0'}&parent={instance.prefix}", 'first_available_ip': instance.get_first_available_ip(), } @@ -872,6 +865,7 @@ class IPAddressRelatedIPsView(generic.ObjectChildrenView): child_model = IPAddress table = tables.IPAddressTable filterset = filtersets.IPAddressFilterSet + template_name = 'generic/object_tab.html' tab = ViewTab( label=_('Related IPs'), badge=lambda x: x.get_related_ips().count(), @@ -1081,6 +1075,7 @@ class VLANInterfacesView(generic.ObjectChildrenView): child_model = Interface table = tables.VLANDevicesTable filterset = InterfaceFilterSet + template_name = 'generic/object_tab.html' tab = ViewTab( label=_('Device Interfaces'), badge=lambda x: x.get_interfaces().count(), @@ -1098,6 +1093,7 @@ class VLANVMInterfacesView(generic.ObjectChildrenView): child_model = VMInterface table = tables.VLANVirtualMachinesTable filterset = VMInterfaceFilterSet + template_name = 'generic/object_tab.html' tab = ViewTab( label=_('VM Interfaces'), badge=lambda x: x.get_vminterfaces().count(), diff --git a/netbox/netbox/views/generic/object_views.py b/netbox/netbox/views/generic/object_views.py index 2bfa7901a..a426898fb 100644 --- a/netbox/netbox/views/generic/object_views.py +++ b/netbox/netbox/views/generic/object_views.py @@ -91,7 +91,6 @@ class ObjectChildrenView(ObjectView, ActionsMixin, TableMixin): child_model = None table = None filterset = None - template_name = 'generic/object_tab.html' def get_children(self, request, parent): """ @@ -114,28 +113,6 @@ class ObjectChildrenView(ObjectView, ActionsMixin, TableMixin): """ return queryset - def get_extra_context(self, request, instance): - context = super().get_extra_context(request, instance) - - return_url = '?return_url=' + request.get_full_path() - bulk_edit_url = reverse(f'{self.child_model._meta.app_label}:{self.child_model._meta.model_name}_bulk_edit') + return_url - bulk_delete_url = reverse(f'{self.child_model._meta.app_label}:{self.child_model._meta.model_name}_bulk_delete') + return_url - - try: - bulk_rename_url = reverse( - f'{self.child_model._meta.app_label}:{self.child_model._meta.model_name}_bulk_rename') + return_url - except NoReverseMatch: - bulk_rename_url = None - - context.update({ - 'base_template': f'{instance._meta.app_label}/{instance._meta.model_name}.html', - 'table_config': f'{self.table.__name__}_config', - 'bulk_edit_url': bulk_edit_url, - 'bulk_delete_url': bulk_delete_url, - 'bulk_rename_url': bulk_rename_url, - }) - return context - # # Request handlers # @@ -167,9 +144,12 @@ class ObjectChildrenView(ObjectView, ActionsMixin, TableMixin): return render(request, self.get_template_name(), { 'object': instance, 'child_model': self.child_model, + 'base_template': f'{instance._meta.app_label}/{instance._meta.model_name}.html', 'table': table, + 'table_config': f'{self.table.__name__}_config', 'actions': actions, 'tab': self.tab, + 'return_url': request.get_full_path(), **self.get_extra_context(request, instance), }) diff --git a/netbox/templates/generic/object_tab.html b/netbox/templates/generic/object_tab.html index 12c65f041..eaa61b9cc 100644 --- a/netbox/templates/generic/object_tab.html +++ b/netbox/templates/generic/object_tab.html @@ -16,28 +16,30 @@