$cmid = required_param('cmid', PARAM_INT); // course module
$confirm = optional_param('confirm', false, PARAM_BOOL); // confirmation
+// the params to be re-passed to view.php
+$page = optional_param('page', 0, PARAM_INT);
+$sortby = optional_param('sortby', 'lastname', PARAM_ALPHA);
+$sorthow = optional_param('sorthow', 'ASC', PARAM_ALPHA);
+
$cm = get_coursemodule_from_id('workshop', $cmid, 0, false, MUST_EXIST);
$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
$workshop = $DB->get_record('workshop', array('id' => $cm->instance), '*', MUST_EXIST);
$workshop = new workshop($workshop, $cm, $course);
-$PAGE->set_url(new moodle_url($workshop->aggregate_url(), array('cmid' => $cmid)));
+$PAGE->set_url(new moodle_url($workshop->aggregate_url(), compact('confirm', 'page', 'sortby', 'sorthow')));
require_login($course, false, $cm);
require_capability('mod/workshop:overridegrades', $PAGE->context);
$evaluator->update_grading_grades(); // updates 'gradinggrade' in {workshop_assessments}
$workshop->aggregate_grading_grades(); // updates 'gradinggrade' in {workshop_aggregations}
$workshop->aggregate_total_grades(); // updates 'totalgrade' in {workshop_aggregations}
- redirect($workshop->view_url());
+ redirect(new moodle_url($workshop->view_url(), compact('page', 'sortby', 'sorthow')));
}
$PAGE->set_title($workshop->name);
}
break;
case workshop::PHASE_EVALUATION:
- $pagingvar = 'page';
- $page = optional_param($pagingvar, 0, PARAM_INT);
+ $page = optional_param('page', 0, PARAM_INT);
$sortby = optional_param('sortby', 'lastname', PARAM_ALPHA);
$sorthow = optional_param('sorthow', 'ASC', PARAM_ALPHA);
-
$perpage = 10; // todo let the user modify this
$groups = ''; // todo let the user choose the group
+ $PAGE->set_url(new moodle_url($PAGE->url, compact('sortby', 'sorthow', 'page')));
$data = $workshop->prepare_grading_report($USER->id, $groups, $page, $perpage, $sortby, $sorthow);
if ($data) {
$showauthornames = has_capability('mod/workshop:viewauthornames', $PAGE->context);
if (has_capability('mod/workshop:overridegrades', $PAGE->context)) {
$form = new html_form();
- $form->url = $workshop->aggregate_url();
+ $form->url = new moodle_url($workshop->aggregate_url(), compact('sortby', 'sorthow', 'page'));
$form->button = new html_button();
$form->button->text = get_string('aggregategrades', 'workshop');
$form->method = 'post';
$pagingbar->page = $page;
$pagingbar->perpage = $perpage;
$pagingbar->baseurl = $PAGE->url;
- $pagingbar->pagevar = $pagingvar;
+ $pagingbar->pagevar = 'page';
echo $OUTPUT->paging_bar($pagingbar);
echo $wsoutput->grading_report($data, $showauthornames, $showreviewernames, $sortby, $sorthow);