|
@@ -1,8 +1,10 @@
|
|
|
import django_tables2 as tables
|
|
import django_tables2 as tables
|
|
|
from django.utils.translation import gettext_lazy as _
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
|
|
|
|
-from netbox.tables import NetBoxTable, columns
|
|
|
|
|
-from ..models import Job
|
|
|
|
|
|
|
+from netbox.tables import BaseTable, NetBoxTable, columns
|
|
|
|
|
+from core.constants import JOB_LOG_ENTRY_LEVELS
|
|
|
|
|
+from core.models import Job
|
|
|
|
|
+from core.tables.columns import BadgeColumn
|
|
|
|
|
|
|
|
|
|
|
|
|
class JobTable(NetBoxTable):
|
|
class JobTable(NetBoxTable):
|
|
@@ -40,6 +42,9 @@ class JobTable(NetBoxTable):
|
|
|
completed = columns.DateTimeColumn(
|
|
completed = columns.DateTimeColumn(
|
|
|
verbose_name=_('Completed'),
|
|
verbose_name=_('Completed'),
|
|
|
)
|
|
)
|
|
|
|
|
+ log_entries = tables.Column(
|
|
|
|
|
+ verbose_name=_('Log Entries'),
|
|
|
|
|
+ )
|
|
|
actions = columns.ActionsColumn(
|
|
actions = columns.ActionsColumn(
|
|
|
actions=('delete',)
|
|
actions=('delete',)
|
|
|
)
|
|
)
|
|
@@ -53,3 +58,24 @@ class JobTable(NetBoxTable):
|
|
|
default_columns = (
|
|
default_columns = (
|
|
|
'pk', 'id', 'object_type', 'object', 'name', 'status', 'created', 'started', 'completed', 'user',
|
|
'pk', 'id', 'object_type', 'object', 'name', 'status', 'created', 'started', 'completed', 'user',
|
|
|
)
|
|
)
|
|
|
|
|
+
|
|
|
|
|
+ def render_log_entries(self, value):
|
|
|
|
|
+ return len(value)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+class JobLogEntryTable(BaseTable):
|
|
|
|
|
+ timestamp = columns.DateTimeColumn(
|
|
|
|
|
+ timespec='milliseconds',
|
|
|
|
|
+ verbose_name=_('Time'),
|
|
|
|
|
+ )
|
|
|
|
|
+ level = BadgeColumn(
|
|
|
|
|
+ badges=JOB_LOG_ENTRY_LEVELS,
|
|
|
|
|
+ verbose_name=_('Level'),
|
|
|
|
|
+ )
|
|
|
|
|
+ message = tables.Column(
|
|
|
|
|
+ verbose_name=_('Message'),
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ class Meta(BaseTable.Meta):
|
|
|
|
|
+ empty_text = _('No log entries')
|
|
|
|
|
+ fields = ('timestamp', 'level', 'message')
|