mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-22 03:56:53 -06:00
Closes #973: Removed extraneous admin UI functions
This commit is contained in:
parent
69e54ab410
commit
58e4bf1cc3
@ -1,29 +0,0 @@
|
|||||||
from django.contrib import admin
|
|
||||||
|
|
||||||
from .models import Provider, CircuitType, Circuit
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Provider)
|
|
||||||
class ProviderAdmin(admin.ModelAdmin):
|
|
||||||
prepopulated_fields = {
|
|
||||||
'slug': ['name'],
|
|
||||||
}
|
|
||||||
list_display = ['name', 'slug', 'asn']
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(CircuitType)
|
|
||||||
class CircuitTypeAdmin(admin.ModelAdmin):
|
|
||||||
prepopulated_fields = {
|
|
||||||
'slug': ['name'],
|
|
||||||
}
|
|
||||||
list_display = ['name', 'slug']
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Circuit)
|
|
||||||
class CircuitAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ['cid', 'provider', 'type', 'tenant', 'install_date', 'commit_rate_human']
|
|
||||||
list_filter = ['provider', 'type', 'tenant']
|
|
||||||
|
|
||||||
def get_queryset(self, request):
|
|
||||||
qs = super(CircuitAdmin, self).get_queryset(request)
|
|
||||||
return qs.select_related('provider', 'type', 'tenant')
|
|
@ -1,212 +0,0 @@
|
|||||||
from django.contrib import admin
|
|
||||||
from django.db.models import Count
|
|
||||||
|
|
||||||
from mptt.admin import MPTTModelAdmin
|
|
||||||
|
|
||||||
from .models import (
|
|
||||||
ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay,
|
|
||||||
DeviceBayTemplate, DeviceRole, DeviceType, Interface, InterfaceTemplate, Manufacturer, InventoryItem, Platform,
|
|
||||||
PowerOutlet, PowerOutletTemplate, PowerPort, PowerPortTemplate, Rack, RackGroup, RackReservation, RackRole, Region,
|
|
||||||
Site,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Region)
|
|
||||||
class RegionAdmin(MPTTModelAdmin):
|
|
||||||
list_display = ['name', 'parent', 'slug']
|
|
||||||
prepopulated_fields = {
|
|
||||||
'slug': ['name'],
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Site)
|
|
||||||
class SiteAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ['name', 'slug', 'facility', 'asn']
|
|
||||||
prepopulated_fields = {
|
|
||||||
'slug': ['name'],
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(RackGroup)
|
|
||||||
class RackGroupAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ['name', 'slug', 'site']
|
|
||||||
prepopulated_fields = {
|
|
||||||
'slug': ['name'],
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(RackRole)
|
|
||||||
class RackRoleAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ['name', 'slug', 'color']
|
|
||||||
prepopulated_fields = {
|
|
||||||
'slug': ['name'],
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Rack)
|
|
||||||
class RackAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ['name', 'facility_id', 'site', 'group', 'tenant', 'role', 'type', 'width', 'u_height']
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(RackReservation)
|
|
||||||
class RackRackReservationAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ['rack', 'units', 'description', 'user', 'created']
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Device types
|
|
||||||
#
|
|
||||||
|
|
||||||
@admin.register(Manufacturer)
|
|
||||||
class ManufacturerAdmin(admin.ModelAdmin):
|
|
||||||
prepopulated_fields = {
|
|
||||||
'slug': ['name'],
|
|
||||||
}
|
|
||||||
list_display = ['name', 'slug']
|
|
||||||
|
|
||||||
|
|
||||||
class ConsolePortTemplateAdmin(admin.TabularInline):
|
|
||||||
model = ConsolePortTemplate
|
|
||||||
|
|
||||||
|
|
||||||
class ConsoleServerPortTemplateAdmin(admin.TabularInline):
|
|
||||||
model = ConsoleServerPortTemplate
|
|
||||||
|
|
||||||
|
|
||||||
class PowerPortTemplateAdmin(admin.TabularInline):
|
|
||||||
model = PowerPortTemplate
|
|
||||||
|
|
||||||
|
|
||||||
class PowerOutletTemplateAdmin(admin.TabularInline):
|
|
||||||
model = PowerOutletTemplate
|
|
||||||
|
|
||||||
|
|
||||||
class InterfaceTemplateAdmin(admin.TabularInline):
|
|
||||||
model = InterfaceTemplate
|
|
||||||
|
|
||||||
|
|
||||||
class DeviceBayTemplateAdmin(admin.TabularInline):
|
|
||||||
model = DeviceBayTemplate
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(DeviceType)
|
|
||||||
class DeviceTypeAdmin(admin.ModelAdmin):
|
|
||||||
prepopulated_fields = {
|
|
||||||
'slug': ['model'],
|
|
||||||
}
|
|
||||||
inlines = [
|
|
||||||
ConsolePortTemplateAdmin,
|
|
||||||
ConsoleServerPortTemplateAdmin,
|
|
||||||
PowerPortTemplateAdmin,
|
|
||||||
PowerOutletTemplateAdmin,
|
|
||||||
InterfaceTemplateAdmin,
|
|
||||||
DeviceBayTemplateAdmin,
|
|
||||||
]
|
|
||||||
list_display = ['model', 'manufacturer', 'slug', 'part_number', 'u_height', 'console_ports', 'console_server_ports',
|
|
||||||
'power_ports', 'power_outlets', 'interfaces', 'device_bays']
|
|
||||||
list_filter = ['manufacturer']
|
|
||||||
|
|
||||||
def get_queryset(self, request):
|
|
||||||
return DeviceType.objects.annotate(
|
|
||||||
console_port_count=Count('console_port_templates', distinct=True),
|
|
||||||
cs_port_count=Count('cs_port_templates', distinct=True),
|
|
||||||
power_port_count=Count('power_port_templates', distinct=True),
|
|
||||||
power_outlet_count=Count('power_outlet_templates', distinct=True),
|
|
||||||
interface_count=Count('interface_templates', distinct=True),
|
|
||||||
devicebay_count=Count('device_bay_templates', distinct=True),
|
|
||||||
)
|
|
||||||
|
|
||||||
def console_ports(self, instance):
|
|
||||||
return instance.console_port_count
|
|
||||||
|
|
||||||
def console_server_ports(self, instance):
|
|
||||||
return instance.cs_port_count
|
|
||||||
|
|
||||||
def power_ports(self, instance):
|
|
||||||
return instance.power_port_count
|
|
||||||
|
|
||||||
def power_outlets(self, instance):
|
|
||||||
return instance.power_outlet_count
|
|
||||||
|
|
||||||
def interfaces(self, instance):
|
|
||||||
return instance.interface_count
|
|
||||||
|
|
||||||
def device_bays(self, instance):
|
|
||||||
return instance.devicebay_count
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Devices
|
|
||||||
#
|
|
||||||
|
|
||||||
@admin.register(DeviceRole)
|
|
||||||
class DeviceRoleAdmin(admin.ModelAdmin):
|
|
||||||
prepopulated_fields = {
|
|
||||||
'slug': ['name'],
|
|
||||||
}
|
|
||||||
list_display = ['name', 'slug', 'color']
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Platform)
|
|
||||||
class PlatformAdmin(admin.ModelAdmin):
|
|
||||||
prepopulated_fields = {
|
|
||||||
'slug': ['name'],
|
|
||||||
}
|
|
||||||
list_display = ['name', 'rpc_client']
|
|
||||||
|
|
||||||
|
|
||||||
class ConsolePortAdmin(admin.TabularInline):
|
|
||||||
model = ConsolePort
|
|
||||||
readonly_fields = ['cs_port']
|
|
||||||
|
|
||||||
|
|
||||||
class ConsoleServerPortAdmin(admin.TabularInline):
|
|
||||||
model = ConsoleServerPort
|
|
||||||
|
|
||||||
|
|
||||||
class PowerPortAdmin(admin.TabularInline):
|
|
||||||
model = PowerPort
|
|
||||||
readonly_fields = ['power_outlet']
|
|
||||||
|
|
||||||
|
|
||||||
class PowerOutletAdmin(admin.TabularInline):
|
|
||||||
model = PowerOutlet
|
|
||||||
|
|
||||||
|
|
||||||
class InterfaceAdmin(admin.TabularInline):
|
|
||||||
model = Interface
|
|
||||||
|
|
||||||
|
|
||||||
class DeviceBayAdmin(admin.TabularInline):
|
|
||||||
model = DeviceBay
|
|
||||||
fk_name = 'device'
|
|
||||||
readonly_fields = ['installed_device']
|
|
||||||
|
|
||||||
|
|
||||||
class InventoryItemAdmin(admin.TabularInline):
|
|
||||||
model = InventoryItem
|
|
||||||
readonly_fields = ['parent', 'discovered']
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Device)
|
|
||||||
class DeviceAdmin(admin.ModelAdmin):
|
|
||||||
inlines = [
|
|
||||||
ConsolePortAdmin,
|
|
||||||
ConsoleServerPortAdmin,
|
|
||||||
PowerPortAdmin,
|
|
||||||
PowerOutletAdmin,
|
|
||||||
InterfaceAdmin,
|
|
||||||
DeviceBayAdmin,
|
|
||||||
InventoryItemAdmin,
|
|
||||||
]
|
|
||||||
list_display = ['display_name', 'device_type_full_name', 'device_role', 'primary_ip', 'rack', 'position', 'asset_tag',
|
|
||||||
'serial']
|
|
||||||
list_filter = ['device_role']
|
|
||||||
|
|
||||||
def get_queryset(self, request):
|
|
||||||
qs = super(DeviceAdmin, self).get_queryset(request)
|
|
||||||
return qs.select_related('device_type__manufacturer', 'device_role', 'primary_ip4', 'primary_ip6', 'rack')
|
|
||||||
|
|
||||||
def device_type_full_name(self, obj):
|
|
||||||
return obj.device_type.full_name
|
|
||||||
device_type_full_name.short_description = 'Device type'
|
|
@ -1,81 +0,0 @@
|
|||||||
from django.contrib import admin
|
|
||||||
|
|
||||||
from .models import (
|
|
||||||
Aggregate, IPAddress, Prefix, RIR, Role, VLAN, VLANGroup, VRF,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(VRF)
|
|
||||||
class VRFAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ['name', 'rd', 'tenant', 'enforce_unique']
|
|
||||||
list_filter = ['tenant']
|
|
||||||
|
|
||||||
def get_queryset(self, request):
|
|
||||||
qs = super(VRFAdmin, self).get_queryset(request)
|
|
||||||
return qs.select_related('tenant')
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Role)
|
|
||||||
class RoleAdmin(admin.ModelAdmin):
|
|
||||||
prepopulated_fields = {
|
|
||||||
'slug': ['name'],
|
|
||||||
}
|
|
||||||
list_display = ['name', 'slug', 'weight']
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(RIR)
|
|
||||||
class RIRAdmin(admin.ModelAdmin):
|
|
||||||
prepopulated_fields = {
|
|
||||||
'slug': ['name'],
|
|
||||||
}
|
|
||||||
list_display = ['name', 'slug', 'is_private']
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Aggregate)
|
|
||||||
class AggregateAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ['prefix', 'rir', 'date_added']
|
|
||||||
list_filter = ['family', 'rir']
|
|
||||||
search_fields = ['prefix']
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Prefix)
|
|
||||||
class PrefixAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ['prefix', 'vrf', 'tenant', 'site', 'status', 'role', 'vlan']
|
|
||||||
list_filter = ['family', 'site', 'status', 'role']
|
|
||||||
search_fields = ['prefix']
|
|
||||||
|
|
||||||
def get_queryset(self, request):
|
|
||||||
qs = super(PrefixAdmin, self).get_queryset(request)
|
|
||||||
return qs.select_related('vrf', 'site', 'role', 'vlan')
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(IPAddress)
|
|
||||||
class IPAddressAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ['address', 'vrf', 'tenant', 'nat_inside']
|
|
||||||
list_filter = ['family']
|
|
||||||
fields = ['address', 'vrf', 'device', 'interface', 'nat_inside']
|
|
||||||
readonly_fields = ['interface', 'device', 'nat_inside']
|
|
||||||
search_fields = ['address']
|
|
||||||
|
|
||||||
def get_queryset(self, request):
|
|
||||||
qs = super(IPAddressAdmin, self).get_queryset(request)
|
|
||||||
return qs.select_related('vrf', 'nat_inside')
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(VLANGroup)
|
|
||||||
class VLANGroupAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ['name', 'site', 'slug']
|
|
||||||
prepopulated_fields = {
|
|
||||||
'slug': ['name'],
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(VLAN)
|
|
||||||
class VLANAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ['site', 'vid', 'name', 'tenant', 'status', 'role']
|
|
||||||
list_filter = ['site', 'tenant', 'status', 'role']
|
|
||||||
search_fields = ['vid', 'name']
|
|
||||||
|
|
||||||
def get_queryset(self, request):
|
|
||||||
qs = super(VLANAdmin, self).get_queryset(request)
|
|
||||||
return qs.select_related('site', 'tenant', 'role')
|
|
@ -54,18 +54,3 @@ class UserKeyAdmin(admin.ModelAdmin):
|
|||||||
'form': form,
|
'form': form,
|
||||||
})
|
})
|
||||||
activate_selected.short_description = "Activate selected user keys"
|
activate_selected.short_description = "Activate selected user keys"
|
||||||
|
|
||||||
|
|
||||||
@admin.register(SecretRole)
|
|
||||||
class SecretRoleAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ['name', 'slug']
|
|
||||||
prepopulated_fields = {
|
|
||||||
'slug': ['name'],
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Secret)
|
|
||||||
class SecretAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ['device', 'role', 'name', 'created', 'last_updated']
|
|
||||||
fields = ['device', 'role', 'name', 'hash', 'created', 'last_updated']
|
|
||||||
readonly_fields = ['device', 'hash', 'created', 'last_updated']
|
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
from django.contrib import admin
|
|
||||||
|
|
||||||
from .models import Tenant, TenantGroup
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(TenantGroup)
|
|
||||||
class TenantGroupAdmin(admin.ModelAdmin):
|
|
||||||
prepopulated_fields = {
|
|
||||||
'slug': ['name'],
|
|
||||||
}
|
|
||||||
list_display = ['name', 'slug']
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Tenant)
|
|
||||||
class TenantAdmin(admin.ModelAdmin):
|
|
||||||
prepopulated_fields = {
|
|
||||||
'slug': ['name'],
|
|
||||||
}
|
|
||||||
list_display = ['name', 'slug', 'group', 'description']
|
|
||||||
|
|
||||||
def get_queryset(self, request):
|
|
||||||
qs = super(TenantAdmin, self).get_queryset(request)
|
|
||||||
return qs.select_related('group')
|
|
Loading…
Reference in New Issue
Block a user