mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-19 17:59:11 -06:00
Add prep_table_data() method to ObjectChildrenView
This commit is contained in:
parent
4ffa823ab8
commit
c981b5cba0
@ -462,14 +462,14 @@ class PrefixPrefixesView(generic.ObjectChildrenView):
|
||||
template_name = 'ipam/prefix/prefixes.html'
|
||||
|
||||
def get_children(self, request, parent):
|
||||
child_prefixes = parent.get_child_prefixes().restrict(request.user, 'view')
|
||||
return parent.get_child_prefixes().restrict(request.user, 'view')
|
||||
|
||||
# Add available prefixes if requested
|
||||
def prep_table_data(self, request, queryset, parent):
|
||||
# Determine whether to show assigned prefixes, available prefixes, or both
|
||||
show_available = bool(request.GET.get('show_available', 'true') == 'true')
|
||||
show_assigned = bool(request.GET.get('show_assigned', 'true') == 'true')
|
||||
child_prefixes = add_requested_prefixes(parent.prefix, child_prefixes, show_available, show_assigned)
|
||||
|
||||
return child_prefixes
|
||||
return add_requested_prefixes(parent.prefix, queryset, show_available, show_assigned)
|
||||
|
||||
def get_extra_context(self, request, instance):
|
||||
return {
|
||||
|
@ -96,6 +96,16 @@ class ObjectChildrenView(ObjectView):
|
||||
"""
|
||||
raise NotImplementedError(f'{self.__class__.__name__} must implement get_children()')
|
||||
|
||||
def prep_table_data(self, request, queryset, parent):
|
||||
"""
|
||||
Provides a hook for subclassed views to modify data before initializing the table.
|
||||
|
||||
:param request: The current request
|
||||
:param queryset: The filtered queryset of child objects
|
||||
:param parent: The parent object
|
||||
"""
|
||||
return queryset
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
"""
|
||||
GET handler for rendering child objects.
|
||||
@ -111,7 +121,7 @@ class ObjectChildrenView(ObjectView):
|
||||
perm_name = get_permission_for_model(self.child_model, action)
|
||||
permissions[action] = request.user.has_perm(perm_name)
|
||||
|
||||
table = self.table(child_objects, user=request.user)
|
||||
table = self.table(self.prep_table_data(request, child_objects, instance), user=request.user)
|
||||
# Determine whether to display bulk action checkboxes
|
||||
if 'pk' in table.base_columns and (permissions['change'] or permissions['delete']):
|
||||
table.columns.show('pk')
|
||||
|
Loading…
Reference in New Issue
Block a user