diff --git a/netbox/templates/generic/object_children.html b/netbox/templates/generic/object_children.html
index a95f6ed0f..b9eabdc9d 100644
--- a/netbox/templates/generic/object_children.html
+++ b/netbox/templates/generic/object_children.html
@@ -8,8 +8,6 @@ Blocks:
- content: Primary page content
- table_controls: Control elements for the child objects table
- bulk_controls: Bulk action buttons which appear beneath the child objects table
- - bulk_edit_controls: Bulk edit buttons
- - bulk_delete_controls: Bulk delete buttons
- bulk_extra_controls: Other bulk action buttons
- modals: Any pre-loaded modals
diff --git a/netbox/utilities/templates/buttons/add.html b/netbox/utilities/templates/buttons/add.html
index df257b5d2..cf14769d3 100644
--- a/netbox/utilities/templates/buttons/add.html
+++ b/netbox/utilities/templates/buttons/add.html
@@ -1,6 +1,3 @@
-{% if url %}
-{% load i18n %}
-
- {% trans "Add" %}
-
-{% endif %}
+
+ {{ label }}
+
diff --git a/netbox/utilities/templates/buttons/bulk_delete.html b/netbox/utilities/templates/buttons/bulk_delete.html
index a4860ce2d..42dd7ce30 100644
--- a/netbox/utilities/templates/buttons/bulk_delete.html
+++ b/netbox/utilities/templates/buttons/bulk_delete.html
@@ -1,6 +1,3 @@
-{% load i18n %}
-{% if url %}
-
-{% endif %}
+
diff --git a/netbox/utilities/templates/buttons/bulk_disconnect.html b/netbox/utilities/templates/buttons/bulk_disconnect.html
index d5e6e6cd7..9ab53472b 100644
--- a/netbox/utilities/templates/buttons/bulk_disconnect.html
+++ b/netbox/utilities/templates/buttons/bulk_disconnect.html
@@ -1,6 +1,3 @@
-{% load i18n %}
-{% if url %}
-
-{% endif %}
+
diff --git a/netbox/utilities/templates/buttons/bulk_edit.html b/netbox/utilities/templates/buttons/bulk_edit.html
index a5aa03112..bc50d9b6e 100644
--- a/netbox/utilities/templates/buttons/bulk_edit.html
+++ b/netbox/utilities/templates/buttons/bulk_edit.html
@@ -1,6 +1,3 @@
-{% load i18n %}
-{% if url %}
-
-{% endif %}
+
diff --git a/netbox/utilities/templates/buttons/bulk_rename.html b/netbox/utilities/templates/buttons/bulk_rename.html
index aa1588e8d..376faa88b 100644
--- a/netbox/utilities/templates/buttons/bulk_rename.html
+++ b/netbox/utilities/templates/buttons/bulk_rename.html
@@ -1,6 +1,3 @@
-{% load i18n %}
-{% if url %}
-
-{% endif %}
+
diff --git a/netbox/utilities/templates/buttons/bulk_sync.html b/netbox/utilities/templates/buttons/bulk_sync.html
index 2563f0a95..e92ad15df 100644
--- a/netbox/utilities/templates/buttons/bulk_sync.html
+++ b/netbox/utilities/templates/buttons/bulk_sync.html
@@ -1,6 +1,3 @@
-{% load i18n %}
-{% if url %}
-
-{% endif %}
+
diff --git a/netbox/utilities/templates/buttons/delete.html b/netbox/utilities/templates/buttons/delete.html
index e367cfed1..768f605d0 100644
--- a/netbox/utilities/templates/buttons/delete.html
+++ b/netbox/utilities/templates/buttons/delete.html
@@ -1,12 +1,12 @@
-{% load i18n %}
- {% trans "Delete" %}
+ {{ label }}
diff --git a/netbox/utilities/templates/buttons/edit.html b/netbox/utilities/templates/buttons/edit.html
index 9dc9a0b46..9890e5952 100644
--- a/netbox/utilities/templates/buttons/edit.html
+++ b/netbox/utilities/templates/buttons/edit.html
@@ -1,4 +1,3 @@
-{% load i18n %}
- {% trans "Edit" %}
+ {{ label }}
diff --git a/netbox/utilities/templates/buttons/export.html b/netbox/utilities/templates/buttons/export.html
index 279757236..af388ca53 100644
--- a/netbox/utilities/templates/buttons/export.html
+++ b/netbox/utilities/templates/buttons/export.html
@@ -1,7 +1,7 @@
{% load i18n %}
diff --git a/netbox/utilities/templatetags/buttons.py b/netbox/utilities/templatetags/buttons.py
index 977ad8fd2..77163f515 100644
--- a/netbox/utilities/templatetags/buttons.py
+++ b/netbox/utilities/templatetags/buttons.py
@@ -3,6 +3,7 @@ from django.contrib.contenttypes.models import ContentType
from django.template import loader
from django.urls import NoReverseMatch, reverse
from django.utils.safestring import mark_safe
+from django.utils.translation import gettext as _
from core.models import ObjectType
from extras.models import Bookmark, ExportTemplate, Subscription
@@ -37,10 +38,6 @@ def action_buttons(context, actions, obj, multi=False):
return mark_safe(''.join(buttons))
-#
-# Legacy object buttons
-#
-
@register.inclusion_tag('buttons/bookmark.html', takes_context=True)
def bookmark_button(context, instance):
# Check if this user has already bookmarked the object
@@ -90,26 +87,6 @@ def clone_button(instance):
}
-@register.inclusion_tag('buttons/edit.html')
-def edit_button(instance):
- viewname = get_viewname(instance, 'edit')
- url = reverse(viewname, kwargs={'pk': instance.pk})
-
- return {
- 'url': url,
- }
-
-
-@register.inclusion_tag('buttons/delete.html')
-def delete_button(instance):
- viewname = get_viewname(instance, 'delete')
- url = reverse(viewname, kwargs={'pk': instance.pk})
-
- return {
- 'url': url,
- }
-
-
@register.inclusion_tag('buttons/subscribe.html', takes_context=True)
def subscribe_button(context, instance):
# Skip for objects which don't support notifications
@@ -145,12 +122,42 @@ def subscribe_button(context, instance):
}
+#
+# Legacy object buttons
+#
+
+# TODO: Remove in NetBox v4.6
+@register.inclusion_tag('buttons/edit.html')
+def edit_button(instance):
+ viewname = get_viewname(instance, 'edit')
+ url = reverse(viewname, kwargs={'pk': instance.pk})
+
+ return {
+ 'url': url,
+ 'label': _('Edit'),
+ }
+
+
+# TODO: Remove in NetBox v4.6
+@register.inclusion_tag('buttons/delete.html')
+def delete_button(instance):
+ viewname = get_viewname(instance, 'delete')
+ url = reverse(viewname, kwargs={'pk': instance.pk})
+
+ return {
+ 'url': url,
+ 'label': _('Delete'),
+ }
+
+
+# TODO: Remove in NetBox v4.6
@register.inclusion_tag('buttons/sync.html')
def sync_button(instance):
viewname = get_viewname(instance, 'sync')
url = reverse(viewname, kwargs={'pk': instance.pk})
return {
+ 'label': _('Sync'),
'url': url,
}
@@ -159,6 +166,7 @@ def sync_button(instance):
# Legacy list buttons
#
+# TODO: Remove in NetBox v4.6
@register.inclusion_tag('buttons/add.html')
def add_button(model, action='add'):
try:
@@ -168,9 +176,11 @@ def add_button(model, action='add'):
return {
'url': url,
+ 'label': _('Add'),
}
+# TODO: Remove in NetBox v4.6
@register.inclusion_tag('buttons/import.html')
def import_button(model, action='bulk_import'):
try:
@@ -180,9 +190,11 @@ def import_button(model, action='bulk_import'):
return {
'url': url,
+ 'label': _('Import'),
}
+# TODO: Remove in NetBox v4.6
@register.inclusion_tag('buttons/export.html', takes_context=True)
def export_button(context, model):
object_type = ObjectType.objects.get_for_model(model)
@@ -195,6 +207,7 @@ def export_button(context, model):
export_templates = ExportTemplate.objects.restrict(user, 'view').filter(object_types=object_type)
return {
+ 'label': _('Export'),
'perms': context['perms'],
'object_type': object_type,
'url_params': context['request'].GET.urlencode() if context['request'].GET else '',
@@ -203,6 +216,7 @@ def export_button(context, model):
}
+# TODO: Remove in NetBox v4.6
@register.inclusion_tag('buttons/bulk_edit.html', takes_context=True)
def bulk_edit_button(context, model, action='bulk_edit', query_params=None):
try:
@@ -213,11 +227,13 @@ def bulk_edit_button(context, model, action='bulk_edit', query_params=None):
url = None
return {
- 'htmx_navigation': context.get('htmx_navigation'),
+ 'label': _('Edit Selected'),
'url': url,
+ 'htmx_navigation': context.get('htmx_navigation'),
}
+# TODO: Remove in NetBox v4.6
@register.inclusion_tag('buttons/bulk_delete.html', takes_context=True)
def bulk_delete_button(context, model, action='bulk_delete', query_params=None):
try:
@@ -228,6 +244,7 @@ def bulk_delete_button(context, model, action='bulk_delete', query_params=None):
url = None
return {
- 'htmx_navigation': context.get('htmx_navigation'),
+ 'label': _('Delete Selected'),
'url': url,
+ 'htmx_navigation': context.get('htmx_navigation'),
}