diff --git a/classes/table/delayed_courses_table.php b/classes/table/delayed_courses_table.php index bd3dc9c7633713e7b4e1dc5d460947ef3eb102eb..e3f4d653c5f58bbd3a9170680177612bb8045c46 100644 --- a/classes/table/delayed_courses_table.php +++ b/classes/table/delayed_courses_table.php @@ -49,6 +49,7 @@ class delayed_courses_table extends \table_sql { 'FROM {tool_lifecycle_delayed_workf} dw ' . 'JOIN {tool_lifecycle_workflow} w ON dw.workflowid = w.id ' . // To make sure no outdated delays are counted. 'WHERE dw.delayeduntil >= :time ' . + 'AND w.timeactive IS NOT NULL ' . // TODO AND dw.workflowid IN $workflows 'GROUP BY courseid ' . ') maxtable ' . @@ -137,7 +138,8 @@ class delayed_courses_table extends \table_sql { public function col_tools($row) { global $PAGE, $OUTPUT; $button = new \single_button( - new \moodle_url($PAGE->url, array('cid' => $row->courseid)), + new \moodle_url($PAGE->url, + array('action' => 'delete', 'cid' => $row->courseid, 'sesskey' => sesskey())), get_string('delete_delay', 'tool_lifecycle')); return $OUTPUT->render($button); } diff --git a/delayedcourses.php b/delayedcourses.php index 3f68672f7ff39a6e0ccf3b6847d9e36ac0ab2eaa..33fabc725bce74e5c8d68de3cf85e855af62bed5 100644 --- a/delayedcourses.php +++ b/delayedcourses.php @@ -33,6 +33,27 @@ require_capability('moodle/site:config', context_system::instance()); admin_externalpage_setup('tool_lifecycle_delayed_courses'); +$action = optional_param('action', null, PARAM_ALPHANUMEXT); +if ($action) { + if ($action == 'delete') { + global $DB; + require_sesskey(); + $cid = required_param('cid', PARAM_INT); + $workflow = optional_param('workflow', null, PARAM_ALPHANUM); + if ($workflow) { + if (is_int($workflow)) { + $DB->delete_records('tool_lifecycle_delayed_workf', array('courseid' => $cid, 'workflowid' => $workflow)); + } else if ($workflow == 'global') { + $DB->delete_records('tool_lifecycle_delayed', array('courseid' => $cid)); + } + } else { + $DB->delete_records('tool_lifecycle_delayed', array('courseid' => $cid)); + $DB->delete_records('tool_lifecycle_delayed_workf', array('courseid' => $cid)); + } + } + redirect($PAGE->url); +} + $PAGE->set_url(new \moodle_url('/admin/tool/lifecycle/delayedcourses.php')); $PAGE->set_title(get_string('delayed_courses_header', 'tool_lifecycle')); @@ -41,7 +62,6 @@ $PAGE->set_heading(get_string('delayed_courses_header', 'tool_lifecycle')); $table = new delayed_courses_table(); $table->define_baseurl($PAGE->url); - echo $OUTPUT->header(); $table->out(100, false); echo $OUTPUT->footer();