mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-17 21:18:16 -06:00
Update to mixin and view
This commit is contained in:
parent
206db577b4
commit
6f85dbb626
@ -9,6 +9,11 @@ __all__ = (
|
|||||||
class PythonModuleMixin:
|
class PythonModuleMixin:
|
||||||
|
|
||||||
def get_jobs(self, name):
|
def get_jobs(self, name):
|
||||||
|
"""
|
||||||
|
Returns a list of Jobs associated with this specific script or report module
|
||||||
|
:param name: The class name of the script or report
|
||||||
|
:return: List of Jobs associated with this
|
||||||
|
"""
|
||||||
return self.jobs.filter(
|
return self.jobs.filter(
|
||||||
name=name
|
name=name
|
||||||
)
|
)
|
||||||
|
@ -1057,7 +1057,7 @@ class ReportView(ContentTypePermissionRequiredMixin, View):
|
|||||||
def get(self, request, module, name):
|
def get(self, request, module, name):
|
||||||
module = get_report_module(module, request)
|
module = get_report_module(module, request)
|
||||||
report = module.reports[name]()
|
report = module.reports[name]()
|
||||||
jobs = module.get_jobs(name)
|
jobs = module.get_jobs(report.class_name)
|
||||||
|
|
||||||
report.result = jobs.filter(
|
report.result = jobs.filter(
|
||||||
status__in=JobStatusChoices.TERMINAL_STATE_CHOICES
|
status__in=JobStatusChoices.TERMINAL_STATE_CHOICES
|
||||||
@ -1076,7 +1076,7 @@ class ReportView(ContentTypePermissionRequiredMixin, View):
|
|||||||
|
|
||||||
module = get_report_module(module, request)
|
module = get_report_module(module, request)
|
||||||
report = module.reports[name]()
|
report = module.reports[name]()
|
||||||
jobs = module.get_jobs(name)
|
jobs = module.get_jobs(report.class_name)
|
||||||
form = ReportForm(request.POST, scheduling_enabled=report.scheduling_enabled)
|
form = ReportForm(request.POST, scheduling_enabled=report.scheduling_enabled)
|
||||||
|
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
@ -1118,7 +1118,7 @@ class ReportSourceView(ContentTypePermissionRequiredMixin, View):
|
|||||||
def get(self, request, module, name):
|
def get(self, request, module, name):
|
||||||
module = get_report_module(module, request)
|
module = get_report_module(module, request)
|
||||||
report = module.reports[name]()
|
report = module.reports[name]()
|
||||||
jobs = module.get_jobs(name)
|
jobs = module.get_jobs(report.class_name)
|
||||||
|
|
||||||
return render(request, 'extras/report/source.html', {
|
return render(request, 'extras/report/source.html', {
|
||||||
'job_count': jobs.count(),
|
'job_count': jobs.count(),
|
||||||
@ -1136,8 +1136,7 @@ class ReportJobsView(ContentTypePermissionRequiredMixin, View):
|
|||||||
def get(self, request, module, name):
|
def get(self, request, module, name):
|
||||||
module = get_report_module(module, request)
|
module = get_report_module(module, request)
|
||||||
report = module.reports[name]()
|
report = module.reports[name]()
|
||||||
jobs = module.get_jobs(name)
|
jobs = module.get_jobs(report.class_name)
|
||||||
|
|
||||||
|
|
||||||
jobs_table = JobTable(
|
jobs_table = JobTable(
|
||||||
data=jobs,
|
data=jobs,
|
||||||
@ -1235,7 +1234,7 @@ class ScriptView(ContentTypePermissionRequiredMixin, View):
|
|||||||
form = script.as_form(initial=normalize_querydict(request.GET))
|
form = script.as_form(initial=normalize_querydict(request.GET))
|
||||||
|
|
||||||
# Look for a pending Job (use the latest one by creation timestamp)
|
# Look for a pending Job (use the latest one by creation timestamp)
|
||||||
script.result = module.get_jobs(name).exclude(
|
script.result = module.get_jobs(script.class_name).exclude(
|
||||||
status__in=JobStatusChoices.TERMINAL_STATE_CHOICES
|
status__in=JobStatusChoices.TERMINAL_STATE_CHOICES
|
||||||
).first()
|
).first()
|
||||||
|
|
||||||
@ -1252,7 +1251,7 @@ class ScriptView(ContentTypePermissionRequiredMixin, View):
|
|||||||
|
|
||||||
module = get_script_module(module, request)
|
module = get_script_module(module, request)
|
||||||
script = module.scripts[name]()
|
script = module.scripts[name]()
|
||||||
jobs = module.get_jobs(name)
|
jobs = module.get_jobs(script.class_name)
|
||||||
form = script.as_form(request.POST, request.FILES)
|
form = script.as_form(request.POST, request.FILES)
|
||||||
|
|
||||||
# Allow execution only if RQ worker process is running
|
# Allow execution only if RQ worker process is running
|
||||||
@ -1291,7 +1290,7 @@ class ScriptSourceView(ContentTypePermissionRequiredMixin, View):
|
|||||||
def get(self, request, module, name):
|
def get(self, request, module, name):
|
||||||
module = get_script_module(module, request)
|
module = get_script_module(module, request)
|
||||||
script = module.scripts[name]()
|
script = module.scripts[name]()
|
||||||
jobs = module.get_jobs(name)
|
jobs = module.get_jobs(script.class_name)
|
||||||
|
|
||||||
return render(request, 'extras/script/source.html', {
|
return render(request, 'extras/script/source.html', {
|
||||||
'job_count': jobs.count(),
|
'job_count': jobs.count(),
|
||||||
|
Loading…
Reference in New Issue
Block a user