| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- import django_tables2 as tables
- from django_tables2.utils import Accessor
- from dcim.models import (
- ConsolePortTemplate, ConsoleServerPortTemplate, DeviceBayTemplate, DeviceType, FrontPortTemplate, InterfaceTemplate,
- InventoryItemTemplate, Manufacturer, ModuleBayTemplate, PowerOutletTemplate, PowerPortTemplate, RearPortTemplate,
- )
- from utilities.tables import (
- ActionsColumn, BaseTable, BooleanColumn, ColorColumn, LinkedCountColumn, MarkdownColumn, TagColumn, ToggleColumn,
- )
- from .template_code import MODULAR_COMPONENT_TEMPLATE_BUTTONS
- __all__ = (
- 'ConsolePortTemplateTable',
- 'ConsoleServerPortTemplateTable',
- 'DeviceBayTemplateTable',
- 'DeviceTypeTable',
- 'FrontPortTemplateTable',
- 'InterfaceTemplateTable',
- 'InventoryItemTemplateTable',
- 'ManufacturerTable',
- 'ModuleBayTemplateTable',
- 'PowerOutletTemplateTable',
- 'PowerPortTemplateTable',
- 'RearPortTemplateTable',
- )
- #
- # Manufacturers
- #
- class ManufacturerTable(BaseTable):
- pk = ToggleColumn()
- name = tables.Column(
- linkify=True
- )
- devicetype_count = tables.Column(
- verbose_name='Device Types'
- )
- inventoryitem_count = tables.Column(
- verbose_name='Inventory Items'
- )
- platform_count = tables.Column(
- verbose_name='Platforms'
- )
- slug = tables.Column()
- tags = TagColumn(
- url_name='dcim:manufacturer_list'
- )
- class Meta(BaseTable.Meta):
- model = Manufacturer
- fields = (
- 'pk', 'id', 'name', 'devicetype_count', 'inventoryitem_count', 'platform_count', 'description', 'slug',
- 'actions',
- )
- default_columns = (
- 'pk', 'name', 'devicetype_count', 'inventoryitem_count', 'platform_count', 'description', 'slug',
- )
- #
- # Device types
- #
- class DeviceTypeTable(BaseTable):
- pk = ToggleColumn()
- model = tables.Column(
- linkify=True,
- verbose_name='Device Type'
- )
- is_full_depth = BooleanColumn(
- verbose_name='Full Depth'
- )
- instance_count = LinkedCountColumn(
- viewname='dcim:device_list',
- url_params={'device_type_id': 'pk'},
- verbose_name='Instances'
- )
- comments = MarkdownColumn()
- tags = TagColumn(
- url_name='dcim:devicetype_list'
- )
- class Meta(BaseTable.Meta):
- model = DeviceType
- fields = (
- 'pk', 'id', 'model', 'manufacturer', 'slug', 'part_number', 'u_height', 'is_full_depth', 'subdevice_role',
- 'airflow', 'comments', 'instance_count', 'tags',
- )
- default_columns = (
- 'pk', 'model', 'manufacturer', 'part_number', 'u_height', 'is_full_depth', 'instance_count',
- )
- #
- # Device type components
- #
- class ComponentTemplateTable(BaseTable):
- pk = ToggleColumn()
- id = tables.Column(
- verbose_name='ID'
- )
- name = tables.Column(
- order_by=('_name',)
- )
- class Meta(BaseTable.Meta):
- exclude = ('id', )
- class ConsolePortTemplateTable(ComponentTemplateTable):
- actions = ActionsColumn(
- sequence=('edit', 'delete'),
- extra_buttons=MODULAR_COMPONENT_TEMPLATE_BUTTONS
- )
- class Meta(ComponentTemplateTable.Meta):
- model = ConsolePortTemplate
- fields = ('pk', 'name', 'label', 'type', 'description', 'actions')
- empty_text = "None"
- class ConsoleServerPortTemplateTable(ComponentTemplateTable):
- actions = ActionsColumn(
- sequence=('edit', 'delete'),
- extra_buttons=MODULAR_COMPONENT_TEMPLATE_BUTTONS
- )
- class Meta(ComponentTemplateTable.Meta):
- model = ConsoleServerPortTemplate
- fields = ('pk', 'name', 'label', 'type', 'description', 'actions')
- empty_text = "None"
- class PowerPortTemplateTable(ComponentTemplateTable):
- actions = ActionsColumn(
- sequence=('edit', 'delete'),
- extra_buttons=MODULAR_COMPONENT_TEMPLATE_BUTTONS
- )
- class Meta(ComponentTemplateTable.Meta):
- model = PowerPortTemplate
- fields = ('pk', 'name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description', 'actions')
- empty_text = "None"
- class PowerOutletTemplateTable(ComponentTemplateTable):
- actions = ActionsColumn(
- sequence=('edit', 'delete'),
- extra_buttons=MODULAR_COMPONENT_TEMPLATE_BUTTONS
- )
- class Meta(ComponentTemplateTable.Meta):
- model = PowerOutletTemplate
- fields = ('pk', 'name', 'label', 'type', 'power_port', 'feed_leg', 'description', 'actions')
- empty_text = "None"
- class InterfaceTemplateTable(ComponentTemplateTable):
- mgmt_only = BooleanColumn(
- verbose_name='Management Only'
- )
- actions = ActionsColumn(
- sequence=('edit', 'delete'),
- extra_buttons=MODULAR_COMPONENT_TEMPLATE_BUTTONS
- )
- class Meta(ComponentTemplateTable.Meta):
- model = InterfaceTemplate
- fields = ('pk', 'name', 'label', 'mgmt_only', 'type', 'description', 'actions')
- empty_text = "None"
- class FrontPortTemplateTable(ComponentTemplateTable):
- rear_port_position = tables.Column(
- verbose_name='Position'
- )
- color = ColorColumn()
- actions = ActionsColumn(
- sequence=('edit', 'delete'),
- extra_buttons=MODULAR_COMPONENT_TEMPLATE_BUTTONS
- )
- class Meta(ComponentTemplateTable.Meta):
- model = FrontPortTemplate
- fields = ('pk', 'name', 'label', 'type', 'color', 'rear_port', 'rear_port_position', 'description', 'actions')
- empty_text = "None"
- class RearPortTemplateTable(ComponentTemplateTable):
- color = ColorColumn()
- actions = ActionsColumn(
- sequence=('edit', 'delete'),
- extra_buttons=MODULAR_COMPONENT_TEMPLATE_BUTTONS
- )
- class Meta(ComponentTemplateTable.Meta):
- model = RearPortTemplate
- fields = ('pk', 'name', 'label', 'type', 'color', 'positions', 'description', 'actions')
- empty_text = "None"
- class ModuleBayTemplateTable(ComponentTemplateTable):
- actions = ActionsColumn(
- sequence=('edit', 'delete')
- )
- class Meta(ComponentTemplateTable.Meta):
- model = ModuleBayTemplate
- fields = ('pk', 'name', 'label', 'position', 'description', 'actions')
- empty_text = "None"
- class DeviceBayTemplateTable(ComponentTemplateTable):
- actions = ActionsColumn(
- sequence=('edit', 'delete')
- )
- class Meta(ComponentTemplateTable.Meta):
- model = DeviceBayTemplate
- fields = ('pk', 'name', 'label', 'description', 'actions')
- empty_text = "None"
- class InventoryItemTemplateTable(ComponentTemplateTable):
- actions = ActionsColumn(
- sequence=('edit', 'delete')
- )
- role = tables.Column(
- linkify=True
- )
- manufacturer = tables.Column(
- linkify=True
- )
- component = tables.Column(
- accessor=Accessor('component'),
- orderable=False
- )
- class Meta(ComponentTemplateTable.Meta):
- model = InventoryItemTemplate
- fields = ('pk', 'name', 'label', 'role', 'manufacturer', 'part_id', 'component', 'description', 'actions')
- empty_text = "None"
|