fhrp.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import django_tables2 as tables
  2. from utilities.tables import BaseTable, ButtonsColumn, MarkdownColumn, TagColumn, ToggleColumn
  3. from ipam.models import *
  4. __all__ = (
  5. 'FHRPGroupTable',
  6. 'FHRPGroupAssignmentTable',
  7. )
  8. IPADDRESSES = """
  9. {% for ip in record.ip_addresses.all %}
  10. <a href="{{ ip.get_absolute_url }}">{{ ip }}</a><br />
  11. {% endfor %}
  12. """
  13. class FHRPGroupTable(BaseTable):
  14. pk = ToggleColumn()
  15. group_id = tables.Column(
  16. linkify=True
  17. )
  18. comments = MarkdownColumn()
  19. ip_addresses = tables.TemplateColumn(
  20. template_code=IPADDRESSES,
  21. orderable=False,
  22. verbose_name='IP Addresses'
  23. )
  24. member_count = tables.Column(
  25. verbose_name='Members'
  26. )
  27. tags = TagColumn(
  28. url_name='ipam:fhrpgroup_list'
  29. )
  30. class Meta(BaseTable.Meta):
  31. model = FHRPGroup
  32. fields = (
  33. 'pk', 'group_id', 'protocol', 'auth_type', 'auth_key', 'description', 'ip_addresses', 'member_count',
  34. 'tags',
  35. )
  36. default_columns = ('pk', 'group_id', 'protocol', 'auth_type', 'description', 'ip_addresses', 'member_count')
  37. class FHRPGroupAssignmentTable(BaseTable):
  38. pk = ToggleColumn()
  39. object_parent = tables.Column(
  40. accessor=tables.A('object.parent_object'),
  41. linkify=True,
  42. orderable=False,
  43. verbose_name='Parent'
  44. )
  45. object = tables.Column(
  46. linkify=True,
  47. orderable=False
  48. )
  49. group = tables.Column(
  50. linkify=True
  51. )
  52. actions = ButtonsColumn(
  53. model=FHRPGroupAssignment,
  54. buttons=('edit', 'delete', 'foo')
  55. )
  56. class Meta(BaseTable.Meta):
  57. model = FHRPGroupAssignment
  58. fields = ('pk', 'group', 'object_parent', 'object', 'priority')