virtual_circuits.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import django_tables2 as tables
  2. from django.utils.translation import gettext_lazy as _
  3. from circuits.models import *
  4. from netbox.tables import NetBoxTable, columns
  5. from tenancy.tables import ContactsColumnMixin, TenancyColumnsMixin
  6. __all__ = (
  7. 'VirtualCircuitTable',
  8. 'VirtualCircuitTerminationTable',
  9. )
  10. class VirtualCircuitTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable):
  11. cid = tables.Column(
  12. linkify=True,
  13. verbose_name=_('Circuit ID')
  14. )
  15. provider = tables.Column(
  16. accessor=tables.A('provider_network__provider'),
  17. verbose_name=_('Provider'),
  18. linkify=True
  19. )
  20. provider_network = tables.Column(
  21. linkify=True,
  22. verbose_name=_('Provider network')
  23. )
  24. provider_account = tables.Column(
  25. linkify=True,
  26. verbose_name=_('Account')
  27. )
  28. status = columns.ChoiceFieldColumn()
  29. termination_count = columns.LinkedCountColumn(
  30. viewname='circuits:virtualcircuittermination_list',
  31. url_params={'virtual_circuit_id': 'pk'},
  32. verbose_name=_('Terminations')
  33. )
  34. comments = columns.MarkdownColumn(
  35. verbose_name=_('Comments')
  36. )
  37. tags = columns.TagColumn(
  38. url_name='circuits:virtualcircuit_list'
  39. )
  40. class Meta(NetBoxTable.Meta):
  41. model = VirtualCircuit
  42. fields = (
  43. 'pk', 'id', 'cid', 'provider', 'provider_account', 'provider_network', 'status', 'tenant', 'tenant_group',
  44. 'description', 'comments', 'tags', 'created', 'last_updated',
  45. )
  46. default_columns = (
  47. 'pk', 'cid', 'provider', 'provider_account', 'provider_network', 'status', 'tenant', 'termination_count',
  48. 'description',
  49. )
  50. class VirtualCircuitTerminationTable(NetBoxTable):
  51. virtual_circuit = tables.Column(
  52. verbose_name=_('Virtual circuit'),
  53. linkify=True
  54. )
  55. provider = tables.Column(
  56. accessor=tables.A('virtual_circuit__provider_network__provider'),
  57. verbose_name=_('Provider'),
  58. linkify=True
  59. )
  60. provider_network = tables.Column(
  61. accessor=tables.A('virtual_circuit__provider_network'),
  62. linkify=True,
  63. verbose_name=_('Provider network')
  64. )
  65. provider_account = tables.Column(
  66. linkify=True,
  67. verbose_name=_('Account')
  68. )
  69. role = columns.ChoiceFieldColumn()
  70. device = tables.Column(
  71. accessor=tables.A('interface__device'),
  72. linkify=True,
  73. verbose_name=_('Device')
  74. )
  75. interface = tables.Column(
  76. verbose_name=_('Interface'),
  77. linkify=True
  78. )
  79. class Meta(NetBoxTable.Meta):
  80. model = VirtualCircuitTermination
  81. fields = (
  82. 'pk', 'id', 'virtual_circuit', 'provider', 'provider_network', 'provider_account', 'role', 'interfaces',
  83. 'description', 'created', 'last_updated', 'actions',
  84. )
  85. default_columns = (
  86. 'pk', 'id', 'virtual_circuit', 'role', 'device', 'interface', 'description',
  87. )