tables.py 3.1 KB

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