diff --git a/admin/tool/task/renderer.php b/admin/tool/task/renderer.php index a25f3117e2f..f61909d256a 100644 --- a/admin/tool/task/renderer.php +++ b/admin/tool/task/renderer.php @@ -119,7 +119,9 @@ class tool_task_renderer extends plugin_renderer_base { // Prepares the next run time cell contents. $nextrun = ''; - if ($stats['due'] > 0) { + if ($stats['stop']) { + $nextrun = get_string('never', 'admin'); + } else if ($stats['due'] > 0) { $nextrun = get_string('asap', 'tool_task'); } else if ($stats['nextruntime']) { $nextrun = userdate($stats['nextruntime']); @@ -271,7 +273,11 @@ class tool_task_renderer extends plugin_renderer_base { if (!$started) { $nextruntime = $task->get_next_run_time(); $due = $nextruntime < $now; - $nextrun = $due ? userdate($nextruntime) : get_string('asap', 'tool_task'); + if ($task->get_attempts_available() > 0) { + $nextrun = $due ? userdate($nextruntime) : get_string('asap', 'tool_task'); + } else { + $nextrun = get_string('never', 'admin'); + } if ($wantruntasks && ($faildelay || $due)) { $nextrun .= ' '.html_writer::div( diff --git a/lib/classes/task/manager.php b/lib/classes/task/manager.php index 9d4a9e8dd63..b57fd17922f 100644 --- a/lib/classes/task/manager.php +++ b/lib/classes/task/manager.php @@ -543,6 +543,7 @@ class manager { 'failed' => 0, 'running' => 0, 'due' => 0, + 'stop' => false, ]; } @@ -564,6 +565,11 @@ class manager { } } + // Mark the task as stopped if it has no attempts available. + if (isset($r->attemptsavailable) && $r->attemptsavailable == 0) { + $classsummary['stop'] = true; + } + $summary[$r->component][$r->classname] = $classsummary; } return $summary;