diff --git a/mod/workshop/db/install.xml b/mod/workshop/db/install.xml index d3ffcffcb7f..d9e72cf0e73 100644 --- a/mod/workshop/db/install.xml +++ b/mod/workshop/db/install.xml @@ -1,5 +1,5 @@ - @@ -109,7 +109,7 @@ - + diff --git a/mod/workshop/db/upgrade.php b/mod/workshop/db/upgrade.php index 0ae1705d925..a41cfe36bb4 100644 --- a/mod/workshop/db/upgrade.php +++ b/mod/workshop/db/upgrade.php @@ -98,5 +98,18 @@ function xmldb_workshop_upgrade($oldversion) { // Automatically generated Moodle v3.10.0 release upgrade line. // Put any upgrade step following this. + if ($oldversion < 2020110901) { + + // Changing nullability of field grade on table workshop_grades to null. + $table = new xmldb_table('workshop_grades'); + $field = new xmldb_field('grade', XMLDB_TYPE_NUMBER, '10, 5', null, null, null, null, 'dimensionid'); + + // Launch change of nullability for field grade. + $dbman->change_field_notnull($table, $field); + + // Main savepoint reached. + upgrade_mod_savepoint(true, 2020110901, 'workshop'); + } + return true; } diff --git a/mod/workshop/form/accumulative/assessment_form.php b/mod/workshop/form/accumulative/assessment_form.php index 95f6132f6d3..12ae8b4890e 100644 --- a/mod/workshop/form/accumulative/assessment_form.php +++ b/mod/workshop/form/accumulative/assessment_form.php @@ -76,11 +76,13 @@ class workshop_accumulative_assessment_form extends workshop_assessment_form { // grade for this aspect $label = get_string('dimensiongradefor', 'workshopform_accumulative', $dimtitle); - $options = make_grades_menu($fields->{'grade__idx_' . $i}); - $options = array('-1' => get_string('choosedots')) + $options; - $mform->addElement('select', 'grade__idx_' . $i, $label, $options); - $mform->addRule(array('grade__idx_' . $i, 'minusone') , get_string('mustchoosegrade', 'workshopform_accumulative'), 'compare', 'gt'); - + if ($fields->{'grade__idx_' . $i}) { + $options = make_grades_menu($fields->{'grade__idx_' . $i}); + $options = array('-1' => get_string('choosedots')) + $options; + $mform->addElement('select', 'grade__idx_' . $i, $label, $options); + $mform->addRule(array('grade__idx_' . $i, 'minusone'), + get_string('mustchoosegrade', 'workshopform_accumulative'), 'compare', 'gt'); + } // comment $label = get_string('dimensioncommentfor', 'workshopform_accumulative', $dimtitle); //$mform->addElement('editor', 'peercomment__idx_' . $i, $label, null, array('maxfiles' => 0)); diff --git a/mod/workshop/form/accumulative/lib.php b/mod/workshop/form/accumulative/lib.php index 87a5f99c30c..bac0ec60250 100644 --- a/mod/workshop/form/accumulative/lib.php +++ b/mod/workshop/form/accumulative/lib.php @@ -269,7 +269,9 @@ class workshop_accumulative_strategy implements workshop_strategy { $grade->assessmentid = $assessment->id; $grade->strategy = 'accumulative'; $grade->dimensionid = $data->{'dimensionid__idx_' . $i}; - $grade->grade = $data->{'grade__idx_' . $i}; + if (isset($data->{'grade__idx_' . $i})) { + $grade->grade = $data->{'grade__idx_' . $i}; + } $grade->peercomment = $data->{'peercomment__idx_' . $i}; $grade->peercommentformat = FORMAT_MOODLE; if (empty($grade->id)) { diff --git a/mod/workshop/version.php b/mod/workshop/version.php index 02b9c4851a3..45f4acaad65 100644 --- a/mod/workshop/version.php +++ b/mod/workshop/version.php @@ -24,6 +24,6 @@ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2020110900; // The current module version (YYYYMMDDXX) +$plugin->version = 2020110901; // The current module version (YYYYMMDDXX). $plugin->requires = 2020110300; // Requires this Moodle version. $plugin->component = 'mod_workshop';