mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-20 02:06:42 -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'
|
template_name = 'ipam/prefix/prefixes.html'
|
||||||
|
|
||||||
def get_children(self, request, parent):
|
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_available = bool(request.GET.get('show_available', 'true') == 'true')
|
||||||
show_assigned = bool(request.GET.get('show_assigned', '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):
|
def get_extra_context(self, request, instance):
|
||||||
return {
|
return {
|
||||||
|
@ -96,6 +96,16 @@ class ObjectChildrenView(ObjectView):
|
|||||||
"""
|
"""
|
||||||
raise NotImplementedError(f'{self.__class__.__name__} must implement get_children()')
|
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):
|
def get(self, request, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
GET handler for rendering child objects.
|
GET handler for rendering child objects.
|
||||||
@ -111,7 +121,7 @@ class ObjectChildrenView(ObjectView):
|
|||||||
perm_name = get_permission_for_model(self.child_model, action)
|
perm_name = get_permission_for_model(self.child_model, action)
|
||||||
permissions[action] = request.user.has_perm(perm_name)
|
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
|
# Determine whether to display bulk action checkboxes
|
||||||
if 'pk' in table.base_columns and (permissions['change'] or permissions['delete']):
|
if 'pk' in table.base_columns and (permissions['change'] or permissions['delete']):
|
||||||
table.columns.show('pk')
|
table.columns.show('pk')
|
||||||
|
Loading…
Reference in New Issue
Block a user