tables.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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 = ('pk', 'name', 'wirelesslan_count', 'description', 'slug', 'tags', 'actions')
  29. default_columns = ('pk', 'name', 'wirelesslan_count', 'description', 'actions')
  30. class WirelessLANTable(BaseTable):
  31. pk = ToggleColumn()
  32. ssid = tables.Column(
  33. linkify=True
  34. )
  35. group = tables.Column(
  36. linkify=True
  37. )
  38. interface_count = tables.Column(
  39. verbose_name='Interfaces'
  40. )
  41. tags = TagColumn(
  42. url_name='wireless:wirelesslan_list'
  43. )
  44. class Meta(BaseTable.Meta):
  45. model = WirelessLAN
  46. fields = (
  47. 'pk', 'ssid', 'group', 'description', 'vlan', 'interface_count', 'auth_type', 'auth_cipher', 'auth_psk',
  48. 'tags',
  49. )
  50. default_columns = ('pk', 'ssid', 'group', 'description', 'vlan', 'auth_type', 'interface_count')
  51. class WirelessLANInterfacesTable(BaseTable):
  52. pk = ToggleColumn()
  53. device = tables.Column(
  54. linkify=True
  55. )
  56. name = tables.Column(
  57. linkify=True
  58. )
  59. class Meta(BaseTable.Meta):
  60. model = Interface
  61. fields = ('pk', 'device', 'name', 'rf_role', 'rf_channel')
  62. default_columns = ('pk', 'device', 'name', 'rf_role', 'rf_channel')
  63. class WirelessLinkTable(BaseTable):
  64. pk = ToggleColumn()
  65. id = tables.Column(
  66. linkify=True,
  67. verbose_name='ID'
  68. )
  69. status = ChoiceFieldColumn()
  70. device_a = tables.Column(
  71. accessor=tables.A('interface_a__device'),
  72. linkify=True
  73. )
  74. interface_a = tables.Column(
  75. linkify=True
  76. )
  77. device_b = tables.Column(
  78. accessor=tables.A('interface_b__device'),
  79. linkify=True
  80. )
  81. interface_b = tables.Column(
  82. linkify=True
  83. )
  84. tags = TagColumn(
  85. url_name='wireless:wirelesslink_list'
  86. )
  87. class Meta(BaseTable.Meta):
  88. model = WirelessLink
  89. fields = (
  90. 'pk', 'id', 'status', 'device_a', 'interface_a', 'device_b', 'interface_b', 'ssid', 'description',
  91. 'auth_type', 'auth_cipher', 'auth_psk', 'tags',
  92. )
  93. default_columns = (
  94. 'pk', 'id', 'status', 'device_a', 'interface_a', 'device_b', 'interface_b', 'ssid', 'auth_type',
  95. 'description',
  96. )