Skip to content

Commit

Permalink
Merge branch 'MDL-38315-m23' of git://github.com/sammarshallou/moodle…
Browse files Browse the repository at this point in the history
… into MOODLE_23_STABLE
  • Loading branch information
Damyon Wiese committed May 6, 2013
2 parents 3565867 + 276d113 commit fc282e4
Show file tree
Hide file tree
Showing 7 changed files with 50 additions and 41 deletions.
2 changes: 1 addition & 1 deletion course/modedit.php
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@
$cm->groupmembersonly = $fromform->groupmembersonly;

$completion = new completion_info($course);
if ($completion->is_enabled()) {
if ($completion->is_enabled() && !empty($fromform->completionunlocked)) {
// Update completion settings
$cm->completion = $fromform->completion;
$cm->completiongradeitemnumber = $fromform->completiongradeitemnumber;
Expand Down
7 changes: 5 additions & 2 deletions course/moodleform_mod.php
Original file line number Diff line number Diff line change
Expand Up @@ -303,8 +303,11 @@ function validation($data, $files) {
}

// Completion: Don't let them choose automatic completion without turning
// on some conditions
if (array_key_exists('completion', $data) && $data['completion']==COMPLETION_TRACKING_AUTOMATIC) {
// on some conditions. Ignore this check when completion settings are
// locked, as the options are then disabled.
if (array_key_exists('completion', $data) &&
$data['completion'] == COMPLETION_TRACKING_AUTOMATIC &&
!empty($data['completionunlocked'])) {
if (empty($data['completionview']) && empty($data['completionusegrade']) &&
!$this->completion_rule_enabled($data)) {
$errors['completion'] = get_string('badautocompletion', 'completion');
Expand Down
6 changes: 4 additions & 2 deletions mod/choice/mod_form.php
Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,10 @@ function get_data() {
return false;
}
// Set up completion section even if checkbox is not ticked
if (empty($data->completionsection)) {
$data->completionsection=0;
if (!empty($data->completionunlocked)) {
if (empty($data->completionsubmit)) {
$data->completionsubmit = 0;
}
}
return $data;
}
Expand Down
15 changes: 7 additions & 8 deletions mod/feedback/mod_form.php
Original file line number Diff line number Diff line change
Expand Up @@ -203,14 +203,13 @@ public function get_data() {
$data->page_after_submitformat = $data->page_after_submit_editor['format'];
$data->page_after_submit = $data->page_after_submit_editor['text'];

// Turn off completion settings if the checkboxes aren't ticked
$autocompletion = !empty($data->completion) AND
$data->completion==COMPLETION_TRACKING_AUTOMATIC;
if (empty($data->completion) || !$autocompletion) {
$data->completionsubmit=0;
}
if (empty($data->completionsubmit)) {
$data->completionsubmit=0;
if (!empty($data->completionunlocked)) {
// Turn off completion settings if the checkboxes aren't ticked
$autocompletion = !empty($data->completion) &&
$data->completion == COMPLETION_TRACKING_AUTOMATIC;
if (!$autocompletion || empty($data->completionsubmit)) {
$data->completionsubmit=0;
}
}
}

Expand Down
20 changes: 11 additions & 9 deletions mod/forum/mod_form.php
Original file line number Diff line number Diff line change
Expand Up @@ -235,15 +235,17 @@ function get_data() {
return false;
}
// Turn off completion settings if the checkboxes aren't ticked
$autocompletion = !empty($data->completion) && $data->completion==COMPLETION_TRACKING_AUTOMATIC;
if (empty($data->completiondiscussionsenabled) || !$autocompletion) {
$data->completiondiscussions = 0;
}
if (empty($data->completionrepliesenabled) || !$autocompletion) {
$data->completionreplies = 0;
}
if (empty($data->completionpostsenabled) || !$autocompletion) {
$data->completionposts = 0;
if (!empty($data->completionunlocked)) {
$autocompletion = !empty($data->completion) && $data->completion==COMPLETION_TRACKING_AUTOMATIC;
if (empty($data->completiondiscussionsenabled) || !$autocompletion) {
$data->completiondiscussions = 0;
}
if (empty($data->completionrepliesenabled) || !$autocompletion) {
$data->completionreplies = 0;
}
if (empty($data->completionpostsenabled) || !$autocompletion) {
$data->completionposts = 0;
}
}
return $data;
}
Expand Down
10 changes: 6 additions & 4 deletions mod/glossary/mod_form.php
Original file line number Diff line number Diff line change
Expand Up @@ -196,10 +196,12 @@ function get_data() {
if (!$data) {
return false;
}
// Turn off completion settings if the checkboxes aren't ticked
$autocompletion = !empty($data->completion) && $data->completion==COMPLETION_TRACKING_AUTOMATIC;
if (empty($data->completionentriesenabled) || !$autocompletion) {
$data->completionentries = 0;
if (!empty($data->completionunlocked)) {
// Turn off completion settings if the checkboxes aren't ticked
$autocompletion = !empty($data->completion) && $data->completion==COMPLETION_TRACKING_AUTOMATIC;
if (empty($data->completionentriesenabled) || !$autocompletion) {
$data->completionentries = 0;
}
}
return $data;
}
Expand Down
31 changes: 16 additions & 15 deletions mod/scorm/mod_form.php
Original file line number Diff line number Diff line change
Expand Up @@ -499,24 +499,25 @@ function get_data($slashed = true) {
return false;
}

// Turn off completion settings if the checkboxes aren't ticked
$autocompletion = isset($data->completion) && $data->completion == COMPLETION_TRACKING_AUTOMATIC;
if (!empty($data->completionunlocked)) {
// Turn off completion settings if the checkboxes aren't ticked
$autocompletion = isset($data->completion) && $data->completion == COMPLETION_TRACKING_AUTOMATIC;

if (isset($data->completionstatusrequired) &&
is_array($data->completionstatusrequired) && $autocompletion) {
$total = 0;
foreach (array_keys($data->completionstatusrequired) as $state) {
$total |= $state;
}

if (isset($data->completionstatusrequired) && is_array($data->completionstatusrequired)) {
$total = 0;
foreach (array_keys($data->completionstatusrequired) as $state) {
$total |= $state;
$data->completionstatusrequired = $total;
} else {
$data->completionstatusrequired = null;
}

$data->completionstatusrequired = $total;
}

if (!$autocompletion) {
$data->completionstatusrequired = null;
}

if (!empty($data->completionscoredisabled) || !$autocompletion) {
$data->completionscorerequired = null;
if (!empty($data->completionscoredisabled) || !$autocompletion) {
$data->completionscorerequired = null;
}
}

return $data;
Expand Down

0 comments on commit fc282e4

Please sign in to comment.