diff --git a/grade/report/grader/lang/en/gradereport_grader.php b/grade/report/grader/lang/en/gradereport_grader.php index ce3aa73..0d1950c 100644 --- a/grade/report/grader/lang/en/gradereport_grader.php +++ b/grade/report/grader/lang/en/gradereport_grader.php @@ -34,3 +34,5 @@ $string['pluginname'] = 'Grader report'; $string['preferences'] = 'Grader report preferences'; $string['useractivitygrade'] = '{$a} grade'; $string['useractivityfeedback'] = '{$a} feedback'; +$string['quick_edit'] = 'Integrate Quick Edit'; +$string['quick_edit_desc'] = 'Creates _Quick edit_ links in the grader report.'; diff --git a/grade/report/grader/lib.php b/grade/report/grader/lib.php index c91394a..8c62ea3 100644 --- a/grade/report/grader/lib.php +++ b/grade/report/grader/lib.php @@ -590,6 +590,9 @@ class grade_report_grader extends grade_report { if (has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context)) { $colspan++; } + if ($this->get_pref('integrate_quick_edit')) { + $colspan++; + } $colspan += count($extrafields); $levels = count($this->gtree->levels) - 1; @@ -614,6 +617,9 @@ class grade_report_grader extends grade_report { if (has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context)) { $studentheader->colspan = 2; } + if ($this->get_pref('integrate_quick_edit')) { + $studentheader->colspan++; + } $studentheader->text = $arrows['studentname']; $headerrow->cells[] = $studentheader; @@ -665,6 +671,23 @@ class grade_report_grader extends grade_report { $userrow->cells[] = $usercell; + if ($this->get_pref('integrate_quick_edit')) { + $quickeditcell = new html_table_cell(); + $quickeditcell->attributes['class'] = 'quickedituser'; + $quickeditcell->header = true; + $a = new stdClass(); + $a->user = fullname($user); + $strgradesforuser = get_string('gradesforuser', 'grades', $a); + $url = new moodle_url('/grade/report/quick_edit/index.php', array( + 'id' => $this->course->id, + 'item' => 'user', + 'itemid' => $user->id, + 'group' => $this->currentgroup + )); + $quickeditcell->text = html_writer::link($url, 'QE'); + $userrow->cells[] = $quickeditcell; + } + if (has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context)) { $userreportcell = new html_table_cell(); $userreportcell->attributes['class'] = 'userreport'; @@ -789,7 +812,39 @@ class grade_report_grader extends grade_report { $arrow = $this->get_sort_arrow('move', $sortlink); } - $headerlink = $this->gtree->get_element_header($element, true, $this->get_pref('showactivityicons'), false); + $is_category_item = ( + $element['object']->itemtype == 'course' or + $element['object']->itemtype == 'category' + ); + + $can_category_quick_edit = ( + $is_category_item and + !empty($this->overridecat) + ); + + $can_quick_edit = ( + $this->get_pref('integrate_quick_edit') and + (!$is_category_item or $can_category_quick_edit) + ); + + if ($can_quick_edit) { + $is_anon = isset($this->anonymous_items[$element['object']->id]); + + $url = new moodle_url('/grade/report/quick_edit/index.php', array( + 'id' => $this->course->id, + 'item' => $is_anon ? 'anonymous' : 'grade', + 'itemid' => $element['object']->id, + 'group' => $this->currentgroup + )); + $link = html_writer::link($url, ' QE '); + $qe_link = html_writer::tag('span', $link, array( + 'class' => 'quickeditgrade' + )); + } else { + $qe_link = ''; + } + + $headerlink = $this->gtree->get_element_header($element, true, $this->get_pref('showactivityicons'), false); $itemcell = new html_table_cell(); $itemcell->attributes['class'] = $type . ' ' . $catlevel . ' highlightable'. ' i'. $element['object']->id; @@ -799,7 +854,9 @@ class grade_report_grader extends grade_report { } $itemcell->colspan = $colspan; - $itemcell->text = shorten_text($headerlink) . $arrow; + $itemcell->text = $qe_link; + $itemcell->text .= shorten_text($headerlink); + $itemcell->text .= $arrow; $itemcell->header = true; $itemcell->scope = 'col'; diff --git a/grade/report/grader/preferences_form.php b/grade/report/grader/preferences_form.php index ba2cb24..20d15c4 100644 --- a/grade/report/grader/preferences_form.php +++ b/grade/report/grader/preferences_form.php @@ -169,10 +169,14 @@ class grader_report_preferences_form extends moodleform { $options[GRADE_REPORT_PREFERENCE_DEFAULT] = get_string('reportdefault', 'grades', $default); } - $label = get_string($lang_string, 'grades') . $number; + if ($lang_string == 'integrate_quick_edit') { + $label = get_string('quick_edit', 'gradereport_grader'); + } else { + $label = get_string($lang_string, 'grades') . $number; + } $mform->addElement($type, $full_pref, $label, $options); - if ($lang_string != 'showuserimage') { + if ($lang_string != 'showuserimage' and $lang_string != 'integrate_quick_edit') { $mform->addHelpButton($full_pref, $lang_string, 'grades'); } $mform->setDefault($full_pref, $pref_value); diff --git a/grade/report/grader/settings.php b/grade/report/grader/settings.php index d1b02af..220f0bf 100644 --- a/grade/report/grader/settings.php +++ b/grade/report/grader/settings.php @@ -41,6 +41,12 @@ if ($ADMIN->fulltree) { $settings->add(new admin_setting_configcheckbox('grade_report_quickgrading', get_string('quickgrading', 'grades'), get_string('quickgrading_help', 'grades'), 1)); + $settings->add(new admin_setting_configcheckbox( + 'grade_report_integrate_quick_edit', + get_string('quick_edit', 'gradereport_grader'), + get_string('quick_edit_desc', 'gradereport_grader'), 0 + )); + $settings->add(new admin_setting_configcheckbox('grade_report_showquickfeedback', get_string('quickfeedback', 'grades'), get_string('showquickfeedback_help', 'grades'), 0));