tables.py 3.0 KB

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