Skip to content

Commit 584fff9

Browse files
Closes #18215: Create ScriptJobTable from JobTable and add it to ScriptSourceView (#19337)
1 parent e345ca2 commit 584fff9

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

netbox/extras/tables/tables.py

+20
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
from django.utils.translation import gettext_lazy as _
66

77
from extras.models import *
8+
from core.tables import JobTable
9+
from core.models import Job
810
from netbox.constants import EMPTY_TABLE_TEXT
911
from netbox.events import get_event_text
1012
from netbox.tables import BaseTable, NetBoxTable, columns
@@ -26,6 +28,7 @@
2628
'SavedFilterTable',
2729
'ReportResultsTable',
2830
'ScriptResultsTable',
31+
'ScriptJobTable',
2932
'SubscriptionTable',
3033
'TaggedItemTable',
3134
'TagTable',
@@ -638,6 +641,23 @@ def render_url(self, value):
638641
return format_html("<a href='{}'>{}</a>", value, value)
639642

640643

644+
class ScriptJobTable(JobTable):
645+
id = tables.TemplateColumn(
646+
template_code="""<a href="{% url 'extras:script_result' job_pk=record.pk %}">{{ record.id }}</a>""",
647+
verbose_name=_('ID'),
648+
)
649+
650+
class Meta(NetBoxTable.Meta):
651+
model = Job
652+
fields = (
653+
'pk', 'id', 'object_type', 'object', 'name', 'status', 'created', 'scheduled', 'interval', 'started',
654+
'completed', 'user', 'error', 'job_id',
655+
)
656+
default_columns = (
657+
'pk', 'id', 'object_type', 'object', 'name', 'status', 'created', 'started', 'completed', 'user',
658+
)
659+
660+
641661
class ReportResultsTable(BaseTable):
642662
index = tables.Column(
643663
verbose_name=_('Line')

netbox/extras/views.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
from core.choices import ManagedFileRootPathChoices
1616
from core.forms import ManagedFileForm
1717
from core.models import Job
18-
from core.tables import JobTable
1918
from dcim.models import Device, DeviceRole, Platform
2019
from extras.choices import LogLevelChoices
2120
from extras.dashboard.forms import DashboardWidgetAddForm, DashboardWidgetForm
@@ -36,7 +35,7 @@
3635
from . import filtersets, forms, tables
3736
from .constants import LOG_LEVEL_RANK
3837
from .models import *
39-
from .tables import ReportResultsTable, ScriptResultsTable
38+
from .tables import ReportResultsTable, ScriptResultsTable, ScriptJobTable
4039

4140

4241
#
@@ -1351,7 +1350,7 @@ class ScriptJobsView(BaseScriptView):
13511350
def get(self, request, **kwargs):
13521351
script = self.get_object(**kwargs)
13531352

1354-
jobs_table = JobTable(
1353+
jobs_table = ScriptJobTable(
13551354
data=script.jobs.all(),
13561355
orderable=False,
13571356
user=request.user

0 commit comments

Comments
 (0)