Skip to content

Commit 83d3de2

Browse files
committed
Fixes netbox-community#16232: Fix inclusion of bulk action checkboxes on dynamic tables
1 parent 97f8f94 commit 83d3de2

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

netbox/netbox/tables/tables.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from copy import deepcopy
2+
from functools import cached_property
23

34
import django_tables2 as tables
45
from django.contrib.auth.models import AnonymousUser
@@ -189,6 +190,7 @@ class NetBoxTable(BaseTable):
189190
actions = columns.ActionsColumn()
190191

191192
exempt_columns = ('pk', 'actions')
193+
embedded = False
192194

193195
class Meta(BaseTable.Meta):
194196
pass
@@ -218,12 +220,12 @@ def __init__(self, *args, extra_columns=None, **kwargs):
218220

219221
super().__init__(*args, extra_columns=extra_columns, **kwargs)
220222

221-
@property
223+
@cached_property
222224
def htmx_url(self):
223225
"""
224226
Return the base HTML request URL for embedded tables.
225227
"""
226-
if getattr(self, 'embedded', False):
228+
if self.embedded:
227229
viewname = get_viewname(self._meta.model, action='list')
228230
try:
229231
return reverse(viewname)

netbox/netbox/views/generic/bulk_views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def get(self, request):
163163

164164
# If this is an HTMX request, return only the rendered table HTML
165165
if htmx_partial(request):
166-
if not request.htmx.target:
166+
if request.GET.get('embedded', False):
167167
table.embedded = True
168168
# Hide selection checkboxes
169169
if 'pk' in table.base_columns:
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<div class="htmx-container table-responsive"
2-
hx-get="{% url viewname %}{% if url_params %}?{{ url_params.urlencode }}{% endif %}"
2+
hx-get="{% url viewname %}?embedded=True{% if url_params %}&{{ url_params.urlencode }}{% endif %}"
33
hx-target="this"
44
hx-trigger="load" hx-select=".htmx-container" hx-swap="outerHTML"
55
></div>

0 commit comments

Comments
 (0)