mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Initial work on #6732
This commit is contained in:
@@ -2,7 +2,8 @@ from django.db.models import Prefetch
|
||||
from django.db.models.expressions import RawSQL
|
||||
from django.shortcuts import get_object_or_404, redirect, render
|
||||
|
||||
from dcim.models import Device, Interface
|
||||
from dcim.models import Device, Interface, Site
|
||||
from dcim.tables import SiteTable
|
||||
from netbox.views import generic
|
||||
from utilities.forms import TableConfigForm
|
||||
from utilities.tables import paginate_table
|
||||
@@ -11,6 +12,7 @@ from virtualization.models import VirtualMachine, VMInterface
|
||||
from . import filtersets, forms, tables
|
||||
from .constants import *
|
||||
from .models import *
|
||||
from .models import ASN
|
||||
from .utils import add_available_ipaddresses, add_available_prefixes, add_available_vlans
|
||||
|
||||
|
||||
@@ -195,6 +197,65 @@ class RIRBulkDeleteView(generic.BulkDeleteView):
|
||||
table = tables.RIRTable
|
||||
|
||||
|
||||
#
|
||||
# ASNs
|
||||
#
|
||||
|
||||
class ASNListView(generic.ObjectListView):
|
||||
queryset = ASN.objects.annotate(
|
||||
site_count=count_related(Site, 'asns'),
|
||||
)
|
||||
filterset = filtersets.ASNFilterSet
|
||||
filterset_form = forms.ASNFilterForm
|
||||
table = tables.ASNTable
|
||||
|
||||
|
||||
class ASNView(generic.ObjectView):
|
||||
queryset = ASN.objects.all()
|
||||
|
||||
def get_extra_context(self, request, instance):
|
||||
sites_table = SiteTable(
|
||||
list(instance.sites.all()),
|
||||
orderable=False
|
||||
)
|
||||
|
||||
return {
|
||||
'sites_table': sites_table,
|
||||
}
|
||||
|
||||
|
||||
class ASNEditView(generic.ObjectEditView):
|
||||
queryset = ASN.objects.all()
|
||||
model_form = forms.ASNForm
|
||||
|
||||
|
||||
class ASNDeleteView(generic.ObjectDeleteView):
|
||||
queryset = ASN.objects.all()
|
||||
|
||||
|
||||
class ASNBulkImportView(generic.BulkImportView):
|
||||
queryset = ASN.objects.all()
|
||||
model_form = forms.ASNCSVForm
|
||||
table = tables.ASNTable
|
||||
|
||||
|
||||
class ASNBulkEditView(generic.BulkEditView):
|
||||
queryset = ASN.objects.annotate(
|
||||
site_count=count_related(Site, 'asns')
|
||||
)
|
||||
filterset = filtersets.ASNFilterSet
|
||||
table = tables.ASNTable
|
||||
form = forms.ASNBulkEditForm
|
||||
|
||||
|
||||
class ASNBulkDeleteView(generic.BulkDeleteView):
|
||||
queryset = ASN.objects.annotate(
|
||||
site_count=count_related(Site, 'asns')
|
||||
)
|
||||
filterset = filtersets.ASNFilterSet
|
||||
table = tables.ASNTable
|
||||
|
||||
|
||||
#
|
||||
# Aggregates
|
||||
#
|
||||
|
Reference in New Issue
Block a user