From: David Mudrak Date: Mon, 4 Jan 2010 18:16:23 +0000 (+0000) Subject: Pagination a sorting fix X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=a880be9b140b7b94e592e90fbadc0bc94bfc0f5f;p=moodle.git Pagination a sorting fix --- diff --git a/mod/workshop/aggregate.php b/mod/workshop/aggregate.php index efcab9392f..aed656d3ac 100644 --- a/mod/workshop/aggregate.php +++ b/mod/workshop/aggregate.php @@ -29,12 +29,17 @@ require_once(dirname(__FILE__).'/locallib.php'); $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); @@ -50,7 +55,7 @@ if ($confirm) { $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); diff --git a/mod/workshop/view.php b/mod/workshop/view.php index e6aec417ef..9322fa1bdd 100644 --- a/mod/workshop/view.php +++ b/mod/workshop/view.php @@ -156,13 +156,12 @@ case workshop::PHASE_ASSESSMENT: } 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); @@ -170,7 +169,7 @@ case workshop::PHASE_EVALUATION: 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'; @@ -191,7 +190,7 @@ case workshop::PHASE_EVALUATION: $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);