Skip to content

Commit

Permalink
MDL-18966 mod_lesson: Save attempts of practice lessons
Browse files Browse the repository at this point in the history
  • Loading branch information
Jean-Michel Vedrine committed Mar 30, 2015
1 parent 20d3883 commit c7d1a37
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 16 deletions.
10 changes: 10 additions & 0 deletions mod/lesson/db/upgrade.php
Expand Up @@ -232,5 +232,15 @@ function xmldb_lesson_upgrade($oldversion) {
upgrade_mod_savepoint(true, 2015031500, 'lesson');
}

if ($oldversion < 2015032600) {

// Change practice lesson to allow multiple attempts
// so that behaviour is not changed by MDL-18966.
$DB->set_field('lesson', 'retake', 1, array('practice' => 1));

// Lesson savepoint reached.
upgrade_mod_savepoint(true, 2015032600, 'lesson');
}

return true;
}
2 changes: 1 addition & 1 deletion mod/lesson/lib.php
Expand Up @@ -389,7 +389,7 @@ function lesson_update_grades($lesson, $userid=0, $nullifnone=true) {
global $CFG, $DB;
require_once($CFG->libdir.'/gradelib.php');

if ($lesson->grade == 0) {
if ($lesson->grade == 0 || $lesson->practice) {
lesson_grade_item_update($lesson);

} else if ($grades = lesson_get_user_grades($lesson, $userid)) {
Expand Down
2 changes: 1 addition & 1 deletion mod/lesson/version.php
Expand Up @@ -24,7 +24,7 @@

defined('MOODLE_INTERNAL') || die();

$plugin->version = 2015032401; // The current module version (Date: YYYYMMDDXX)
$plugin->version = 2015032600; // The current module version (Date: YYYYMMDDXX)
$plugin->requires = 2014110400; // Requires this Moodle version
$plugin->component = 'mod_lesson'; // Full name of the plugin (used for diagnostics)
$plugin->cron = 0;
23 changes: 9 additions & 14 deletions mod/lesson/view.php
Expand Up @@ -516,19 +516,16 @@
$grade->userid = $USER->id;
$grade->grade = $gradeinfo->grade;
$grade->completed = time();
if (!$lesson->practice) {
if (isset($USER->modattempts[$lesson->id])) { // if reviewing, make sure update old grade record
if (!$grades = $DB->get_records("lesson_grades", array("lessonid" => $lesson->id, "userid" => $USER->id), "completed DESC", '*', 0, 1)) {
print_error('cannotfindgrade', 'lesson');
}
$oldgrade = array_shift($grades);
$grade->id = $oldgrade->id;
$DB->update_record("lesson_grades", $grade);
} else {
$newgradeid = $DB->insert_record("lesson_grades", $grade);
if (isset($USER->modattempts[$lesson->id])) { // If reviewing, make sure update old grade record.
if (!$grades = $DB->get_records("lesson_grades",
array("lessonid" => $lesson->id, "userid" => $USER->id), "completed DESC", '*', 0, 1)) {
print_error('cannotfindgrade', 'lesson');
}
$oldgrade = array_shift($grades);
$grade->id = $oldgrade->id;
$DB->update_record("lesson_grades", $grade);
} else {
$DB->delete_records("lesson_attempts", array("lessonid" => $lesson->id, "userid" => $USER->id, "retry" => $ntries));
$newgradeid = $DB->insert_record("lesson_grades", $grade);
}
} else {
if ($lesson->timelimit) {
Expand All @@ -538,9 +535,7 @@
$grade->userid = $USER->id;
$grade->grade = 0;
$grade->completed = time();
if (!$lesson->practice) {
$newgradeid = $DB->insert_record("lesson_grades", $grade);
}
$newgradeid = $DB->insert_record("lesson_grades", $grade);
$lessoncontent .= $lessonoutput->paragraph(get_string("eolstudentoutoftimenoanswers", "lesson"));
}
} else {
Expand Down

0 comments on commit c7d1a37

Please sign in to comment.