|
@@ -3,11 +3,12 @@ from __future__ import unicode_literals
|
|
|
import django_tables2 as tables
|
|
|
from django_tables2.utils import Accessor
|
|
|
|
|
|
+from tenancy.tables import COL_TENANT
|
|
|
from utilities.tables import BaseTable, ToggleColumn
|
|
|
from .models import (
|
|
|
ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay,
|
|
|
- DeviceBayTemplate, DeviceRole, DeviceType, Interface, InterfaceTemplate, Manufacturer, Platform, PowerOutlet,
|
|
|
- PowerOutletTemplate, PowerPort, PowerPortTemplate, Rack, RackGroup, RackReservation, Region, Site,
|
|
|
+ DeviceBayTemplate, DeviceRole, DeviceType, Interface, InterfaceTemplate, InventoryItem, Manufacturer, Platform,
|
|
|
+ PowerOutlet, PowerOutletTemplate, PowerPort, PowerPortTemplate, Rack, RackGroup, RackReservation, Region, Site,
|
|
|
)
|
|
|
|
|
|
REGION_LINK = """
|
|
@@ -140,7 +141,7 @@ class SiteTable(BaseTable):
|
|
|
pk = ToggleColumn()
|
|
|
name = tables.LinkColumn()
|
|
|
region = tables.TemplateColumn(template_code=SITE_REGION_LINK)
|
|
|
- tenant = tables.LinkColumn('tenancy:tenant', args=[Accessor('tenant.slug')])
|
|
|
+ tenant = tables.TemplateColumn(template_code=COL_TENANT)
|
|
|
|
|
|
class Meta(BaseTable.Meta):
|
|
|
model = Site
|
|
@@ -207,7 +208,7 @@ class RackTable(BaseTable):
|
|
|
name = tables.LinkColumn()
|
|
|
site = tables.LinkColumn('dcim:site', args=[Accessor('site.slug')])
|
|
|
group = tables.Column(accessor=Accessor('group.name'), verbose_name='Group')
|
|
|
- tenant = tables.LinkColumn('tenancy:tenant', args=[Accessor('tenant.slug')])
|
|
|
+ tenant = tables.TemplateColumn(template_code=COL_TENANT)
|
|
|
role = tables.TemplateColumn(RACK_ROLE)
|
|
|
u_height = tables.TemplateColumn("{{ record.u_height }}U", verbose_name='Height')
|
|
|
|
|
@@ -231,7 +232,7 @@ class RackImportTable(BaseTable):
|
|
|
site = tables.LinkColumn('dcim:site', args=[Accessor('site.slug')], verbose_name='Site')
|
|
|
group = tables.Column(accessor=Accessor('group.name'), verbose_name='Group')
|
|
|
facility_id = tables.Column(verbose_name='Facility ID')
|
|
|
- tenant = tables.LinkColumn('tenancy:tenant', args=[Accessor('tenant.slug')], verbose_name='Tenant')
|
|
|
+ tenant = tables.TemplateColumn(template_code=COL_TENANT)
|
|
|
u_height = tables.Column(verbose_name='Height (U)')
|
|
|
|
|
|
class Meta(BaseTable.Meta):
|
|
@@ -381,13 +382,17 @@ class PlatformTable(BaseTable):
|
|
|
pk = ToggleColumn()
|
|
|
name = tables.LinkColumn(verbose_name='Name')
|
|
|
device_count = tables.Column(verbose_name='Devices')
|
|
|
+ vm_count = tables.Column(verbose_name='VMs')
|
|
|
slug = tables.Column(verbose_name='Slug')
|
|
|
- actions = tables.TemplateColumn(template_code=PLATFORM_ACTIONS, attrs={'td': {'class': 'text-right'}},
|
|
|
- verbose_name='')
|
|
|
+ actions = tables.TemplateColumn(
|
|
|
+ template_code=PLATFORM_ACTIONS,
|
|
|
+ attrs={'td': {'class': 'text-right'}},
|
|
|
+ verbose_name=''
|
|
|
+ )
|
|
|
|
|
|
class Meta(BaseTable.Meta):
|
|
|
model = Platform
|
|
|
- fields = ('pk', 'name', 'device_count', 'slug', 'napalm_driver', 'actions')
|
|
|
+ fields = ('pk', 'name', 'device_count', 'vm_count', 'slug', 'napalm_driver', 'actions')
|
|
|
|
|
|
|
|
|
#
|
|
@@ -398,7 +403,7 @@ class DeviceTable(BaseTable):
|
|
|
pk = ToggleColumn()
|
|
|
name = tables.TemplateColumn(template_code=DEVICE_LINK)
|
|
|
status = tables.TemplateColumn(template_code=DEVICE_STATUS, verbose_name='Status')
|
|
|
- tenant = tables.LinkColumn('tenancy:tenant', args=[Accessor('tenant.slug')])
|
|
|
+ tenant = tables.TemplateColumn(template_code=COL_TENANT)
|
|
|
site = tables.LinkColumn('dcim:site', args=[Accessor('site.slug')])
|
|
|
rack = tables.LinkColumn('dcim:rack', args=[Accessor('rack.pk')])
|
|
|
device_role = tables.TemplateColumn(DEVICE_ROLE, verbose_name='Role')
|
|
@@ -425,7 +430,7 @@ class DeviceDetailTable(DeviceTable):
|
|
|
class DeviceImportTable(BaseTable):
|
|
|
name = tables.TemplateColumn(template_code=DEVICE_LINK, verbose_name='Name')
|
|
|
status = tables.TemplateColumn(template_code=DEVICE_STATUS, verbose_name='Status')
|
|
|
- tenant = tables.LinkColumn('tenancy:tenant', args=[Accessor('tenant.slug')], verbose_name='Tenant')
|
|
|
+ tenant = tables.TemplateColumn(template_code=COL_TENANT)
|
|
|
site = tables.LinkColumn('dcim:site', args=[Accessor('site.slug')], verbose_name='Site')
|
|
|
rack = tables.LinkColumn('dcim:rack', args=[Accessor('rack.pk')], verbose_name='Rack')
|
|
|
position = tables.Column(verbose_name='Position')
|
|
@@ -523,3 +528,17 @@ class InterfaceConnectionTable(BaseTable):
|
|
|
class Meta(BaseTable.Meta):
|
|
|
model = Interface
|
|
|
fields = ('device_a', 'interface_a', 'device_b', 'interface_b')
|
|
|
+
|
|
|
+
|
|
|
+#
|
|
|
+# InventoryItems
|
|
|
+#
|
|
|
+
|
|
|
+class InventoryItemTable(BaseTable):
|
|
|
+ pk = ToggleColumn()
|
|
|
+ device = tables.LinkColumn('dcim:device_inventory', args=[Accessor('device.pk')])
|
|
|
+ manufacturer = tables.Column(accessor=Accessor('manufacturer.name'), verbose_name='Manufacturer')
|
|
|
+
|
|
|
+ class Meta(BaseTable.Meta):
|
|
|
+ model = InventoryItem
|
|
|
+ fields = ('pk', 'device', 'name', 'manufacturer', 'part_id', 'serial', 'asset_tag', 'description')
|