modules.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import django_tables2 as tables
  2. from dcim.models import Module, ModuleType
  3. from utilities.tables import BaseTable, LinkedCountColumn, MarkdownColumn, TagColumn, ToggleColumn
  4. __all__ = (
  5. 'ModuleTable',
  6. 'ModuleTypeTable',
  7. )
  8. class ModuleTypeTable(BaseTable):
  9. pk = ToggleColumn()
  10. model = tables.Column(
  11. linkify=True,
  12. verbose_name='Module Type'
  13. )
  14. instance_count = LinkedCountColumn(
  15. viewname='dcim:module_list',
  16. url_params={'module_type_id': 'pk'},
  17. verbose_name='Instances'
  18. )
  19. comments = MarkdownColumn()
  20. tags = TagColumn(
  21. url_name='dcim:moduletype_list'
  22. )
  23. class Meta(BaseTable.Meta):
  24. model = ModuleType
  25. fields = (
  26. 'pk', 'id', 'model', 'manufacturer', 'part_number', 'comments', 'tags',
  27. )
  28. default_columns = (
  29. 'pk', 'model', 'manufacturer', 'part_number',
  30. )
  31. class ModuleTable(BaseTable):
  32. pk = ToggleColumn()
  33. device = tables.Column(
  34. linkify=True
  35. )
  36. module_bay = tables.Column(
  37. linkify=True
  38. )
  39. module_type = tables.Column(
  40. linkify=True
  41. )
  42. comments = MarkdownColumn()
  43. tags = TagColumn(
  44. url_name='dcim:module_list'
  45. )
  46. class Meta(BaseTable.Meta):
  47. model = Module
  48. fields = (
  49. 'pk', 'id', 'device', 'module_bay', 'module_type', 'serial', 'asset_tag', 'comments', 'tags',
  50. )
  51. default_columns = (
  52. 'pk', 'id', 'device', 'module_bay', 'module_type', 'serial', 'asset_tag',
  53. )