providers.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import django_tables2 as tables
  2. from circuits.models import *
  3. from django_tables2.utils import Accessor
  4. from tenancy.tables import ContactsColumnMixin
  5. from netbox.tables import NetBoxTable, columns
  6. __all__ = (
  7. 'ProviderTable',
  8. 'ProviderNetworkTable',
  9. )
  10. class ProviderTable(ContactsColumnMixin, NetBoxTable):
  11. name = tables.Column(
  12. linkify=True
  13. )
  14. asns = columns.ManyToManyColumn(
  15. linkify_item=True,
  16. verbose_name='ASNs'
  17. )
  18. asn_count = columns.LinkedCountColumn(
  19. accessor=tables.A('asns__count'),
  20. viewname='ipam:asn_list',
  21. url_params={'provider_id': 'pk'},
  22. verbose_name='ASN Count'
  23. )
  24. circuit_count = columns.LinkedCountColumn(
  25. accessor=Accessor('count_circuits'),
  26. viewname='circuits:circuit_list',
  27. url_params={'provider_id': 'pk'},
  28. verbose_name='Circuits'
  29. )
  30. comments = columns.MarkdownColumn()
  31. tags = columns.TagColumn(
  32. url_name='circuits:provider_list'
  33. )
  34. class Meta(NetBoxTable.Meta):
  35. model = Provider
  36. fields = (
  37. 'pk', 'id', 'name', 'asn', 'asns', 'account', 'portal_url', 'noc_contact', 'admin_contact', 'asn_count',
  38. 'circuit_count', 'comments', 'contacts', 'tags', 'created', 'last_updated',
  39. )
  40. default_columns = ('pk', 'name', 'asn', 'account', 'circuit_count')
  41. class ProviderNetworkTable(NetBoxTable):
  42. name = tables.Column(
  43. linkify=True
  44. )
  45. provider = tables.Column(
  46. linkify=True
  47. )
  48. comments = columns.MarkdownColumn()
  49. tags = columns.TagColumn(
  50. url_name='circuits:providernetwork_list'
  51. )
  52. class Meta(NetBoxTable.Meta):
  53. model = ProviderNetwork
  54. fields = (
  55. 'pk', 'id', 'name', 'provider', 'service_id', 'description', 'comments', 'created', 'last_updated', 'tags',
  56. )
  57. default_columns = ('pk', 'name', 'provider', 'service_id', 'description')