tables.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import django_tables2 as tables
  2. from dcim.models import Interface
  3. from netbox.tables import NetBoxTable, columns
  4. from .models import *
  5. __all__ = (
  6. 'WirelessLANTable',
  7. 'WirelessLANGroupTable',
  8. 'WirelessLinkTable',
  9. )
  10. class WirelessLANGroupTable(NetBoxTable):
  11. name = columns.MPTTColumn(
  12. linkify=True
  13. )
  14. wirelesslan_count = columns.LinkedCountColumn(
  15. viewname='wireless:wirelesslan_list',
  16. url_params={'group_id': 'pk'},
  17. verbose_name='Wireless LANs'
  18. )
  19. tags = columns.TagColumn(
  20. url_name='wireless:wirelesslangroup_list'
  21. )
  22. class Meta(NetBoxTable.Meta):
  23. model = WirelessLANGroup
  24. fields = (
  25. 'pk', 'name', 'wirelesslan_count', 'description', 'slug', 'tags', 'created', 'last_updated', 'actions',
  26. )
  27. default_columns = ('pk', 'name', 'wirelesslan_count', 'description')
  28. class WirelessLANTable(NetBoxTable):
  29. ssid = tables.Column(
  30. linkify=True
  31. )
  32. group = tables.Column(
  33. linkify=True
  34. )
  35. interface_count = tables.Column(
  36. verbose_name='Interfaces'
  37. )
  38. tags = columns.TagColumn(
  39. url_name='wireless:wirelesslan_list'
  40. )
  41. class Meta(NetBoxTable.Meta):
  42. model = WirelessLAN
  43. fields = (
  44. 'pk', 'ssid', 'group', 'description', 'vlan', 'interface_count', 'auth_type', 'auth_cipher', 'auth_psk',
  45. 'tags', 'created', 'last_updated',
  46. )
  47. default_columns = ('pk', 'ssid', 'group', 'description', 'vlan', 'auth_type', 'interface_count')
  48. class WirelessLANInterfacesTable(NetBoxTable):
  49. device = tables.Column(
  50. linkify=True
  51. )
  52. name = tables.Column(
  53. linkify=True
  54. )
  55. class Meta(NetBoxTable.Meta):
  56. model = Interface
  57. fields = ('pk', 'device', 'name', 'rf_role', 'rf_channel')
  58. default_columns = ('pk', 'device', 'name', 'rf_role', 'rf_channel')
  59. class WirelessLinkTable(NetBoxTable):
  60. id = tables.Column(
  61. linkify=True,
  62. verbose_name='ID'
  63. )
  64. status = columns.ChoiceFieldColumn()
  65. device_a = tables.Column(
  66. accessor=tables.A('interface_a__device'),
  67. linkify=True
  68. )
  69. interface_a = tables.Column(
  70. linkify=True
  71. )
  72. device_b = tables.Column(
  73. accessor=tables.A('interface_b__device'),
  74. linkify=True
  75. )
  76. interface_b = tables.Column(
  77. linkify=True
  78. )
  79. tags = columns.TagColumn(
  80. url_name='wireless:wirelesslink_list'
  81. )
  82. class Meta(NetBoxTable.Meta):
  83. model = WirelessLink
  84. fields = (
  85. 'pk', 'id', 'status', 'device_a', 'interface_a', 'device_b', 'interface_b', 'ssid', 'description',
  86. 'auth_type', 'auth_cipher', 'auth_psk', 'tags', 'created', 'last_updated',
  87. )
  88. default_columns = (
  89. 'pk', 'id', 'status', 'device_a', 'interface_a', 'device_b', 'interface_b', 'ssid', 'auth_type',
  90. 'description',
  91. )