mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-18 10:16:34 +00:00
* Add message field to ObjectChange model * Set max length on changelog message * Enable changelog messages for single object operations * Fix tests * Add changelog message support for bulk edit & bulk delete * Cosmetic improvements to form fields * Fix bulk operation templates * Add message support for bulk import/update * Add REST API support for changelog messages (WIP) * Fix changelog_message assignment * Enable changelog message support for bulk deletions * Add documentation * Fix changelog message support for VirtualChassis * Add ChangeLoggingMixin to necesssary model forms * Introduce get_random_string() utility function for tests * Incorporate changelog messages for object view tests * Incorporate changelog messages for object bulk view tests * Add missing mixins for changelog message support * Tweak test to generate expected number of change records * Finish adding tests for changelog message functionality * Misc cleanup * Fixes #19956: Prevent duplicate deletion records from cascading deletions * Tweak bulk deletion test to work around cascading deletions issue * Correct API URL
60 lines
1.6 KiB
Python
60 lines
1.6 KiB
Python
import django_tables2 as tables
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from core.models import ObjectChange
|
|
from netbox.tables import NetBoxTable, columns
|
|
from .template_code import *
|
|
|
|
__all__ = (
|
|
'ObjectChangeTable',
|
|
)
|
|
|
|
|
|
class ObjectChangeTable(NetBoxTable):
|
|
time = columns.DateTimeColumn(
|
|
verbose_name=_('Time'),
|
|
timespec='minutes',
|
|
linkify=True
|
|
)
|
|
user_name = tables.Column(
|
|
verbose_name=_('Username')
|
|
)
|
|
full_name = tables.TemplateColumn(
|
|
accessor=tables.A('user'),
|
|
template_code=OBJECTCHANGE_FULL_NAME,
|
|
verbose_name=_('Full Name'),
|
|
orderable=False
|
|
)
|
|
action = columns.ChoiceFieldColumn(
|
|
verbose_name=_('Action'),
|
|
)
|
|
changed_object_type = columns.ContentTypeColumn(
|
|
verbose_name=_('Type')
|
|
)
|
|
object_repr = tables.TemplateColumn(
|
|
accessor=tables.A('changed_object'),
|
|
template_code=OBJECTCHANGE_OBJECT,
|
|
verbose_name=_('Object'),
|
|
orderable=False
|
|
)
|
|
request_id = tables.TemplateColumn(
|
|
template_code=OBJECTCHANGE_REQUEST_ID,
|
|
verbose_name=_('Request ID')
|
|
)
|
|
message = tables.Column(
|
|
verbose_name=_('Message'),
|
|
)
|
|
actions = columns.ActionsColumn(
|
|
actions=()
|
|
)
|
|
|
|
class Meta(NetBoxTable.Meta):
|
|
model = ObjectChange
|
|
fields = (
|
|
'pk', 'time', 'user_name', 'full_name', 'action', 'changed_object_type', 'object_repr', 'request_id',
|
|
'message', 'actions',
|
|
)
|
|
default_columns = (
|
|
'pk', 'time', 'user_name', 'action', 'changed_object_type', 'object_repr', 'message', 'actions',
|
|
)
|