Skip to content
Snippets Groups Projects
Commit 7b34570b authored by Justus Dieckmann's avatar Justus Dieckmann Committed by Tobias Reischmann
Browse files

Delays: Move cache logic to delayedcourses.php, add bulk delete button

parent 98b7cab0
No related branches found
No related tags found
No related merge requests found
......@@ -88,46 +88,4 @@ class form_delays_filter extends \moodleform {
$this->add_action_buttons(true, get_string('apply', 'tool_lifecycle'));
}
/**
* This method is called after definition(), data submission and set_data().
* All form setup that is dependent on form values should go in here.
*/
public function definition_after_data() {
$cache = $this->get_cache();
if ($this->is_submitted() && $this->is_validated()) {
if ($this->is_cancelled()) {
$cache->delete('delays_filter');
} else {
$cache->set('delays_filter', $this->get_data());
}
} else {
$this->set_data($cache->get('delays_filter'));
}
}
/**
* Override get data to return cached data when nothing was submitted.
* @return object
*/
public function get_data() {
$data = parent::get_data();
if ($data) {
return $data;
} else {
return $this->get_cache()->get('delays_filter');
}
}
/**
* Gets the cache.
* @return cache the cache to get the cached mform data.
*/
private function get_cache() {
if (!$this->cache) {
$this->cache = cache::make('tool_lifecycle', 'mformdata');
}
return $this->cache;
}
}
......@@ -48,9 +48,6 @@ class delayed_courses_table extends \table_sql {
public function __construct($filterdata) {
parent::__construct('tool_lifecycle-delayed-courses');
global $DB;
$DB->set_debug(true);
$fields = 'c.id as courseid, c.fullname as coursefullname, cat.name as category, ';
$selectseperatedelays = true;
......
......@@ -62,7 +62,19 @@ $PAGE->set_heading(get_string('delayed_courses_header', 'tool_lifecycle'));
$mform = new form_delays_filter($PAGE->url);
$data = $mform->get_data();
// Cache handling.
$cache = cache::make('tool_lifecycle', 'mformdata');
if ($mform->is_cancelled()) {
$cache->delete('delays_filter');
redirect($PAGE->url);
} else if ($data = $mform->get_data()) {
$cache->set('delays_filter', $data);
} else {
$data = $cache->get('delays_filter');
if ($data) {
$mform->set_data($data);
}
}
$table = new delayed_courses_table($data);
$table->define_baseurl($PAGE->url);
......@@ -70,4 +82,14 @@ $table->define_baseurl($PAGE->url);
echo $OUTPUT->header();
$mform->display();
$table->out(100, false);
$params = ['sesskey' => sesskey(), 'action' => 'bulk-delete'];
if ($data) {
$params = array_merge($params, (array) $data);
}
$button = new single_button(new moodle_url($PAGE->url, $params),
get_string('delete_all_delays', 'tool_lifecycle'));
echo $OUTPUT->render($button);
echo $OUTPUT->footer();
......@@ -205,3 +205,4 @@ $string['show_delays'] = 'Kind of view';
$string['all_delays'] = 'All delays';
$string['globally'] = 'Global delays';
$string['delays_for_workflow'] = 'Delays for "{$a}"';
$string['delete_all_delays'] = 'Delete all delays';
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment