From 6e30bd442d28b0f849c24d4823f6d522858d1db5 Mon Sep 17 00:00:00 2001 From: nicolasconnault Date: Wed, 11 Jul 2007 07:30:04 +0000 Subject: [PATCH] MDL-10392 updated links to edit_grade form, corrected the loop for table rows, which only initialised the $element object at the end of the loop MDL-10211 Removed showfeedback preference MDL-10286 Changed tooltip so that it surrounds the grade in a span when edit mode is off, and surrounds the edit icon otherwise MDL-10287 Deleted edit_feedback and edit_feedback files and links to this form MDL-10368 Removed show/hide feedback toggle --- grade/report/grader/edit_feedback.php | 136 ----------------------------- grade/report/grader/edit_feedback_form.php | 36 -------- grade/report/grader/index.php | 51 +++++------ grade/report/grader/preferences_form.php | 1 - grade/report/grader/settings.php | 18 +++- lang/en_utf8/grades.php | 14 +-- lib/gradelib.php | 37 ++------ 7 files changed, 52 insertions(+), 241 deletions(-) delete mode 100644 grade/report/grader/edit_feedback.php delete mode 100644 grade/report/grader/edit_feedback_form.php diff --git a/grade/report/grader/edit_feedback.php b/grade/report/grader/edit_feedback.php deleted file mode 100644 index 24ea345d8..000000000 --- a/grade/report/grader/edit_feedback.php +++ /dev/null @@ -1,136 +0,0 @@ -libdir.'/gradelib.php'; -require_once 'edit_feedback_form.php'; - -$courseid = required_param('courseid', PARAM_INT); -$id = optional_param('id', 0, PARAM_INT); -$action = optional_param('action', 'view', PARAM_ALPHA); - -if (!$course = get_record('course', 'id', $courseid)) { - print_error('nocourseid'); -} - -require_login($course); - -$context = get_context_instance(CONTEXT_COURSE, $course->id); -require_capability('gradereport/grader:manage', $context); - -// default return url -$returnurl = $CFG->wwwroot.'/grade/report.php?report=grader&id='.$course->id; - -$mform = new edit_feedback_form(); -if ($grade_text = get_record('grade_grades_text', 'gradeid', $id)) { - $mform->set_data($grade_text); -} else { - $mform->set_data(array('courseid'=>$course->id, 'id' => $id)); -} - -if ($mform->is_cancelled()) { - redirect($returnurl); - -} else if ($data = $mform->get_data()) { - $data->gradeid = $data->id; - unset($data->id); - - $grade_text = new grade_grades_text(array('gradeid'=>$id)); - grade_grades_text::set_properties($grade_text, $data); - if (empty($grade_text->id)) { - $grade_text->insert(); - - } else { - $grade_text->update(); - } - - redirect($returnurl, get_string('feedbacksaved', 'grades'), 1); -} - -// Get extra data related to this feedback -$query = "SELECT a.id AS userid, a.firstname, a.lastname, - b.id AS itemid, b.itemname, b.grademin, b.grademax, b.iteminstance, b.itemmodule, b.scaleid, - c.finalgrade - FROM {$CFG->prefix}user a, - {$CFG->prefix}grade_items b, - {$CFG->prefix}grade_grades c - WHERE c.id = $id - AND b.id = c.itemid - AND a.id = c.userid"; - -$extra_info = get_record_sql($query) ; -$extra_info->grademin = round($extra_info->grademin); -$extra_info->grademax = round($extra_info->grademax); -$extra_info->finalgrade = round($extra_info->finalgrade); - -if (!empty($extra_info->itemmodule) && !empty($extra_info->iteminstance)) { - $extra_info->course_module = get_coursemodule_from_instance($extra_info->itemmodule, $extra_info->iteminstance, $courseid); -} - -$stronascaleof = get_string('onascaleof', 'grades', $extra_info); -$strgrades = get_string('grades'); -$strgrade = get_string('grade'); -$strgraderreport = get_string('graderreport', 'grades'); -$strfeedback = get_string('feedback', 'grades'); -$strfeedbackedit = get_string('feedbackedit', 'grades'); -$strfeedbackview = get_string('feedbackview', 'grades'); -$strfeedbackadd = get_string('feedbackadd', 'grades'); -$strstudent = get_string('student', 'grades'); -$strgradeitem = get_string('gradeitem', 'grades'); - -$feedback = null; -$heading = ${"strfeedback$action"}; -if (!empty($action) && $action == 'view' && !empty($grade_text->feedback)) { - $feedback = "

$strfeedback:

$grade_text->feedback

"; -} - -$nav = array(array('name'=>$strgrades,'link'=>$CFG->wwwroot.'/grade/index.php?id='.$courseid, 'type'=>'misc'), - array('name'=>$strgraderreport, 'link'=>$CFG->wwwroot.'/grade/report.php?id='.$courseid.'&report=grader', 'type'=>'misc'), - array('name'=>$heading, 'link'=>'', 'type'=>'misc')); - -$navigation = build_navigation($nav); - -/*********** BEGIN OUTPUT *************/ - -print_header_simple($strgrades . ': ' . $strgraderreport . ': ' . $heading, - ': ' . $heading , $navigation, '', '', true, '', navmenu($course)); - -print_heading($heading); - -print_simple_box_start("center"); - -// Student name and link -echo "

$strstudent: wwwroot . '/user/view.php?id=' - . $extra_info->userid . '">' . fullname($extra_info) . "

"; - -// Grade item name and link -if (!empty($extra_info->course_module) && !empty($extra_info->itemmodule)) { - echo "

$strgradeitem: wwwroot . '/mod/' . $extra_info->itemmodule - . '/view.php?id=' . $extra_info->course_module->id . "&courseid=$courseid\">$extra_info->itemname

"; -} - -// Final grade and link to scale if applicable -if (!empty($extra_info->finalgrade)) { - $openlink = ''; - $closelink = ''; - - if (!empty($extra_info->scaleid)) { - $openlink = ''; - $closelink = ''; - } - echo "

$strgrade: " . $extra_info->finalgrade . "$openlink $stronascaleof $closelink

"; -} - -// Form if in edit or add modes -if ($action != 'view') { - $mform->display(); -} else { // Feedback string and Back button if in View mode - echo $feedback; - echo "'; -} - -print_simple_box_end(); - -print_footer($course); -die; diff --git a/grade/report/grader/edit_feedback_form.php b/grade/report/grader/edit_feedback_form.php deleted file mode 100644 index dbd54c565..000000000 --- a/grade/report/grader/edit_feedback_form.php +++ /dev/null @@ -1,36 +0,0 @@ -libdir.'/formslib.php'; - -class edit_feedback_form extends moodleform { - function definition() { - global $CFG, $USER; - $mform =& $this->_form; - - $feedbackformat = get_user_preferences('grade_report_feedbackformat', $CFG->grade_report_feedbackformat); - - // visible elements - // User preference determines the format - if ($CFG->htmleditor && $USER->htmleditor && $feedbackformat == GRADER_REPORT_FEEDBACK_FORMAT_HTML) { - $mform->addElement('htmleditor', 'feedback', get_string('feedback', 'grades'), - array('rows'=> '15', 'course' => optional_param('courseid', PARAM_INT), 'cols'=>'45')); - } else { - $mform->addElement('textarea', 'feedback', get_string('feedback', 'grades')); - } - - //TODO: add other elements - - // hidden params - $mform->addElement('hidden', 'id', 0); - $mform->setType('gradeid', PARAM_INT); - - $mform->addElement('hidden', 'courseid', 0); - $mform->setType('courseid', PARAM_INT); - -//------------------------------------------------------------------------------- - // buttons - $this->add_action_buttons(); - } -} - -?> diff --git a/grade/report/grader/index.php b/grade/report/grader/index.php index 7ce5fc91c..98d7bc5cd 100644 --- a/grade/report/grader/index.php +++ b/grade/report/grader/index.php @@ -154,7 +154,6 @@ $showgrandtotals = get_user_preferences('grade_report_showgrandtotals', $CF $showgroups = get_user_preferences('grade_report_showgroups', $CFG->grade_report_showgroups); $aggregation_position = get_user_preferences('grade_report_aggregationposition', $CFG->grade_report_aggregationposition); $showscales = get_user_preferences('grade_report_showscales', $CFG->grade_report_showscales); -$showfeedback = get_user_preferences('grade_report_showfeedback', $CFG->grade_report_showfeedback); $quickgrading = get_user_preferences('grade_report_quickgrading', $CFG->grade_report_quickgrading); $quickfeedback = get_user_preferences('grade_report_quickfeedback', $CFG->grade_report_quickfeedback); @@ -166,6 +165,7 @@ if ($perpageurl = optional_param('perpage', 0, PARAM_INT)) { // Prepare language strings $strsortasc = get_string('sortasc', 'grades'); $strsortdesc = get_string('sortdesc', 'grades'); +$strfeedback = get_string("feedback"); // base url for sorting by first/last name $baseurl = 'report.php?id='.$courseid.'&perpage='.$perpage.'&report=grader&page='.$page; @@ -413,7 +413,6 @@ if ($USER->gradeediting) { grader_report_print_toggle('calculations', $baseurl); } -grader_report_print_toggle('feedback', $baseurl); grader_report_print_toggle('grandtotals', $baseurl); grader_report_print_toggle('groups', $baseurl); grader_report_print_toggle('scales', $baseurl); @@ -539,6 +538,15 @@ foreach ($users as $userid => $user) { $studentshtml .= ''; } + // Do not show any icons if no grade (no record in DB to match) + if (!empty($grade->id)) { + // emulate grade element + $grade->courseid = $course->id; + $grade->grade_item = $item; // this may speedup is_hidden() and other grade_grades methods + $element = array ('eid'=>'g'.$grade->id, 'object'=>$grade, 'type'=>'grade'); + $studentshtml .= grade_get_icons($element, $gtree); + } + // if in editting mode, we need to print either a text box // or a drop down (for scales) @@ -582,33 +590,20 @@ foreach ($users as $userid => $user) { } } - // Prepare icons for when quickgrading or quickfeedback are switched off - $icons_html = '
'; - - // If quickgrading is off, print an edit icon - if (!$quickgrading) { - $icons_html .= grade_get_icons($element, $gtree, array('edit')); - } // If quickfeedback is on, print an input element - if ($showfeedback && $quickfeedback) { + if ($quickfeedback) { $studentshtml .= ''; - - } else if ($showfeedback) { // If quickfeedback is off but showfeedback is on, print an edit feedback icon - if (empty($grade->feedback)) { - $icons_html .= grade_get_icons($element, $gtree, array('add_feedback')); - } else { - $icons_html .= grade_get_icons($element, $gtree, array('edit_feedback')); - } } - $icons_html .= '
'; - - if (!$quickfeedback || !$quickgrading) { - $studentshtml .= $icons_html; + $studentshtml .= '
' . grade_get_icons($element, $gtree, array('edit')) . '
'; + } else { + // If feedback present, surround grade with feedback tooltip + if (!empty($grade->feedback)) { + $studentshtml .= ''; } - } else { // finalgrades[$userid][$itemid] could be null because of the outer join // in this case it's different than a 0 if ($item->scaleid) { @@ -631,15 +626,9 @@ foreach ($users as $userid => $user) { $studentshtml .= get_grade_clean($gradeval); } } - } - - // Do not show any icons if no grade (no record in DB to match) - if (!empty($grade->id)) { - // emulate grade element - $grade->courseid = $course->id; - $grade->grade_item = $item; // this may speedup is_hidden() and other grade_grades methods - $element = array ('eid'=>'g'.$grade->id, 'object'=>$grade, 'type'=>'grade'); - $studentshtml .= grade_get_icons($element, $gtree); + if (!empty($grade->feedback)) { + $studentshtml .= ''; + } } if (!empty($gradeserror[$item->id][$userid])) { diff --git a/grade/report/grader/preferences_form.php b/grade/report/grader/preferences_form.php index 172cd30c5..b57e31adb 100644 --- a/grade/report/grader/preferences_form.php +++ b/grade/report/grader/preferences_form.php @@ -26,7 +26,6 @@ class grader_report_preferences_form extends moodleform { 'showgrandtotals' => 'advcheckbox', 'showgroups' => 'advcheckbox', 'showlocks' => 'advcheckbox', - 'showfeedback' => 'advcheckbox', 'showscales' => 'advcheckbox', 'quickgrading' => 'advcheckbox', 'quickfeedback' => 'advcheckbox', diff --git a/grade/report/grader/settings.php b/grade/report/grader/settings.php index 57f990695..650751da8 100644 --- a/grade/report/grader/settings.php +++ b/grade/report/grader/settings.php @@ -4,42 +4,56 @@ $settings->add(new admin_setting_configselect('grade_report_aggregationposition', get_string('aggregationposition', 'grades'), get_string('configaggregationposition', 'grades'), false, array(get_string('left', 'grades'), get_string('right', 'grades')))); + $settings->add(new admin_setting_configselect('grade_report_aggregationview', get_string('aggregationview', 'grades'), get_string('configaggregationview', 'grades'), false, array(get_string('full', 'grades'), get_string('compact', 'grades')))); + $settings->add(new admin_setting_configcheckbox('grade_report_bulkcheckboxes', get_string('bulkcheckboxes', 'grades'), get_string('configbulkcheckboxes', 'grades'), 0)); + $settings->add(new admin_setting_configcheckbox('grade_report_enableajax', get_string('enableajax', 'grades'), get_string('configenableajax', 'grades'), 0)); + $settings->add(new admin_setting_configselect('grade_report_gradedisplaytype', get_string('gradedisplaytype', 'grades'), get_string('configgradedisplaytype', 'grades'), false, array(get_string('raw', 'grades'), get_string('percentage', 'grades')))); + $settings->add(new admin_setting_configselect('grade_report_grandtotalsdisplaytype', get_string('grandtotalsdisplaytype', 'grades'), get_string('configgrandtotalsdisplaytype', 'grades'), false, array(get_string('raw', 'grades'), get_string('percentage', 'grades')))); + $settings->add(new admin_setting_configcheckbox('grade_report_showcalculations', get_string('showcalculations', 'grades'), get_string('configshowcalculations', 'grades'), 0)); + $settings->add(new admin_setting_configcheckbox('grade_report_showeyecons', get_string('showeyecons', 'grades'), get_string('configshoweyecons', 'grades'), 0)); + $settings->add(new admin_setting_configcheckbox('grade_report_showgroups', get_string('showgroups', 'grades'), get_string('configshowgroups', 'grades'), 0)); + $settings->add(new admin_setting_configcheckbox('grade_report_showgrandtotals', get_string('showgrandtotals', 'grades'), get_string('configshowgrandtotals', 'grades'), 0)); + $settings->add(new admin_setting_configcheckbox('grade_report_showlocks', get_string('showlocks', 'grades'), get_string('configshowlocks', 'grades'), 0)); -$settings->add(new admin_setting_configcheckbox('grade_report_showfeedback', get_string('showfeedback', 'grades'), - get_string('configshowfeedback', 'grades'), 0)); + $settings->add(new admin_setting_configcheckbox('grade_report_showscales', get_string('showscales', 'grades'), get_string('configshowscales', 'grades'), 0)); + $settings->add(new admin_setting_configcheckbox('grade_report_quickgrading', get_string('quickgrading', 'grades'), get_string('configquickgrading', 'grades'), 1)); + $settings->add(new admin_setting_configcheckbox('grade_report_quickfeedback', get_string('quickfeedback', 'grades'), get_string('configquickfeedback', 'grades'), 1)); + $settings->add(new admin_setting_configtext('grade_report_studentsperpage', get_string('studentsperpage', 'grades'), get_string('configstudentsperpage', 'grades'), 20)); + $settings->add(new admin_setting_configselect('grade_report_feedbackformat', get_string('feedbackformat', 'grades'), get_string('configfeedbackformat', 'grades'), false, array(get_string('text', 'grades'), get_string('html', 'grades')))); + $settings->add(new admin_setting_configselect('grade_report_decimalpoints', get_string('decimalpoints', 'grades'), get_string('configdecimalpoints', 'grades'), 2, array( '0' => '0', diff --git a/lang/en_utf8/grades.php b/lang/en_utf8/grades.php index ff032688b..08909f8f7 100644 --- a/lang/en_utf8/grades.php +++ b/lang/en_utf8/grades.php @@ -36,12 +36,12 @@ $string['configdecimalpoints'] = 'The number of decimal points to display for ea $string['configenableajax'] = 'Adds a layer of AJAX functionality to the grader report, simplifying and speeding up common operations. Depends on Javascript being switched on at the user\'s browser level.'; $string['configfeedbackformat'] = 'The format of feedback notes attached to grades. This also determines the interface element used to enter such feedback (htmleditor for HTML format).'; $string['configgradedisplaytype'] = 'Grades can be shown as raw grades or as percentages (in reference to the minimum and maximum grades).'; -$string['configgrandtotalsdisplaytype'] = 'Grand totals can be shown as raw grades or as percentages (in reference to the minimum and maximum grades).'; +$string['configgrandtotalsdisplaytype'] = 'Column totals can be shown as raw grades or as percentages (in reference to the minimum and maximum grades).'; $string['configquickfeedback'] = 'Quick Feedback adds a text input element in each grade cell on the grader report, allowing you to edit many grades at once. You can then click the Update button to perform all these changes at once, instead of one at a time.'; $string['configquickgrading'] = 'Quick Grading adds a text input element in each grade cell on the grader report, allowing you to edit the feedback for many grades at once. You can then click the Update button to perform all these changes at once, instead of one at a time.'; $string['configshowcalculations'] = 'Whether to show calculator icons near each grade item and category, tooltips over calculated items and a visual indicator that a column is calculated.'; -$string['configshoweyecons'] = 'Whether to show an eye-con near each grade (controlling its visibility to the user).'; -$string['configshowgrandtotals'] = 'Show grand totals in the grader report.'; +$string['configshoweyecons'] = 'Whether to show a show/hide icon near each grade (controlling its visibility to the user).'; +$string['configshowgrandtotals'] = 'Show column totals in the grader report.'; $string['configshowgroups'] = 'Show group totals and means in the grader report.'; $string['configshowlocks'] = 'Whether to show a lock/unlock icon near each grade.'; $string['configshowfeedback'] = 'Whether to show a feedback icon (for adding/editing) near each grade.'; @@ -118,11 +118,11 @@ $string['gradereports'] = 'Grades report'; $string['graderreport'] = 'Grader report'; $string['gradetype'] = 'Grade type'; $string['gradeweighthelp'] = 'Grade Weight Help'; -$string['grandtotalsdisplaytype'] = 'Grand totals display type'; +$string['grandtotalsdisplaytype'] = 'Column totals display type'; $string['hideadvanced'] = 'Hide Advanced Features'; $string['hidecalculations'] = 'Hide calculations'; $string['hidecategory'] = 'Hidden'; -$string['hideeyecons'] = 'Hide eyecons'; +$string['hideeyecons'] = 'Hide show/hide icons'; $string['hidegrandtotals'] = 'Hide grandtotals'; $string['hidegroups'] = 'Hide groups'; $string['hidelocks'] = 'Hide locks'; @@ -211,8 +211,8 @@ $string['settings'] = 'Settings'; $string['setweights'] = 'Set Weights'; $string['showallstudents'] = 'Show All Students'; $string['showcalculations'] = 'Show calculations'; -$string['showeyecons'] = 'Show eye-cons'; -$string['showgrandtotals'] = 'Show grand totals'; +$string['showeyecons'] = 'Show show/hide icons'; +$string['showgrandtotals'] = 'Show column totals'; $string['showgroups'] = 'Show groups'; $string['showlocks'] = 'Show locks'; $string['showfeedback'] = 'Show feedback'; diff --git a/lib/gradelib.php b/lib/gradelib.php index 73da1e8b1..7a2b18a0b 100644 --- a/lib/gradelib.php +++ b/lib/gradelib.php @@ -721,9 +721,7 @@ function grade_get_icons($element, $tree, $icons=null, $limit=true) { // Load language strings - $straddfeedback = get_string("addfeedback", 'grades'); $stredit = get_string("edit"); - $streditfeedback = get_string("editfeedback", 'grades'); $streditcalculation= get_string("editcalculation", 'grades'); $strfeedback = get_string("feedback"); $strmove = get_string("move"); @@ -757,7 +755,6 @@ function grade_get_icons($element, $tree, $icons=null, $limit=true) { $aggregationview = get_user_preferences('grade_report_aggregationview', $CFG->grade_report_aggregationview); $showeyecons = get_user_preferences('grade_report_showeyecons', $CFG->grade_report_showeyecons); $showlocks = get_user_preferences('grade_report_showlocks', $CFG->grade_report_showlocks); - $showfeedback = get_user_preferences('grade_report_showfeedback', $CFG->grade_report_showfeedback); $showcalculations = get_user_preferences('grade_report_showcalculations', $CFG->grade_report_showcalculations); // Prepare image strings @@ -768,32 +765,21 @@ function grade_get_icons($element, $tree, $icons=null, $limit=true) { $edit_item_icon = '' . ''
                     . $stredit.''. "\n"; + $overlib = ''; + if (!empty($object->feedback)) { + $overlib = 'onmouseover="return overlib(\''.$object->feedback.'\', CAPTION, \'' + . $strfeedback.'\');" onmouseout="return nd();"'; + } $edit_grade_icon = '' - . ''
-                     . $stredit.''. "\n"; + . '' . $stredit.''. "\n"; + $edit_calculation_icon = '' . ''
                            . $streditcalculation.''. "\n"; - $add_feedback_icon = 'courseid\">\n" - . ''.$straddfeedback.''. "\n"; - - $edit_feedback_icon = 'courseid\">\n" - . ''.$streditfeedback.''. "\n"; - - $view_feedback_icon = 'courseid\">\n" - . ''. "\n"; - // Prepare Hide/Show icon state $hide_show = 'hide'; if ($object->is_hidden()) { @@ -812,6 +798,7 @@ function grade_get_icons($element, $tree, $icons=null, $limit=true) { } // Print lock/unlock icon + $lock_unlock_icon = 'commonvars\">\n" . '