| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- import django_tables2 as tables
- from django.utils.translation import gettext_lazy as _
- from django_tables2.utils import Accessor
- from circuits.models import *
- from netbox.tables import PrimaryModelTable, columns
- from tenancy.tables import ContactsColumnMixin
- __all__ = (
- 'ProviderTable',
- 'ProviderAccountTable',
- 'ProviderNetworkTable',
- )
- class ProviderTable(ContactsColumnMixin, PrimaryModelTable):
- name = tables.Column(
- verbose_name=_('Name'),
- linkify=True
- )
- accounts = columns.ManyToManyColumn(
- linkify_item=True,
- verbose_name=_('Accounts')
- )
- account_count = columns.LinkedCountColumn(
- viewname='circuits:provideraccount_list',
- url_params={'provider_id': 'pk'},
- verbose_name=_('Account Count')
- )
- asns = columns.ManyToManyColumn(
- linkify_item=True,
- verbose_name=_('ASNs')
- )
- asn_count = columns.LinkedCountColumn(
- viewname='ipam:asn_list',
- url_params={'provider_id': 'pk'},
- verbose_name=_('ASN Count')
- )
- circuit_count = columns.LinkedCountColumn(
- accessor=Accessor('count_circuits'),
- viewname='circuits:circuit_list',
- url_params={'provider_id': 'pk'},
- verbose_name=_('Circuits')
- )
- tags = columns.TagColumn(
- url_name='circuits:provider_list'
- )
- class Meta(PrimaryModelTable.Meta):
- model = Provider
- fields = (
- 'pk', 'id', 'name', 'accounts', 'account_count', 'asns', 'asn_count', 'circuit_count', 'description',
- 'comments', 'contacts', 'tags', 'created', 'last_updated',
- )
- default_columns = ('pk', 'name', 'account_count', 'circuit_count')
- class ProviderAccountTable(ContactsColumnMixin, PrimaryModelTable):
- account = tables.Column(
- linkify=True,
- verbose_name=_('Account'),
- )
- name = tables.Column(
- verbose_name=_('Name'),
- )
- provider = tables.Column(
- verbose_name=_('Provider'),
- linkify=True
- )
- circuit_count = columns.LinkedCountColumn(
- accessor=Accessor('count_circuits'),
- viewname='circuits:circuit_list',
- url_params={'provider_account_id': 'pk'},
- verbose_name=_('Circuits')
- )
- tags = columns.TagColumn(
- url_name='circuits:provideraccount_list'
- )
- class Meta(PrimaryModelTable.Meta):
- model = ProviderAccount
- fields = (
- 'pk', 'id', 'account', 'name', 'provider', 'circuit_count', 'comments', 'contacts', 'tags', 'created',
- 'last_updated',
- )
- default_columns = ('pk', 'account', 'name', 'provider', 'circuit_count')
- class ProviderNetworkTable(PrimaryModelTable):
- name = tables.Column(
- verbose_name=_('Name'),
- linkify=True
- )
- provider = tables.Column(
- verbose_name=_('Provider'),
- linkify=True
- )
- tags = columns.TagColumn(
- url_name='circuits:providernetwork_list'
- )
- class Meta(PrimaryModelTable.Meta):
- model = ProviderNetwork
- fields = (
- 'pk', 'id', 'name', 'provider', 'service_id', 'description', 'comments', 'created', 'last_updated', 'tags',
- )
- default_columns = ('pk', 'name', 'provider', 'service_id', 'description')
|