Pagination a sorting fix

This commit is contained in:
David Mudrak
2010-01-04 18:16:23 +00:00
parent 63bf545a7f
commit a880be9b14
2 changed files with 11 additions and 7 deletions
+7 -2
View File
@@ -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);
+4 -5
View File
@@ -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);