cables.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import django_tables2 as tables
  2. from django_tables2.utils import Accessor
  3. from dcim.models import Cable
  4. from netbox.tables import NetBoxTable, columns
  5. from tenancy.tables import TenantColumn
  6. from .template_code import CABLE_LENGTH, CABLE_TERMINATION_PARENT
  7. __all__ = (
  8. 'CableTable',
  9. )
  10. #
  11. # Cables
  12. #
  13. class CableTable(NetBoxTable):
  14. termination_a_parent = tables.TemplateColumn(
  15. template_code=CABLE_TERMINATION_PARENT,
  16. accessor=Accessor('termination_a'),
  17. orderable=False,
  18. verbose_name='Side A'
  19. )
  20. termination_a = tables.Column(
  21. accessor=Accessor('termination_a'),
  22. orderable=False,
  23. linkify=True,
  24. verbose_name='Termination A'
  25. )
  26. termination_b_parent = tables.TemplateColumn(
  27. template_code=CABLE_TERMINATION_PARENT,
  28. accessor=Accessor('termination_b'),
  29. orderable=False,
  30. verbose_name='Side B'
  31. )
  32. termination_b = tables.Column(
  33. accessor=Accessor('termination_b'),
  34. orderable=False,
  35. linkify=True,
  36. verbose_name='Termination B'
  37. )
  38. status = columns.ChoiceFieldColumn()
  39. tenant = TenantColumn()
  40. length = columns.TemplateColumn(
  41. template_code=CABLE_LENGTH,
  42. order_by='_abs_length'
  43. )
  44. color = columns.ColorColumn()
  45. tags = columns.TagColumn(
  46. url_name='dcim:cable_list'
  47. )
  48. class Meta(NetBoxTable.Meta):
  49. model = Cable
  50. fields = (
  51. 'pk', 'id', 'label', 'termination_a_parent', 'termination_a', 'termination_b_parent', 'termination_b',
  52. 'status', 'type', 'tenant', 'color', 'length', 'tags', 'created', 'last_updated',
  53. )
  54. default_columns = (
  55. 'pk', 'id', 'label', 'termination_a_parent', 'termination_a', 'termination_b_parent', 'termination_b',
  56. 'status', 'type',
  57. )