change_logging.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import django_tables2 as tables
  2. from django.utils.translation import gettext_lazy as _
  3. from core.models import ObjectChange
  4. from netbox.tables import NetBoxTable, columns
  5. from .template_code import *
  6. __all__ = (
  7. 'ObjectChangeTable',
  8. )
  9. class ObjectChangeTable(NetBoxTable):
  10. time = columns.DateTimeColumn(
  11. verbose_name=_('Time'),
  12. timespec='minutes',
  13. linkify=True
  14. )
  15. user_name = tables.Column(
  16. verbose_name=_('Username')
  17. )
  18. full_name = tables.TemplateColumn(
  19. accessor=tables.A('user'),
  20. template_code=OBJECTCHANGE_FULL_NAME,
  21. verbose_name=_('Full Name'),
  22. orderable=False
  23. )
  24. action = columns.ChoiceFieldColumn(
  25. verbose_name=_('Action'),
  26. )
  27. changed_object_type = columns.ContentTypeColumn(
  28. verbose_name=_('Type')
  29. )
  30. object_repr = tables.TemplateColumn(
  31. accessor=tables.A('changed_object'),
  32. template_code=OBJECTCHANGE_OBJECT,
  33. verbose_name=_('Object'),
  34. orderable=False
  35. )
  36. request_id = tables.TemplateColumn(
  37. template_code=OBJECTCHANGE_REQUEST_ID,
  38. verbose_name=_('Request ID')
  39. )
  40. message = tables.Column(
  41. verbose_name=_('Message'),
  42. )
  43. actions = columns.ActionsColumn(
  44. actions=()
  45. )
  46. class Meta(NetBoxTable.Meta):
  47. model = ObjectChange
  48. fields = (
  49. 'pk', 'time', 'user_name', 'full_name', 'action', 'changed_object_type', 'object_repr', 'request_id',
  50. 'message', 'actions',
  51. )
  52. default_columns = (
  53. 'pk', 'time', 'user_name', 'action', 'changed_object_type', 'object_repr', 'message', 'actions',
  54. )