data.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import django_tables2 as tables
  2. from core.models import *
  3. from netbox.tables import NetBoxTable, columns
  4. __all__ = (
  5. 'DataFileTable',
  6. 'DataSourceTable',
  7. )
  8. class DataSourceTable(NetBoxTable):
  9. name = tables.Column(
  10. linkify=True
  11. )
  12. type = columns.ChoiceFieldColumn()
  13. status = columns.ChoiceFieldColumn()
  14. enabled = columns.BooleanColumn()
  15. tags = columns.TagColumn(
  16. url_name='core:datasource_list'
  17. )
  18. file_count = tables.Column(
  19. verbose_name='Files'
  20. )
  21. class Meta(NetBoxTable.Meta):
  22. model = DataSource
  23. fields = (
  24. 'pk', 'id', 'name', 'type', 'status', 'enabled', 'source_url', 'description', 'comments', 'parameters', 'created',
  25. 'last_updated', 'file_count',
  26. )
  27. default_columns = ('pk', 'name', 'type', 'status', 'enabled', 'description', 'file_count')
  28. class DataFileTable(NetBoxTable):
  29. source = tables.Column(
  30. linkify=True
  31. )
  32. path = tables.Column(
  33. linkify=True
  34. )
  35. last_updated = columns.DateTimeColumn()
  36. actions = columns.ActionsColumn(
  37. actions=('delete',)
  38. )
  39. class Meta(NetBoxTable.Meta):
  40. model = DataFile
  41. fields = (
  42. 'pk', 'id', 'source', 'path', 'last_updated', 'size', 'hash',
  43. )
  44. default_columns = ('pk', 'source', 'path', 'size', 'last_updated')