Standardize related model display for organizational models

This commit is contained in:
jeremystretch
2023-01-25 16:01:10 -05:00
committed by jeremystretch
parent 91b81d51da
commit 94797bb956
16 changed files with 91 additions and 260 deletions

View File

@@ -165,6 +165,15 @@ class RIRListView(generic.ObjectListView):
class RIRView(generic.ObjectView):
queryset = RIR.objects.all()
def get_extra_context(self, request, instance):
related_models = (
(Aggregate.objects.restrict(request.user, 'view').filter(rir=instance), 'rir_id'),
)
return {
'related_models': related_models,
}
@register_model_view(RIR, 'edit')
class RIREditView(generic.ObjectEditView):
@@ -368,6 +377,17 @@ class RoleListView(generic.ObjectListView):
class RoleView(generic.ObjectView):
queryset = Role.objects.all()
def get_extra_context(self, request, instance):
related_models = (
(Prefix.objects.restrict(request.user, 'view').filter(role=instance), 'role_id'),
(IPRange.objects.restrict(request.user, 'view').filter(role=instance), 'role_id'),
(VLAN.objects.restrict(request.user, 'view').filter(role=instance), 'role_id'),
)
return {
'related_models': related_models,
}
@register_model_view(Role, 'edit')
class RoleEditView(generic.ObjectEditView):
@@ -839,6 +859,11 @@ class VLANGroupView(generic.ObjectView):
queryset = VLANGroup.objects.all()
def get_extra_context(self, request, instance):
related_models = (
(VLAN.objects.restrict(request.user, 'view').filter(group=instance), 'group_id'),
)
# TODO: Replace with embedded table
vlans = VLAN.objects.restrict(request.user, 'view').filter(group=instance).prefetch_related(
Prefetch('prefixes', queryset=Prefix.objects.restrict(request.user)),
'tenant', 'site', 'role',
@@ -852,7 +877,7 @@ class VLANGroupView(generic.ObjectView):
vlans_table.configure(request)
return {
'vlans_count': vlans_count,
'related_models': related_models,
'vlans_table': vlans_table,
}