MDL-54055 gradingform_guide: Skip insertion of empty comments

We should not be adding empty entries for the frequently-used comments.
This commit is contained in:
Jun Pataleta 2016-05-05 09:49:16 +08:00
parent e4b5a062d8
commit 5d15185247
3 changed files with 61 additions and 1 deletions

View File

@ -0,0 +1,50 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* This file keeps track of upgrades to the marking guide grading method.
*
* @package gradingform_guide
* @category upgrade
* @copyright 2016 Jun Pataleta
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
/**
* Marking guide grading method upgrade task.
*
* @param int $oldversion The version we are upgrading form.
* @return bool Returns true on success.
* @throws coding_exception
* @throws downgrade_exception
* @throws upgrade_exception
*/
function xmldb_gradingform_guide_upgrade($oldversion) {
global $DB;
if ($oldversion < 2016051100) {
// Clean up empty string or null marking guide comments.
$sql = $DB->sql_isempty('gradingform_guide_comments', 'description', true, true);
$sql .= " OR description IS NULL ";
$DB->delete_records_select('gradingform_guide_comments', $sql);
// Main savepoint reached.
upgrade_plugin_savepoint(true, 2016051100, 'gradingform', 'guide');
}
return true;
}

View File

@ -213,6 +213,16 @@ class gradingform_guide_controller extends gradingform_controller {
$data = array('definitionid' => $this->definition->id, 'descriptionformat' => FORMAT_MOODLE);
foreach ($commentfields as $key) {
if (array_key_exists($key, $comment)) {
// Check if key is the comment's description.
if ($key === 'description') {
// Get a trimmed value for the comment description.
$description = trim($comment[$key]);
// Check if the comment description is empty.
if (empty($description)) {
// Continue to the next comment object if the description is empty.
continue 2;
}
}
$data[$key] = $comment[$key];
}
}

View File

@ -25,6 +25,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->component = 'gradingform_guide';
$plugin->version = 2015111600;
$plugin->version = 2016051100;
$plugin->requires = 2015111000;
$plugin->maturity = MATURITY_STABLE;