Sfoglia il codice sorgente

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

Renato Almeida de Oliveira 1 anno fa
parent
commit
584fff90c7
2 ha cambiato i file con 22 aggiunte e 3 eliminazioni
  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