Skip to content

Commit

Permalink
MDL-38559 Clean-up the course completion settings code
Browse files Browse the repository at this point in the history
This patch does not alter the code, only some syntax fixes and
coding guidelines rules are applied. Strings are re-ordered
alphabetically with no change of their wording. PHP doc blocks
reconstructed using the Git log records.
  • Loading branch information
mudrd8mz committed May 9, 2013
1 parent 95190fd commit b3b13e9
Show file tree
Hide file tree
Showing 3 changed files with 200 additions and 228 deletions.
102 changes: 47 additions & 55 deletions course/completion.php
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
<?php

///////////////////////////////////////////////////////////////////////////
// //
// NOTICE OF COPYRIGHT //
// //
// Moodle - Modular Object-Oriented Dynamic Learning Environment //
// http://moodle.com //
// //
// Copyright (C) 1999 onwards Martin Dougiamas http://dougiamas.com //
// //
// This program 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 2 of the License, or //
// (at your option) any later version. //
// //
// This program 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: //
// //
// http://www.gnu.org/copyleft/gpl.html //
// //
///////////////////////////////////////////////////////////////////////////

// Edit course completion settings

require_once('../config.php');
require_once('lib.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/>.

/**
* Edit course completion settings
*
* @package core_completion
* @category completion
* @copyright 2009 Catalyst IT Ltd
* @author Aaron Barnes <aaronb@catalyst.net.nz>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

require_once(__DIR__.'/../config.php');
require_once($CFG->dirroot.'/course/lib.php');
require_once($CFG->libdir.'/completionlib.php');
require_once($CFG->dirroot.'/completion/criteria/completion_criteria_self.php');
require_once($CFG->dirroot.'/completion/criteria/completion_criteria_date.php');
Expand All @@ -37,15 +37,15 @@
require_once($CFG->dirroot.'/completion/criteria/completion_criteria_role.php');
require_once($CFG->dirroot.'/completion/criteria/completion_criteria_course.php');
require_once $CFG->libdir.'/gradelib.php';
require_once('completion_form.php');
require_once($CFG->dirroot.'/course/completion_form.php');

$id = required_param('id', PARAM_INT); // course id

/// basic access control checks
if ($id) { // editing course
// Perform some basic access control checks.
if ($id) {

if($id == SITEID){
// don't allow editing of 'site course' using this from
// Don't allow editing of 'site course' using this form.
print_error('cannoteditsiteform');
}

Expand All @@ -60,49 +60,42 @@
print_error('needcourseid');
}

/// Set up the page
$streditcompletionsettings = get_string("editcoursecompletionsettings", 'completion');
// Set up the page.
$PAGE->set_course($course);
$PAGE->set_url('/course/completion.php', array('id' => $course->id));
//$PAGE->navbar->add($streditcompletionsettings);
$PAGE->set_title($course->shortname);
$PAGE->set_heading($course->fullname);
$PAGE->set_pagelayout('standard');

/// first create the form
$form = new course_completion_form('completion.php?id='.$id, compact('course'));
// Create the settings form instance.
$form = new course_completion_form('completion.php?id='.$id, array('course' => $course));

// now override defaults if course already exists
if ($form->is_cancelled()){
redirect($CFG->wwwroot.'/course/view.php?id='.$course->id);

} else if ($data = $form->get_data()) {

$completion = new completion_info($course);

/// process criteria unlocking if requested
// Process criteria unlocking if requested.
if (!empty($data->settingsunlock)) {

$completion->delete_course_completion_data();

// Return to form (now unlocked)
redirect($CFG->wwwroot."/course/completion.php?id=$course->id");
// Return to form (now unlocked).
redirect($PAGE->url);
}

/// process data if submitted
// Delete old criteria
// Delete old criteria.
$completion->clear_criteria();

// Loop through each criteria type and run update_config
// Loop through each criteria type and run its update_config() method.
global $COMPLETION_CRITERIA_TYPES;
foreach ($COMPLETION_CRITERIA_TYPES as $type) {
$class = 'completion_criteria_'.$type;
$criterion = new $class();
$criterion->update_config($data);
}

// Handle aggregation methods
// Overall aggregation
// Handle overall aggregation.
$aggdata = array(
'course' => $data->id,
'criteriatype' => null
Expand All @@ -111,7 +104,7 @@
$aggregation->setMethod($data->overall_aggregation);
$aggregation->save();

// Activity aggregation
// Handle activity aggregation.
if (empty($data->activity_aggregation)) {
$data->activity_aggregation = 0;
}
Expand All @@ -121,7 +114,7 @@
$aggregation->setMethod($data->activity_aggregation);
$aggregation->save();

// Course aggregation
// Handle course aggregation.
if (empty($data->course_aggregation)) {
$data->course_aggregation = 0;
}
Expand All @@ -131,7 +124,7 @@
$aggregation->setMethod($data->course_aggregation);
$aggregation->save();

// Role aggregation
// Handle role aggregation.
if (empty($data->role_aggregation)) {
$data->role_aggregation = 0;
}
Expand All @@ -141,18 +134,17 @@
$aggregation->setMethod($data->role_aggregation);
$aggregation->save();

// Log changes.
add_to_log($course->id, 'course', 'completion updated', 'completion.php?id='.$course->id);

// Redirect to the course main page.
$url = new moodle_url('/course/view.php', array('id' => $course->id));
redirect($url);
}


/// Print the form


// Print the form.
echo $OUTPUT->header();
echo $OUTPUT->heading($streditcompletionsettings);
echo $OUTPUT->heading(get_string('editcoursecompletionsettings', 'core_completion'));

$form->display();

Expand Down
Loading

0 comments on commit b3b13e9

Please sign in to comment.