Example #1
0
class RIRTable(BaseTable):
    pk = ToggleColumn()
    name = tables.LinkColumn(verbose_name='Name')
    is_private = tables.BooleanColumn(verbose_name='Private')
    aggregate_count = tables.Column(verbose_name='Aggregates')
    stats_total = tables.Column(accessor='stats.total',
                                verbose_name='Total',
                                footer=lambda table: sum(r.stats['total']
                                                         for r in table.data))
    stats_active = tables.Column(accessor='stats.active',
                                 verbose_name='Active',
                                 footer=lambda table: sum(r.stats['active']
                                                          for r in table.data))
    stats_reserved = tables.Column(
        accessor='stats.reserved',
        verbose_name='Reserved',
        footer=lambda table: sum(r.stats['reserved'] for r in table.data))
    stats_deprecated = tables.Column(
        accessor='stats.deprecated',
        verbose_name='Deprecated',
        footer=lambda table: sum(r.stats['deprecated'] for r in table.data))
    stats_available = tables.Column(
        accessor='stats.available',
        verbose_name='Available',
        footer=lambda table: sum(r.stats['available'] for r in table.data))
    utilization = tables.TemplateColumn(template_code=RIR_UTILIZATION,
                                        verbose_name='Utilization')
    actions = tables.TemplateColumn(template_code=RIR_ACTIONS,
                                    attrs={'td': {
                                        'class': 'text-right'
                                    }},
                                    verbose_name='')

    class Meta(BaseTable.Meta):
        model = RIR
        fields = ('pk', 'name', 'is_private', 'aggregate_count', 'stats_total',
                  'stats_active', 'stats_reserved', 'stats_deprecated',
                  'stats_available', 'utilization', 'actions')
Example #2
0
class IPAddressTable(BaseTable):
    pk = ToggleColumn()
    address = tables.TemplateColumn(
        template_code=IPADDRESS_LINK,
        verbose_name='IP Address'
    )
    vrf = tables.TemplateColumn(
        template_code=VRF_LINK,
        verbose_name='VRF'
    )
    status = ChoiceFieldColumn(
        default=AVAILABLE_LABEL
    )
    role = ChoiceFieldColumn()
    tenant = tables.TemplateColumn(
        template_code=TENANT_LINK
    )
    assigned_object = tables.Column(
        linkify=True,
        orderable=False,
        verbose_name='Interface'
    )
    assigned_object_parent = tables.Column(
        accessor='assigned_object__parent',
        linkify=True,
        orderable=False,
        verbose_name='Interface Parent'
    )

    class Meta(BaseTable.Meta):
        model = IPAddress
        fields = (
            'pk', 'address', 'vrf', 'status', 'role', 'tenant', 'assigned_object', 'assigned_object_parent', 'dns_name',
            'description',
        )
        row_attrs = {
            'class': lambda record: 'success' if not isinstance(record, IPAddress) else '',
        }
Example #3
0
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',
            'created',
            'last_updated',
        )
        default_columns = (
            'pk',
            'model',
            'manufacturer',
            'part_number',
            'u_height',
            'is_full_depth',
            'instance_count',
        )
Example #4
0
class WebhookTable(BaseTable):
    pk = ToggleColumn()
    name = tables.Column(linkify=True)
    content_types = ContentTypesColumn()
    enabled = BooleanColumn()
    type_create = BooleanColumn(verbose_name='Create')
    type_update = BooleanColumn(verbose_name='Update')
    type_delete = BooleanColumn(verbose_name='Delete')
    ssl_validation = BooleanColumn(verbose_name='SSL Validation')

    class Meta(BaseTable.Meta):
        model = Webhook
        fields = (
            'pk',
            'id',
            'name',
            'content_types',
            'enabled',
            'type_create',
            'type_update',
            'type_delete',
            'http_method',
            'payload_url',
            'secret',
            'ssl_validation',
            'ca_file_path',
        )
        default_columns = (
            'pk',
            'name',
            'content_types',
            'enabled',
            'type_create',
            'type_update',
            'type_delete',
            'http_method',
            'payload_url',
        )
Example #5
0
class ServiceTable(BaseTable):
    pk = ToggleColumn()

    clickable = {
        'td': {
            'onclick':
            lambda record: "window.location='{0}'".format(
                reverse('plugins:netbox_netisp:account_selected',
                        kwargs={
                            'pk': record.account.pk,
                            'service_id': record.pk
                        }))
        }
    }

    speed = tables.Column(verbose_name="Speed",
                          accessor=A('billing_package__download_speed'),
                          linkify=False,
                          attrs=clickable)

    mrc = tables.Column(verbose_name="MRC",
                        accessor=A('billing_package__price'),
                        linkify=False,
                        attrs=clickable)

    billing_package = tables.Column(attrs=clickable)
    address = tables.Column(attrs=clickable)

    def render_speed(self, value, record):
        return "↓ {0}mbps / ↑ {1}mbps ".format(
            value, record.billing_package.upload_speed)

    def render_mrc(self, value):
        return "${0}/month".format(value)

    class Meta(BaseTable.Meta):
        model = Service
        fields = ("pk", "billing_package", "address", "mrc", "speed")
Example #6
0
class CustomFieldTable(BaseTable):
    pk = ToggleColumn()
    name = tables.Column(linkify=True)
    content_types = ContentTypesColumn()
    required = BooleanColumn()

    class Meta(BaseTable.Meta):
        model = CustomField
        fields = (
            'pk',
            'name',
            'content_types',
            'label',
            'type',
            'required',
            'weight',
            'default',
            'description',
            'filter_logic',
            'choices',
        )
        default_columns = ('pk', 'name', 'content_types', 'label', 'type',
                           'required', 'description')
Example #7
0
class VMInterfaceTable(BaseInterfaceTable):
    pk = ToggleColumn()
    virtual_machine = tables.LinkColumn()
    name = tables.Column(linkify=True)
    tags = TagColumn(url_name='virtualization:vminterface_list')

    class Meta(BaseTable.Meta):
        model = VMInterface
        fields = (
            'pk',
            'virtual_machine',
            'name',
            'enabled',
            'mac_address',
            'mtu',
            'description',
            'tags',
            'ip_addresses',
            'untagged_vlan',
            'tagged_vlans',
        )
        default_columns = ('pk', 'virtual_machine', 'name', 'enabled',
                           'description')
Example #8
0
class PlatformTable(BaseTable):
    pk = ToggleColumn()
    device_count = LinkedCountColumn(
        viewname='dcim:device_list',
        url_params={'platform': 'slug'},
        verbose_name='Devices'
    )
    vm_count = LinkedCountColumn(
        viewname='virtualization:virtualmachine_list',
        url_params={'platform': 'slug'},
        verbose_name='VMs'
    )
    actions = ButtonsColumn(Platform, pk_field='slug')

    class Meta(BaseTable.Meta):
        model = Platform
        fields = (
            'pk', 'name', 'manufacturer', 'device_count', 'vm_count', 'slug', 'napalm_driver', 'napalm_args',
            'description', 'actions',
        )
        default_columns = (
            'pk', 'name', 'manufacturer', 'device_count', 'vm_count', 'napalm_driver', 'description', 'actions',
        )
Example #9
0
File: vlans.py Project: xcdr/netbox
class VLANTable(BaseTable):
    pk = ToggleColumn()
    vid = tables.TemplateColumn(template_code=VLAN_LINK, verbose_name='ID')
    site = tables.Column(linkify=True)
    group = tables.Column(linkify=True)
    tenant = TenantColumn()
    status = ChoiceFieldColumn(default=AVAILABLE_LABEL)
    role = tables.Column(linkify=True)
    prefixes = TemplateColumn(template_code=VLAN_PREFIXES,
                              orderable=False,
                              verbose_name='Prefixes')
    tags = TagColumn(url_name='ipam:vlan_list')

    class Meta(BaseTable.Meta):
        model = VLAN
        fields = ('pk', 'vid', 'name', 'site', 'group', 'prefixes', 'tenant',
                  'status', 'role', 'description', 'tags')
        default_columns = ('pk', 'vid', 'name', 'site', 'group', 'prefixes',
                           'tenant', 'status', 'role', 'description')
        row_attrs = {
            'class':
            lambda record: 'success' if not isinstance(record, VLAN) else '',
        }
Example #10
0
class DeviceRoleTable(BaseTable):
    pk = ToggleColumn()
    name = tables.Column(
        linkify=True
    )
    device_count = LinkedCountColumn(
        viewname='dcim:device_list',
        url_params={'role_id': 'pk'},
        verbose_name='Devices'
    )
    vm_count = LinkedCountColumn(
        viewname='virtualization:virtualmachine_list',
        url_params={'role_id': 'pk'},
        verbose_name='VMs'
    )
    color = ColorColumn()
    vm_role = BooleanColumn()
    actions = ButtonsColumn(DeviceRole)

    class Meta(BaseTable.Meta):
        model = DeviceRole
        fields = ('pk', 'name', 'device_count', 'vm_count', 'color', 'vm_role', 'description', 'slug', 'actions')
        default_columns = ('pk', 'name', 'device_count', 'vm_count', 'color', 'vm_role', 'description', 'actions')
Example #11
0
class ProviderTable(BaseTable):
    pk = ToggleColumn()
    name = tables.Column(linkify=True)
    circuit_count = tables.Column(accessor=Accessor('count_circuits'),
                                  verbose_name='Circuits')
    comments = MarkdownColumn()
    tags = TagColumn(url_name='circuits:provider_list')

    class Meta(BaseTable.Meta):
        model = Provider
        fields = (
            'pk',
            'name',
            'asn',
            'account',
            'portal_url',
            'noc_contact',
            'admin_contact',
            'circuit_count',
            'comments',
            'tags',
        )
        default_columns = ('pk', 'name', 'asn', 'account', 'circuit_count')
Example #12
0
class ConfigContextTable(BaseTable):
    pk = ToggleColumn()
    name = tables.LinkColumn()
    is_active = BooleanColumn(verbose_name='Active')

    class Meta(BaseTable.Meta):
        model = ConfigContext
        fields = (
            'pk',
            'name',
            'weight',
            'is_active',
            'description',
            'regions',
            'sites',
            'roles',
            'platforms',
            'cluster_groups',
            'clusters',
            'tenant_groups',
            'tenants',
        )
        default_columns = ('pk', 'name', 'weight', 'is_active', 'description')
Example #13
0
class DeviceRoleTable(BaseTable):
    pk = ToggleColumn()
    device_count = tables.TemplateColumn(template_code=DEVICEROLE_DEVICE_COUNT,
                                         accessor=Accessor('devices.count'),
                                         orderable=False,
                                         verbose_name='Devices')
    vm_count = tables.TemplateColumn(
        template_code=DEVICEROLE_VM_COUNT,
        accessor=Accessor('virtual_machines.count'),
        orderable=False,
        verbose_name='VMs')
    color = tables.TemplateColumn(COLOR_LABEL, verbose_name='Label')
    slug = tables.Column(verbose_name='Slug')
    actions = tables.TemplateColumn(template_code=DEVICEROLE_ACTIONS,
                                    attrs={'td': {
                                        'class': 'text-right'
                                    }},
                                    verbose_name='')

    class Meta(BaseTable.Meta):
        model = DeviceRole
        fields = ('pk', 'name', 'device_count', 'vm_count', 'color', 'vm_role',
                  'slug', 'actions')
Example #14
0
class DeviceTypeTable(BaseTable):
    pk = ToggleColumn()
    model = tables.LinkColumn(viewname='dcim:devicetype',
                              args=[Accessor('pk')],
                              verbose_name='Device Type')
    is_full_depth = BooleanColumn(verbose_name='Full Depth')
    subdevice_role = tables.TemplateColumn(
        template_code=SUBDEVICE_ROLE_TEMPLATE, verbose_name='Subdevice Role')
    instance_count = tables.TemplateColumn(
        template_code=DEVICETYPE_INSTANCES_TEMPLATE, verbose_name='Instances')

    class Meta(BaseTable.Meta):
        model = DeviceType
        fields = (
            'pk',
            'model',
            'manufacturer',
            'part_number',
            'u_height',
            'is_full_depth',
            'subdevice_role',
            'instance_count',
        )
Example #15
0
class VirtualChassisTable(BaseTable):
    pk = ToggleColumn()
    name = tables.Column(linkify=True)
    master = tables.Column(linkify=True)
    member_count = LinkedCountColumn(viewname='dcim:device_list',
                                     url_params={'virtual_chassis_id': 'pk'},
                                     verbose_name='Members')
    tags = TagColumn(url_name='dcim:virtualchassis_list')

    class Meta(BaseTable.Meta):
        model = VirtualChassis
        fields = (
            'pk',
            'id',
            'name',
            'domain',
            'master',
            'member_count',
            'tags',
            'created',
            'last_updated',
        )
        default_columns = ('pk', 'name', 'domain', 'master', 'member_count')
Example #16
0
class DeviceTable(BaseTable):
    pk = ToggleColumn()
    status = tables.TemplateColumn(template_code=STATUS_ICON, verbose_name='')
    name = tables.TemplateColumn(template_code=DEVICE_LINK,
                                 verbose_name='Name')
    tenant = tables.LinkColumn('tenancy:tenant',
                               args=[Accessor('tenant.slug')],
                               verbose_name='Tenant')
    site = tables.Column(accessor=Accessor('rack.site'), verbose_name='Site')
    rack = tables.LinkColumn('dcim:rack',
                             args=[Accessor('rack.pk')],
                             verbose_name='Rack')
    device_role = tables.TemplateColumn(DEVICE_ROLE, verbose_name='Role')
    device_type = tables.Column(verbose_name='Type')
    primary_ip = tables.TemplateColumn(
        orderable=False,
        verbose_name='IP Address',
        template_code="{{ record.primary_ip.address.ip }}")

    class Meta(BaseTable.Meta):
        model = Device
        fields = ('pk', 'name', 'status', 'tenant', 'site', 'rack',
                  'device_role', 'device_type', 'primary_ip')
Example #17
0
class RoleTable(BaseTable):
    pk = ToggleColumn()
    prefix_count = tables.TemplateColumn(
        accessor=Accessor('prefixes.count'),
        template_code=ROLE_PREFIX_COUNT,
        orderable=False,
        verbose_name='Prefixes'
    )
    vlan_count = tables.TemplateColumn(
        accessor=Accessor('vlans.count'),
        template_code=ROLE_VLAN_COUNT,
        orderable=False,
        verbose_name='VLANs'
    )
    actions = tables.TemplateColumn(
        template_code=ROLE_ACTIONS,
        attrs={'td': {'class': 'text-right noprint'}},
        verbose_name=''
    )

    class Meta(BaseTable.Meta):
        model = Role
        fields = ('pk', 'name', 'prefix_count', 'vlan_count', 'description', 'slug', 'weight', 'actions')
Example #18
0
class PlatformTable(BaseTable):
    pk = ToggleColumn()
    device_count = tables.TemplateColumn(
        template_code=PLATFORM_DEVICE_COUNT,
        accessor=Accessor('devices.count'),
        orderable=False,
        verbose_name='Devices'
    )
    vm_count = tables.TemplateColumn(
        template_code=PLATFORM_VM_COUNT,
        accessor=Accessor('virtual_machines.count'),
        orderable=False,
        verbose_name='VMs'
    )
    actions = tables.TemplateColumn(
        template_code=PLATFORM_ACTIONS,
        attrs={'td': {'class': 'text-right'}},
        verbose_name=''
    )

    class Meta(BaseTable.Meta):
        model = Platform
        fields = ('pk', 'name', 'manufacturer', 'device_count', 'vm_count', 'slug', 'napalm_driver', 'actions')
class SupervisorTable(BaseTable):
    pk = ToggleColumn()
    sid = tables.LinkColumn(
        viewname='plugins:netbox_supervisor_plugin:supervisor',
        args=[Accessor('id')])

    tenant = tables.LinkColumn(viewname='tenancy:tenant',
                               args=[Accessor('tenant.id')])

    class Meta(BaseTable.Meta):
        model = Supervisor
        fields = (
            'pk',
            'sid',
            'name',
            'email',
            'phone',
            'tenant',
            'tenants',
            'status',
            'comments',
            'is_active',
        )
Example #20
0
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')])
    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')
    device_type = tables.LinkColumn(
        'dcim:devicetype',
        args=[Accessor('device_type.pk')],
        verbose_name='Type',
        text=lambda record: record.device_type.full_name)
    primary_ip = tables.TemplateColumn(orderable=False,
                                       verbose_name='IP Address',
                                       template_code=DEVICE_PRIMARY_IP)

    class Meta(BaseTable.Meta):
        model = Device
        fields = ('pk', 'name', 'status', 'tenant', 'site', 'rack',
                  'device_role', 'device_type', 'primary_ip')
Example #21
0
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')])
    rack_count = tables.Column(accessor=Accessor('count_racks'),
                               orderable=False,
                               verbose_name='Racks')
    device_count = tables.Column(accessor=Accessor('count_devices'),
                                 orderable=False,
                                 verbose_name='Devices')
    prefix_count = tables.Column(accessor=Accessor('count_prefixes'),
                                 orderable=False,
                                 verbose_name='Prefixes')
    vlan_count = tables.Column(accessor=Accessor('count_vlans'),
                               orderable=False,
                               verbose_name='VLANs')
    circuit_count = tables.Column(accessor=Accessor('count_circuits'),
                                  orderable=False,
                                  verbose_name='Circuits')

    class Meta(BaseTable.Meta):
        model = Site
        fields = (
            'pk',
            'name',
            'facility',
            'region',
            'tenant',
            'asn',
            'rack_count',
            'device_count',
            'prefix_count',
            'vlan_count',
            'circuit_count',
        )
Example #22
0
class PlatformTable(BaseTable):
    pk = ToggleColumn()
    device_count = tables.TemplateColumn(template_code=DEVICE_COUNT,
                                         verbose_name='Devices')
    vm_count = tables.TemplateColumn(template_code=VM_COUNT,
                                     verbose_name='VMs')
    actions = tables.TemplateColumn(
        template_code=PLATFORM_ACTIONS,
        attrs={'td': {
            'class': 'text-right noprint'
        }},
        verbose_name='')

    class Meta(BaseTable.Meta):
        model = Platform
        fields = (
            'pk',
            'name',
            'manufacturer',
            'device_count',
            'vm_count',
            'slug',
            'napalm_driver',
            'napalm_args',
            'description',
            'actions',
        )
        default_columns = (
            'pk',
            'name',
            'manufacturer',
            'device_count',
            'vm_count',
            'napalm_driver',
            'description',
            'actions',
        )
Example #23
0
class RackReservationTable(BaseTable):
    pk = ToggleColumn()
    reservation = tables.LinkColumn(
        viewname='dcim:rackreservation',
        args=[Accessor('pk')],
        accessor='pk'
    )
    site = tables.LinkColumn(
        viewname='dcim:site',
        accessor=Accessor('rack.site'),
        args=[Accessor('rack.site.slug')],
    )
    tenant = tables.TemplateColumn(
        template_code=COL_TENANT
    )
    rack = tables.LinkColumn(
        viewname='dcim:rack',
        args=[Accessor('rack.pk')]
    )
    unit_list = tables.Column(
        orderable=False,
        verbose_name='Units'
    )
    actions = tables.TemplateColumn(
        template_code=RACKRESERVATION_ACTIONS,
        attrs={'td': {'class': 'text-right noprint'}},
        verbose_name=''
    )

    class Meta(BaseTable.Meta):
        model = RackReservation
        fields = (
            'pk', 'reservation', 'site', 'rack', 'unit_list', 'user', 'created', 'tenant', 'description', 'actions',
        )
        default_columns = (
            'pk', 'reservation', 'site', 'rack', 'unit_list', 'user', 'description', 'actions',
        )
Example #24
0
class PrefixTable(BaseTable):
    pk = ToggleColumn()
    prefix = tables.TemplateColumn(
        template_code=PREFIX_LINK,
        attrs={'th': {
            'style': 'padding-left: 17px'
        }})
    status = tables.TemplateColumn(template_code=STATUS_LABEL)
    vrf = tables.TemplateColumn(template_code=VRF_LINK, verbose_name='VRF')
    tenant = tables.TemplateColumn(template_code=TENANT_LINK)
    site = tables.Column(linkify=True)
    vlan = tables.Column(linkify=True, verbose_name='VLAN')
    role = tables.TemplateColumn(template_code=PREFIX_ROLE_LINK)
    is_pool = BooleanColumn(verbose_name='Pool')

    add_prefetch = False

    class Meta(BaseTable.Meta):
        model = Prefix
        fields = (
            'pk',
            'prefix',
            'status',
            'children',
            'vrf',
            'tenant',
            'site',
            'vlan',
            'role',
            'is_pool',
            'description',
        )
        default_columns = ('pk', 'prefix', 'status', 'vrf', 'tenant', 'site',
                           'vlan', 'role', 'description')
        row_attrs = {
            'class': lambda record: 'success' if not record.pk else '',
        }
Example #25
0
class CustomLinkTable(BaseTable):
    pk = ToggleColumn()
    name = tables.Column(linkify=True)
    content_type = ContentTypeColumn()
    new_window = BooleanColumn()

    class Meta(BaseTable.Meta):
        model = CustomLink
        fields = (
            'pk',
            'id',
            'name',
            'content_type',
            'link_text',
            'link_url',
            'weight',
            'group_name',
            'button_class',
            'new_window',
            'created',
            'last_updated',
        )
        default_columns = ('pk', 'name', 'content_type', 'group_name',
                           'button_class', 'new_window')
Example #26
0
class FHRPGroupAssignmentTable(BaseTable):
    pk = ToggleColumn()
    interface_parent = tables.Column(
        accessor=tables.A('interface.parent_object'),
        linkify=True,
        orderable=False,
        verbose_name='Parent'
    )
    interface = tables.Column(
        linkify=True,
        orderable=False
    )
    group = tables.Column(
        linkify=True
    )
    actions = ButtonsColumn(
        model=FHRPGroupAssignment,
        buttons=('edit', 'delete')
    )

    class Meta(BaseTable.Meta):
        model = FHRPGroupAssignment
        fields = ('pk', 'group', 'interface_parent', 'interface', 'priority')
        exclude = ('id',)
class OnboardingTaskTable(BaseTable):
    """Table for displaying OnboardingTask instances."""

    pk = ToggleColumn()
    id = tables.LinkColumn()
    site = tables.LinkColumn()
    platform = tables.LinkColumn()
    created_device = tables.LinkColumn()

    class Meta(BaseTable.Meta
               ):  # noqa: D106 "Missing docstring in public nested class"
        model = OnboardingTask
        fields = (
            "pk",
            "id",
            "created",
            "ip_address",
            "site",
            "platform",
            "created_device",
            "status",
            "failed_reason",
            "message",
        )
Example #28
0
class VLANTable(BaseTable):
    pk = ToggleColumn()
    vid = tables.LinkColumn('ipam:vlan',
                            args=[Accessor('pk')],
                            verbose_name='ID')
    site = tables.LinkColumn('dcim:site',
                             args=[Accessor('site.slug')],
                             verbose_name='Site')
    group = tables.Column(accessor=Accessor('group.name'),
                          verbose_name='Group')
    name = tables.Column(verbose_name='Name')
    prefixes = tables.TemplateColumn(VLAN_PREFIXES,
                                     orderable=False,
                                     verbose_name='Prefixes')
    tenant = tables.LinkColumn('tenancy:tenant',
                               args=[Accessor('tenant.slug')],
                               verbose_name='Tenant')
    status = tables.TemplateColumn(STATUS_LABEL, verbose_name='Status')
    role = tables.TemplateColumn(VLAN_ROLE_LINK, verbose_name='Role')

    class Meta(BaseTable.Meta):
        model = VLAN
        fields = ('pk', 'vid', 'site', 'group', 'name', 'prefixes', 'tenant',
                  'status', 'role')
Example #29
0
class IPRangeTable(BaseTable):
    pk = ToggleColumn()
    start_address = tables.Column(
        linkify=True
    )
    vrf = tables.TemplateColumn(
        template_code=VRF_LINK,
        verbose_name='VRF'
    )
    status = ChoiceFieldColumn(
        default=AVAILABLE_LABEL
    )
    role = tables.Column(
        linkify=True
    )
    tenant = TenantColumn()
    utilization = UtilizationColumn(
        accessor='utilization',
        orderable=False
    )
    tags = TagColumn(
        url_name='ipam:iprange_list'
    )

    class Meta(BaseTable.Meta):
        model = IPRange
        fields = (
            'pk', 'id', 'start_address', 'end_address', 'size', 'vrf', 'status', 'role', 'tenant', 'description',
            'utilization', 'tags', 'created', 'last_updated',
        )
        default_columns = (
            'pk', 'start_address', 'end_address', 'size', 'vrf', 'status', 'role', 'tenant', 'description',
        )
        row_attrs = {
            'class': lambda record: 'success' if not record.pk else '',
        }
Example #30
0
class ContactGroupTable(BaseTable):
    pk = ToggleColumn()
    name = MPTTColumn(linkify=True)
    contact_count = LinkedCountColumn(viewname='tenancy:contact_list',
                                      url_params={'role_id': 'pk'},
                                      verbose_name='Contacts')
    tags = TagColumn(url_name='tenancy:contactgroup_list')
    actions = ButtonsColumn(ContactGroup)

    class Meta(BaseTable.Meta):
        model = ContactGroup
        fields = (
            'pk',
            'name',
            'contact_count',
            'description',
            'slug',
            'tags',
            'actions',
            'created',
            'last_updated',
        )
        default_columns = ('pk', 'name', 'contact_count', 'description',
                           'actions')