exit; } } } if ($subjects) { foreach ($subjects as $subject) { progressreview_controller::generate_reviews_for_course($subject->id, $session->id, PROGRESSREVIEW_SUBJECT); } redirect($PAGE->url->out(), get_string('reviewsgenerated', 'local_progressreview')); exit; } $subject_selector = $output->course_selector_form($potential_subject_selector, $distributed_subject_selector, $session->id); $content = $OUTPUT->heading(get_string('subjectreviews', 'local_progressreview'), 2); $content .= $subject_selector; // Tutor group selector $potential_tutor_selector = new progressreview_potential_course_selector('potential_tutors'); $distributed_tutor_selector = new progressreview_distributed_course_selector('distributed_tutors', $session->id, PROGRESSREVIEW_TUTOR); $excludes = $distributed_tutor_selector->find_users(); foreach ($excludes as $exclude) { $potential_tutor_selector->exclude(array_keys($exclude)); } $tutors = array(); if ($generate_tutor) { $tutors = $potential_tutor_selector->get_selected_users(); } else { if ($regenerate_tutor) { $tutors = $distributed_tutor_selector->get_selected_users(); } } if ($tutors) { add_to_log(SITEID, 'local_progressreview', 'update reviews', $PAGE->url->out(), count($tutors));
/** * Returns the HTML for a "big select list" for selecting courses * * Allows courses to be selected for either subject or tutor reviews to be generated * for that course. Those which already have reviews can have missing reviews * generated, or a new snapshot of statistics taken. * * @param progressreview_potential_course_selector $potential_selector * @param progressreview_distributed_course_selector $distributed_selector * @param int $sessionid * @param int $type PROGRESSREVIEW_SUBJECT or PROGRESSREVIEW_TUTOR * @return string HTML for the form */ public function course_selector_form($potential_selector, $distributed_selector, $sessionid, $type = PROGRESSREVIEW_SUBJECT) { $buttonsuffix = $type == PROGRESSREVIEW_SUBJECT ? '_subject' : '_tutor'; $output = ''; $table = new html_table('course_selector'); $row = new html_table_row(); $row->cells[] = $distributed_selector->display(true); $strcreatereviews = get_string('createreviews', 'local_progressreview'); $attrs = array('class' => 'course_selector_button', 'name' => 'generate' . $buttonsuffix, 'type' => 'submit', 'value' => $this->output->larrow() . ' ' . $strcreatereviews); $cell = html_writer::empty_tag('input', $attrs); $row->cells[] = $cell; $row->cells[] = $potential_selector->display(true); $table->data[] = $row; $attrs = array('action' => $this->page->url->out(), 'method' => 'post'); $output = html_writer::start_tag('form', $attrs); $attrs = array('type' => 'hidden', 'name' => 'id', 'value' => $sessionid); $output .= html_writer::empty_tag('input', $attrs); $output .= html_writer::table($table); $attrs = array('type' => 'submit', 'name' => 'regenerate' . $buttonsuffix, 'value' => get_string('regenerate', 'local_progressreview')); $output .= html_writer::empty_tag('input', $attrs); if ($type == PROGRESSREVIEW_SUBJECT) { $attrs = array('type' => 'submit', 'name' => 'snapshot', 'value' => get_string('snapshot', 'local_progressreview')); $output .= html_writer::empty_tag('input', $attrs); } $output .= html_writer::end_tag('form'); return $output; }
/** * Constructor, does initialisation then defines session ID and review type * * @param string $name * @param int $sessionid * @param string $reviewtype * @param array $extraoptions */ public function __construct($name, $sessionid, $reviewtype = PROGRESSREVIEW_SUBJECT, $extraoptions = array()) { parent::__construct($name, $extraoptions); $this->sessionid = $sessionid; $this->reviewtype = $reviewtype; }