Coverage for core/tables/change_logging.py: 100%

20 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-10 18:35 +0000

1import django_tables2 as tables 

2from django.utils.translation import gettext_lazy as _ 

3 

4from core.models import ObjectChange 

5from netbox.tables import NetBoxTable, columns 

6 

7from .template_code import * 

8 

9__all__ = ( 

10 'ObjectChangeTable', 

11) 

12 

13 

14class ObjectChangeTable(NetBoxTable): 

15 time = columns.DateTimeColumn( 

16 verbose_name=_('Time'), 

17 timespec='minutes', 

18 linkify=True 

19 ) 

20 user_name = tables.Column( 

21 verbose_name=_('Username') 

22 ) 

23 full_name = tables.TemplateColumn( 

24 accessor=tables.A('user'), 

25 template_code=OBJECTCHANGE_FULL_NAME, 

26 verbose_name=_('Full Name'), 

27 orderable=False 

28 ) 

29 action = columns.ChoiceFieldColumn( 

30 verbose_name=_('Action'), 

31 ) 

32 changed_object_type = columns.ContentTypeColumn( 

33 verbose_name=_('Type') 

34 ) 

35 object_repr = tables.TemplateColumn( 

36 accessor=tables.A('changed_object'), 

37 template_code=OBJECTCHANGE_OBJECT, 

38 verbose_name=_('Object'), 

39 orderable=False 

40 ) 

41 request_id = tables.TemplateColumn( 

42 template_code=OBJECTCHANGE_REQUEST_ID, 

43 verbose_name=_('Request ID') 

44 ) 

45 message = tables.Column( 

46 verbose_name=_('Message'), 

47 ) 

48 actions = columns.ActionsColumn( 

49 actions=() 

50 ) 

51 

52 class Meta(NetBoxTable.Meta): 

53 model = ObjectChange 

54 fields = ( 

55 'pk', 'time', 'user_name', 'full_name', 'action', 'changed_object_type', 'object_repr', 'request_id', 

56 'message', 'actions', 

57 ) 

58 default_columns = ( 

59 'pk', 'time', 'user_name', 'action', 'changed_object_type', 'object_repr', 'message', 'actions', 

60 )