Merged MDL-29108 Advanced grading
authorSam Hemelryk <sam@moodle.com>
Mon, 14 Nov 2011 09:01:05 +0000 (22:01 +1300)
committerSam Hemelryk <sam@moodle.com>
Mon, 14 Nov 2011 09:01:05 +0000 (22:01 +1300)
19 files changed:
1  2 
backup/moodle2/backup_plan_builder.class.php
backup/moodle2/backup_stepslib.php
backup/moodle2/restore_plan_builder.class.php
backup/moodle2/restore_stepslib.php
grade/report/grader/lib.php
grade/report/grader/preferences_form.php
grade/report/grader/settings.php
grade/report/grader/styles.css
lang/en/grades.php
lang/en/plugin.php
lang/en/role.php
lib/accesslib.php
lib/db/access.php
lib/db/upgrade.php
lib/moodlelib.php
lib/navigationlib.php
lib/pluginlib.php
mod/assignment/lib.php
version.php

@@@ -34,9 -34,9 +34,10 @@@ require_once($CFG->dirroot . '/backup/m
  require_once($CFG->dirroot . '/backup/moodle2/backup_xml_transformer.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/backup_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/backup_qtype_plugin.class.php');
+ require_once($CFG->dirroot . '/backup/moodle2/backup_gradingform_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/backup_format_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/backup_theme_plugin.class.php');
 +require_once($CFG->dirroot . '/backup/moodle2/backup_report_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/backup_coursereport_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/backup_plagiarism_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/backup_subplugin.class.php');
Simple merge
@@@ -35,16 -35,16 +35,18 @@@ require_once($CFG->dirroot . '/backup/m
  require_once($CFG->dirroot . '/backup/moodle2/restore_qtype_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/restore_format_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/restore_theme_plugin.class.php');
 +require_once($CFG->dirroot . '/backup/moodle2/restore_report_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/restore_coursereport_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/restore_plagiarism_plugin.class.php');
+ require_once($CFG->dirroot . '/backup/moodle2/restore_gradingform_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/backup_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/backup_qtype_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/backup_format_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/backup_theme_plugin.class.php');
 +require_once($CFG->dirroot . '/backup/moodle2/backup_report_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/backup_coursereport_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/backup_plagiarism_plugin.class.php');
+ require_once($CFG->dirroot . '/backup/moodle2/backup_gradingform_plugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/restore_subplugin.class.php');
  require_once($CFG->dirroot . '/backup/moodle2/restore_settingslib.php');
  require_once($CFG->dirroot . '/backup/moodle2/restore_stepslib.php');
Simple merge
Simple merge
@@@ -109,8 -109,10 +109,9 @@@ class grader_report_preferences_form ex
              $preferences['prefgeneral']['enableajax'] = $checkbox_default;
  
              $preferences['prefshow']['showuserimage'] = $checkbox_default;
 -            $preferences['prefshow']['showuseridnumber'] = $checkbox_default;
              $preferences['prefshow']['showactivityicons'] = $checkbox_default;
              $preferences['prefshow']['showranges'] = $checkbox_default;
+             $preferences['prefshow']['showanalysisicon'] = $checkbox_default;
  
              if ($canviewhidden) {
                  $preferences['prefrows']['shownumberofgrades'] = $checkbox_default;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
      }
  
      if ($oldversion < 2011110200.01) {
 -        upgrade_main_savepoint(true, 2011110200.01);
 +        // Rename 'extrauserselectorfields' to 'showuseridentity' as it is
 +        // being used more widely
 +        if (isset($CFG->extrauserselectorfields)) {
 +            set_config('showuseridentity', $CFG->extrauserselectorfields);
 +            unset_config('extrauserselectorfields');
 +        }
 +        unset_config('grade_report_showuseridnumber');
 +        upgrade_main_savepoint(true, 2011110200.01);
 +    }
 +
++    if ($oldversion < 2011110200.02) {
+         // create new core tables for the advanced grading methods framework
+         // grading_areas table
+         $table = new xmldb_table('grading_areas');
+         $table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
+         $table->add_field('contextid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null);
+         $table->add_field('component', XMLDB_TYPE_CHAR, '100', null, XMLDB_NOTNULL, null, null);
+         $table->add_field('areaname', XMLDB_TYPE_CHAR, '100', null, XMLDB_NOTNULL, null, null);
+         $table->add_field('activemethod', XMLDB_TYPE_CHAR, '100', null, null, null, null);
+         $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
+         $table->add_key('uq_gradable_area', XMLDB_KEY_UNIQUE, array('contextid', 'component', 'areaname'));
+         $table->add_key('fk_context', XMLDB_KEY_FOREIGN, array('contextid'), 'context', array('id'));
+         if (!$dbman->table_exists($table)) {
+             $dbman->create_table($table);
+         }
+         // grading_definitions table
+         $table = new xmldb_table('grading_definitions');
+         $table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
+         $table->add_field('areaid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null);
+         $table->add_field('method', XMLDB_TYPE_CHAR, '100', null, XMLDB_NOTNULL, null, null);
+         $table->add_field('name', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null);
+         $table->add_field('description', XMLDB_TYPE_TEXT, 'big', null, null, null, null);
+         $table->add_field('descriptionformat', XMLDB_TYPE_INTEGER, '2', XMLDB_UNSIGNED, null, null, null);
+         $table->add_field('status', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0');
+         $table->add_field('copiedfromid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null);
+         $table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null);
+         $table->add_field('usercreated', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null);
+         $table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null);
+         $table->add_field('usermodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null);
+         $table->add_field('timecopied', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, '0');
+         $table->add_field('options', XMLDB_TYPE_TEXT, 'big', null, null, null, null);
+         $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
+         $table->add_key('fk_areaid', XMLDB_KEY_FOREIGN, array('areaid'), 'grading_areas', array('id'));
+         $table->add_key('fk_usermodified', XMLDB_KEY_FOREIGN, array('usermodified'), 'user', array('id'));
+         $table->add_key('uq_area_method', XMLDB_KEY_UNIQUE, array('areaid', 'method'));
+         $table->add_key('fk_usercreated', XMLDB_KEY_FOREIGN, array('usercreated'), 'user', array('id'));
+         if (!$dbman->table_exists($table)) {
+             $dbman->create_table($table);
+         }
+         // grading_instances table
+         $table = new xmldb_table('grading_instances');
+         $table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
+         $table->add_field('definitionid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null);
+         $table->add_field('raterid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null);
+         $table->add_field('itemid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null);
+         $table->add_field('rawgrade', XMLDB_TYPE_NUMBER, '10, 5', XMLDB_UNSIGNED, null, null, null);
+         $table->add_field('status', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, '0');
+         $table->add_field('feedback', XMLDB_TYPE_TEXT, 'big', null, null, null, null);
+         $table->add_field('feedbackformat', XMLDB_TYPE_INTEGER, '2', XMLDB_UNSIGNED, null, null, null);
+         $table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null);
+         $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
+         $table->add_key('fk_definitionid', XMLDB_KEY_FOREIGN, array('definitionid'), 'grading_definitions', array('id'));
+         $table->add_key('fk_raterid', XMLDB_KEY_FOREIGN, array('raterid'), 'user', array('id'));
+         if (!$dbman->table_exists($table)) {
+             $dbman->create_table($table);
+         }
++        upgrade_main_savepoint(true, 2011110200.02);
+     }
  
      return true;
  }
Simple merge
Simple merge
Simple merge
@@@ -1362,6 -1401,9 +1417,8 @@@ class assignment_base 
                              $locked_overridden = 'overridden';
                          }
  
 -                    /// Calculate user status
 -                        $auser->status = ($auser->timemarked > 0) && ($auser->timemarked >= $auser->timemodified);
+                         // TODO add here code if advanced grading grade must be reviewed => $auser->status=0
++
                          $picture = $OUTPUT->user_picture($auser);
  
                          if (empty($auser->submissionid)) {
diff --cc version.php
@@@ -30,7 -30,8 +30,7 @@@
  defined('MOODLE_INTERNAL') || die();
  
  
 -
--$version  = 2011110200.01;              // YYYYMMDD      = weekly release date of this DEV branch
++$version  = 2011110200.02;              // YYYYMMDD      = weekly release date of this DEV branch
                                          //         RR    = release increments - 00 in DEV branches
                                          //           .XX = incremental changes