فهرست منبع

Closes #18215: Create ScriptJobTable from JobTable and add it to ScriptSourceView (#19337)

Renato Almeida de Oliveira 9 ماه پیش
والد
کامیت
584fff90c7
2فایلهای تغییر یافته به همراه22 افزوده شده و 3 حذف شده
  1. 20 0
      netbox/extras/tables/tables.py
  2. 2 3
      netbox/extras/views.py

+ 20 - 0
netbox/extras/tables/tables.py

@@ -5,6 +5,8 @@ from django.utils.html import format_html
 from django.utils.translation import gettext_lazy as _
 from django.utils.translation import gettext_lazy as _
 
 
 from extras.models import *
 from extras.models import *
+from core.tables import JobTable
+from core.models import Job
 from netbox.constants import EMPTY_TABLE_TEXT
 from netbox.constants import EMPTY_TABLE_TEXT
 from netbox.events import get_event_text
 from netbox.events import get_event_text
 from netbox.tables import BaseTable, NetBoxTable, columns
 from netbox.tables import BaseTable, NetBoxTable, columns
@@ -26,6 +28,7 @@ __all__ = (
     'SavedFilterTable',
     'SavedFilterTable',
     'ReportResultsTable',
     'ReportResultsTable',
     'ScriptResultsTable',
     'ScriptResultsTable',
+    'ScriptJobTable',
     'SubscriptionTable',
     'SubscriptionTable',
     'TaggedItemTable',
     'TaggedItemTable',
     'TagTable',
     'TagTable',
@@ -638,6 +641,23 @@ class ScriptResultsTable(BaseTable):
         return format_html("<a href='{}'>{}</a>", value, value)
         return format_html("<a href='{}'>{}</a>", value, value)
 
 
 
 
+class ScriptJobTable(JobTable):
+    id = tables.TemplateColumn(
+        template_code="""<a href="{% url 'extras:script_result' job_pk=record.pk %}">{{ record.id }}</a>""",
+        verbose_name=_('ID'),
+    )
+
+    class Meta(NetBoxTable.Meta):
+        model = Job
+        fields = (
+            'pk', 'id', 'object_type', 'object', 'name', 'status', 'created', 'scheduled', 'interval', 'started',
+            'completed', 'user', 'error', 'job_id',
+        )
+        default_columns = (
+            'pk', 'id', 'object_type', 'object', 'name', 'status', 'created', 'started', 'completed', 'user',
+        )
+
+
 class ReportResultsTable(BaseTable):
 class ReportResultsTable(BaseTable):
     index = tables.Column(
     index = tables.Column(
         verbose_name=_('Line')
         verbose_name=_('Line')

+ 2 - 3
netbox/extras/views.py

@@ -15,7 +15,6 @@ from jinja2.exceptions import TemplateError
 from core.choices import ManagedFileRootPathChoices
 from core.choices import ManagedFileRootPathChoices
 from core.forms import ManagedFileForm
 from core.forms import ManagedFileForm
 from core.models import Job
 from core.models import Job
-from core.tables import JobTable
 from dcim.models import Device, DeviceRole, Platform
 from dcim.models import Device, DeviceRole, Platform
 from extras.choices import LogLevelChoices
 from extras.choices import LogLevelChoices
 from extras.dashboard.forms import DashboardWidgetAddForm, DashboardWidgetForm
 from extras.dashboard.forms import DashboardWidgetAddForm, DashboardWidgetForm
@@ -36,7 +35,7 @@ from virtualization.models import VirtualMachine
 from . import filtersets, forms, tables
 from . import filtersets, forms, tables
 from .constants import LOG_LEVEL_RANK
 from .constants import LOG_LEVEL_RANK
 from .models import *
 from .models import *
-from .tables import ReportResultsTable, ScriptResultsTable
+from .tables import ReportResultsTable, ScriptResultsTable, ScriptJobTable
 
 
 
 
 #
 #
@@ -1351,7 +1350,7 @@ class ScriptJobsView(BaseScriptView):
     def get(self, request, **kwargs):
     def get(self, request, **kwargs):
         script = self.get_object(**kwargs)
         script = self.get_object(**kwargs)
 
 
-        jobs_table = JobTable(
+        jobs_table = ScriptJobTable(
             data=script.jobs.all(),
             data=script.jobs.all(),
             orderable=False,
             orderable=False,
             user=request.user
             user=request.user