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
« 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 _
4from core.models import ObjectChange
5from netbox.tables import NetBoxTable, columns
7from .template_code import *
9__all__ = (
10 'ObjectChangeTable',
11)
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 )
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 )