diff --git a/grade/edit/calculation.php b/grade/edit/calculation.php index e8c846d7eb5..36e0af573b4 100644 --- a/grade/edit/calculation.php +++ b/grade/edit/calculation.php @@ -1,5 +1,6 @@ dirroot.'/grade/lib.php'; require_once $CFG->libdir.'/gradelib.php'; require_once 'calculation_form.php'; @@ -16,8 +17,8 @@ $context = get_context_instance(CONTEXT_COURSE, $course->id); //require_capability() here!! // default return url -//TODO: add proper return support -$returnurl = $CFG->wwwroot.'/grade/report.php?report=grader&id='.$course->id; +$gpr = new grade_plugin_return(); +$returnurl = $gpr->get_return_url($CFG->wwwroot.'/grade/report.php?id='.$course->id); if (!$grade_item = grade_item::fetch(array('id'=>$id, 'courseid'=>$course->id))) { error('Incorect item id'); @@ -28,7 +29,7 @@ if ($grade_item->is_normal_item() or ($grade_item->gradetype != GRADE_TYPE_VALUE redirect($returnurl, get_string('erornocalculationallowed', 'grades')); //TODO: localize } -$mform = new edit_calculation_form(); +$mform = new edit_calculation_form(null, array('gpr'=>$gpr)); if ($mform->is_cancelled()) { redirect($returnurl); diff --git a/grade/edit/calculation_form.php b/grade/edit/calculation_form.php index dac6f10eaeb..ae0e7fbe8b6 100644 --- a/grade/edit/calculation_form.php +++ b/grade/edit/calculation_form.php @@ -21,6 +21,10 @@ class edit_calculation_form extends moodleform { $mform->addElement('hidden', 'courseid', 0); $mform->setType('courseid', PARAM_INT); +/// add return tracking info + $gpr = $this->_customdata['gpr']; + $gpr->add_mform_elements($mform); + //------------------------------------------------------------------------------- // buttons $this->add_action_buttons(); diff --git a/grade/edit/category.php b/grade/edit/category.php index 6b71532115b..18b74b2e55a 100644 --- a/grade/edit/category.php +++ b/grade/edit/category.php @@ -1,6 +1,7 @@ dirroot.'/grade/lib.php'; require_once $CFG->libdir.'/gradelib.php'; require_once 'category_form.php'; @@ -17,10 +18,11 @@ $context = get_context_instance(CONTEXT_COURSE, $course->id); //require_capability() here!! // default return url -$returnurl = 'tree.php?id='.$course->id; +$gpr = new grade_plugin_return(); +$returnurl = $gpr->get_return_url('tree.php?id='.$course->id); -$mform = new edit_category_form(); +$mform = new edit_category_form(null, array('gpr'=>$gpr)); if ($category = get_record('grade_categories', 'id', $id, 'courseid', $course->id)) { $mform->set_data($category); } else { diff --git a/grade/edit/category_form.php b/grade/edit/category_form.php index 70b5747327d..4244804c194 100644 --- a/grade/edit/category_form.php +++ b/grade/edit/category_form.php @@ -36,6 +36,10 @@ class edit_category_form extends moodleform { $mform->addElement('hidden', 'courseid', 0); $mform->setType('courseid', PARAM_INT); +/// add return tracking info + $gpr = $this->_customdata['gpr']; + $gpr->add_mform_elements($mform); + //------------------------------------------------------------------------------- // buttons $this->add_action_buttons(); diff --git a/grade/edit/grade.php b/grade/edit/grade.php index c9fa645f82c..6aabe082bcf 100644 --- a/grade/edit/grade.php +++ b/grade/edit/grade.php @@ -1,6 +1,7 @@ dirroot.'/grade/lib.php'; require_once $CFG->libdir.'/gradelib.php'; require_once 'grade_form.php'; @@ -18,15 +19,15 @@ $context = get_context_instance(CONTEXT_COURSE, $course->id); require_capability('gradereport/grader:manage', $context); // default return url -//TODO: implement proper return support -$returnurl = $CFG->wwwroot.'/grade/report.php?report=grader&id='.$course->id; +$gpr = new grade_plugin_return(); +$returnurl = $gpr->get_return_url($CFG->wwwroot.'/grade/report.php?id='.$course->id); // TODO: add proper check that grade is editable $grade_grades = get_record('grade_grades', 'id', $id); $gradeitem = get_record('grade_items', 'id', $grade_grades->itemid); -$mform = new edit_grade_form(qualified_me(), array('gradeitem'=>$gradeitem)); +$mform = new edit_grade_form(null, array('gradeitem'=>$gradeitem, 'gpr'=>$gpr)); if ($grade_grades = get_record('grade_grades', 'id', $id)) { if ($grade_text = get_record('grade_grades_text', 'gradeid', $id)) { if (can_use_html_editor()) { @@ -64,7 +65,7 @@ if ($mform->is_cancelled()) { // set locktime $grade_grades->set_locktime($data->locktime); - redirect($returnurl, get_string('feedbacksaved', 'grades'), 1); + redirect($returnurl); } // Get extra data related to this feedback diff --git a/grade/edit/grade_form.php b/grade/edit/grade_form.php index d22883551d8..e04af01e25b 100755 --- a/grade/edit/grade_form.php +++ b/grade/edit/grade_form.php @@ -54,6 +54,10 @@ class edit_grade_form extends moodleform { $mform->addElement('hidden', 'courseid', 0); $mform->setType('courseid', PARAM_INT); +/// add return tracking info + $gpr = $this->_customdata['gpr']; + $gpr->add_mform_elements($mform); + //------------------------------------------------------------------------------- // buttons $this->add_action_buttons(); diff --git a/grade/edit/item.php b/grade/edit/item.php index 1ea75d184b6..01230d112ec 100644 --- a/grade/edit/item.php +++ b/grade/edit/item.php @@ -1,5 +1,6 @@ dirroot.'/grade/lib.php'; require_once $CFG->libdir.'/gradelib.php'; require_once 'item_form.php'; @@ -16,9 +17,10 @@ $context = get_context_instance(CONTEXT_COURSE, $course->id); //require_capability() here!! // default return url -$returnurl = 'tree.php?id='.$course->id; +$gpr = new grade_plugin_return(); +$returnurl = $gpr->get_return_url('tree.php?id='.$course->id); -$mform = new edit_item_form(); +$mform = new edit_item_form(null, array('gpr'=>$gpr)); if ($item = get_record('grade_items', 'id', $id, 'courseid', $course->id)) { $item->calculation = grade_item::denormalize_formula($item->calculation, $course->id); $mform->set_data($item); diff --git a/grade/edit/item_form.php b/grade/edit/item_form.php index 4444684ecb7..f15faebf8f7 100644 --- a/grade/edit/item_form.php +++ b/grade/edit/item_form.php @@ -82,6 +82,10 @@ class edit_item_form extends moodleform { $mform->addElement('hidden', 'itemtype', 0); $mform->setType('itemtype', PARAM_ALPHA); +/// add return tracking info + $gpr = $this->_customdata['gpr']; + $gpr->add_mform_elements($mform); + //------------------------------------------------------------------------------- // buttons $this->add_action_buttons(); diff --git a/grade/edit/tree.php b/grade/edit/tree.php index 8ac1b5d9999..fdd47f3b5ea 100644 --- a/grade/edit/tree.php +++ b/grade/edit/tree.php @@ -25,6 +25,7 @@ /////////////////////////////////////////////////////////////////////////// require_once '../../config.php'; +require_once $CFG->dirroot.'/grade/lib.php'; require_once $CFG->libdir.'/gradelib.php'; $courseid = required_param('id', PARAM_INT); @@ -169,12 +170,11 @@ switch ($action) { print_header_simple($strgrades . ': ' . $strgraderreport, ': ' . $strcategoriesedit, $navigation, '', '', true, '', navmenu($course)); +/// Print the plugin selector at the top +print_grade_plugin_selector($courseid, 'edit', 'tree'); + print_heading(get_string('categoriesedit', 'grades')); -// Add tabs -// TODO: implement return support - use tabs from the report plugin -/*$currenttab = 'editcategory'; -include('tabs.php');*/ print_box_start('gradetreebox generalbox'); echo '