mirror of
https://github.com/moodle/moodle.git
synced 2025-01-18 05:58:34 +01:00
Merge branch 'MDL-38559-completion-ui' of git://github.com/mudrd8mz/moodle
This commit is contained in:
commit
7942df199b
@ -59,7 +59,8 @@ class completion_criteria_date extends completion_criteria {
|
||||
*/
|
||||
public function config_form_display(&$mform, $data = null) {
|
||||
$mform->addElement('checkbox', 'criteria_date', get_string('enable'));
|
||||
$mform->addElement('date_selector', 'criteria_date_value', get_string('afterspecifieddate', 'completion'));
|
||||
$mform->addElement('date_selector', 'criteria_date_value', get_string('completionondatevalue', 'core_completion'));
|
||||
$mform->disabledIf('criteria_date_value', 'criteria_date');
|
||||
|
||||
// If instance of criteria exists
|
||||
if ($this->id) {
|
||||
|
@ -61,12 +61,32 @@ class completion_criteria_duration extends completion_criteria {
|
||||
|
||||
$mform->addElement('checkbox', 'criteria_duration', get_string('enable'));
|
||||
|
||||
$thresholdmenu=array();
|
||||
for ($i=1; $i<=30; $i++) {
|
||||
$seconds = $i * 86400;
|
||||
$thresholdmenu[$seconds] = get_string('numdays', '', $i);
|
||||
// Populate the duration length drop down.
|
||||
$thresholdmenu = array(
|
||||
// We have strings for 1 - 6 days in the core.
|
||||
86400 => get_string('secondstotime86400', 'core'),
|
||||
172800 => get_string('secondstotime172800', 'core'),
|
||||
259200 => get_string('secondstotime259200', 'core'),
|
||||
345600 => get_string('secondstotime345600', 'core'),
|
||||
432000 => get_string('secondstotime432000', 'core'),
|
||||
518400 => get_string('secondstotime518400', 'core'),
|
||||
518400 => get_string('secondstotime518400', 'core'),
|
||||
);
|
||||
// Append strings for 7 - 30 days (step by 1 day).
|
||||
for ($i = 7; $i <= 30; $i++) {
|
||||
$seconds = $i * DAYSECS;
|
||||
$thresholdmenu[$seconds] = get_string('numdays', 'core', $i);
|
||||
}
|
||||
$mform->addElement('select', 'criteria_duration_days', get_string('daysafterenrolment', 'completion'), $thresholdmenu);
|
||||
// Append strings for 40 - 180 days (step by 10 days).
|
||||
for ($i = 40; $i <= 180; $i = $i + 10) {
|
||||
$seconds = $i * DAYSECS;
|
||||
$thresholdmenu[$seconds] = get_string('numdays', 'core', $i);
|
||||
}
|
||||
// Append string for 1 year.
|
||||
$thresholdmenu[365 * DAYSECS] = get_string('numdays', 'core', 365);
|
||||
|
||||
$mform->addElement('select', 'criteria_duration_days', get_string('enrolmentdurationlength', 'core_completion'), $thresholdmenu);
|
||||
$mform->disabledIf('criteria_duration_days', 'criteria_duration');
|
||||
|
||||
if ($this->id) {
|
||||
$mform->setDefault('criteria_duration', 1);
|
||||
|
@ -63,9 +63,9 @@ class completion_criteria_grade extends completion_criteria {
|
||||
public function config_form_display(&$mform, $data = null) {
|
||||
$mform->addElement('checkbox', 'criteria_grade', get_string('enable'));
|
||||
$mform->addElement('text', 'criteria_grade_value', get_string('graderequired', 'completion'));
|
||||
$mform->disabledIf('criteria_grade_value', 'criteria_grade');
|
||||
$mform->setType('criteria_grade_value', PARAM_RAW); // Uses unformat_float.
|
||||
$mform->setDefault('criteria_grade_value', format_float($data));
|
||||
$mform->addElement('static', 'criteria_grade_value_note', '', get_string('criteriagradenote', 'completion'));
|
||||
|
||||
if ($this->id) {
|
||||
$mform->setDefault('criteria_grade', 1);
|
||||
@ -80,12 +80,14 @@ class completion_criteria_grade extends completion_criteria {
|
||||
*/
|
||||
public function update_config(&$data) {
|
||||
|
||||
$formatedgrade = unformat_float($data->criteria_grade_value);
|
||||
// TODO validation
|
||||
if (!empty($formatedgrade) && is_numeric($formatedgrade)) {
|
||||
$this->course = $data->id;
|
||||
$this->gradepass = $formatedgrade;
|
||||
$this->insert();
|
||||
if (!empty($data->criteria_grade)) {
|
||||
$formatedgrade = unformat_float($data->criteria_grade_value);
|
||||
// TODO validation
|
||||
if (!empty($formatedgrade) && is_numeric($formatedgrade)) {
|
||||
$this->course = $data->id;
|
||||
$this->gradepass = $formatedgrade;
|
||||
$this->insert();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -58,7 +58,7 @@ class completion_criteria_unenrol extends completion_criteria {
|
||||
* @param stdClass $data Form data
|
||||
*/
|
||||
public function config_form_display(&$mform, $data = null) {
|
||||
$mform->addElement('checkbox', 'criteria_unenrol', get_string('completiononunenrolment','completion'));
|
||||
$mform->addElement('checkbox', 'criteria_unenrol', get_string('enable'));
|
||||
|
||||
if ($this->id) {
|
||||
$mform->setDefault('criteria_unenrol', 1);
|
||||
|
@ -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 //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// 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
|
||||
/**
|
||||
* 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('../config.php');
|
||||
require_once('lib.php');
|
||||
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');
|
||||
@ -37,15 +37,15 @@ require_once($CFG->dirroot.'/completion/criteria/completion_criteria_grade.php')
|
||||
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');
|
||||
}
|
||||
|
||||
@ -60,40 +60,34 @@ if ($id) { // editing course
|
||||
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;
|
||||
@ -101,8 +95,7 @@ if ($form->is_cancelled()){
|
||||
$criterion->update_config($data);
|
||||
}
|
||||
|
||||
// Handle aggregation methods
|
||||
// Overall aggregation
|
||||
// Handle overall aggregation.
|
||||
$aggdata = array(
|
||||
'course' => $data->id,
|
||||
'criteriatype' => null
|
||||
@ -111,7 +104,7 @@ if ($form->is_cancelled()){
|
||||
$aggregation->setMethod($data->overall_aggregation);
|
||||
$aggregation->save();
|
||||
|
||||
// Activity aggregation
|
||||
// Handle activity aggregation.
|
||||
if (empty($data->activity_aggregation)) {
|
||||
$data->activity_aggregation = 0;
|
||||
}
|
||||
@ -121,7 +114,7 @@ if ($form->is_cancelled()){
|
||||
$aggregation->setMethod($data->activity_aggregation);
|
||||
$aggregation->save();
|
||||
|
||||
// Course aggregation
|
||||
// Handle course aggregation.
|
||||
if (empty($data->course_aggregation)) {
|
||||
$data->course_aggregation = 0;
|
||||
}
|
||||
@ -131,7 +124,7 @@ if ($form->is_cancelled()){
|
||||
$aggregation->setMethod($data->course_aggregation);
|
||||
$aggregation->save();
|
||||
|
||||
// Role aggregation
|
||||
// Handle role aggregation.
|
||||
if (empty($data->role_aggregation)) {
|
||||
$data->role_aggregation = 0;
|
||||
}
|
||||
@ -141,18 +134,17 @@ if ($form->is_cancelled()){
|
||||
$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();
|
||||
|
||||
|
@ -1,186 +1,227 @@
|
||||
<?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 //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// 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/>.
|
||||
|
||||
if (!defined('MOODLE_INTERNAL')) {
|
||||
die('Direct access to this script is forbidden.'); /// It must be included from a Moodle page
|
||||
}
|
||||
/**
|
||||
* Edit course completion settings - the form definition.
|
||||
*
|
||||
* @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
|
||||
*/
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
require_once($CFG->libdir.'/formslib.php');
|
||||
require_once($CFG->libdir.'/completionlib.php');
|
||||
|
||||
/**
|
||||
* Defines the course completion settings form.
|
||||
*/
|
||||
class course_completion_form extends moodleform {
|
||||
|
||||
function definition() {
|
||||
global $USER, $CFG, $DB, $js_enabled;
|
||||
/**
|
||||
* Defines the form fields.
|
||||
*/
|
||||
public function definition() {
|
||||
global $USER, $CFG, $DB;
|
||||
|
||||
$courseconfig = get_config('moodlecourse');
|
||||
$mform =& $this->_form;
|
||||
|
||||
$course = $this->_customdata['course'];
|
||||
$mform = $this->_form;
|
||||
$course = $this->_customdata['course'];
|
||||
$completion = new completion_info($course);
|
||||
|
||||
$params = array(
|
||||
'course' => $course->id
|
||||
);
|
||||
|
||||
|
||||
/// form definition
|
||||
//--------------------------------------------------------------------------------
|
||||
|
||||
// Check if there is existing criteria completions
|
||||
// Check if there are existing criteria completions.
|
||||
if ($completion->is_course_locked()) {
|
||||
$mform->addElement('header', 'completionsettingslocked', get_string('completionsettingslocked', 'completion'));
|
||||
$mform->addElement('static', '', '', get_string('err_settingslocked', 'completion'));
|
||||
$mform->addElement('submit', 'settingsunlock', get_string('unlockcompletiondelete', 'completion'));
|
||||
}
|
||||
|
||||
// Get array of all available aggregation methods
|
||||
// Get array of all available aggregation methods.
|
||||
$aggregation_methods = $completion->get_aggregation_methods();
|
||||
|
||||
// Overall criteria aggregation
|
||||
$mform->addElement('header', 'overallcriteria', get_string('overallcriteriaaggregation', 'completion'));
|
||||
$mform->addElement('select', 'overall_aggregation', get_string('aggregationmethod', 'completion'), $aggregation_methods);
|
||||
// Overall criteria aggregation.
|
||||
$mform->addElement('header', 'overallcriteria', get_string('general', 'core_form'));
|
||||
// Map aggregation methods to context-sensitive human readable dropdown menu.
|
||||
$overallaggregationmenu = array();
|
||||
foreach ($aggregation_methods as $methodcode => $methodname) {
|
||||
if ($methodcode === COMPLETION_AGGREGATION_ALL) {
|
||||
$overallaggregationmenu[COMPLETION_AGGREGATION_ALL] = get_string('overallaggregation_all', 'core_completion');
|
||||
} else if ($methodcode === COMPLETION_AGGREGATION_ANY) {
|
||||
$overallaggregationmenu[COMPLETION_AGGREGATION_ANY] = get_string('overallaggregation_any', 'core_completion');
|
||||
} else {
|
||||
$overallaggregationmenu[$methodcode] = $methodname;
|
||||
}
|
||||
}
|
||||
$mform->addElement('select', 'overall_aggregation', get_string('overallaggregation', 'core_completion'), $overallaggregationmenu);
|
||||
$mform->setDefault('overall_aggregation', $completion->get_aggregation_method());
|
||||
|
||||
// Course prerequisite completion criteria
|
||||
$mform->addElement('header', 'courseprerequisites', get_string('completiondependencies', 'completion'));
|
||||
|
||||
// Get applicable courses
|
||||
$courses = $DB->get_records_sql(
|
||||
"
|
||||
SELECT DISTINCT
|
||||
c.id,
|
||||
c.category,
|
||||
c.fullname,
|
||||
cc.id AS selected
|
||||
FROM
|
||||
{course} c
|
||||
LEFT JOIN
|
||||
{course_completion_criteria} cc
|
||||
ON cc.courseinstance = c.id
|
||||
AND cc.course = {$course->id}
|
||||
INNER JOIN
|
||||
{course_completion_criteria} ccc
|
||||
ON ccc.course = c.id
|
||||
WHERE
|
||||
c.enablecompletion = ".COMPLETION_ENABLED."
|
||||
AND c.id <> {$course->id}
|
||||
"
|
||||
);
|
||||
|
||||
if (!empty($courses)) {
|
||||
if (count($courses) > 1) {
|
||||
$mform->addElement('select', 'course_aggregation', get_string('aggregationmethod', 'completion'), $aggregation_methods);
|
||||
$mform->setDefault('course_aggregation', $completion->get_aggregation_method(COMPLETION_CRITERIA_TYPE_COURSE));
|
||||
}
|
||||
|
||||
// Get category list
|
||||
require_once($CFG->libdir. '/coursecatlib.php');
|
||||
$list = coursecat::make_categories_list();
|
||||
|
||||
// Get course list for select box
|
||||
$selectbox = array();
|
||||
$selected = array();
|
||||
foreach ($courses as $c) {
|
||||
$selectbox[$c->id] = $list[$c->category] . ' / ' . format_string($c->fullname, true, array('context' => context_course::instance($c->id)));
|
||||
|
||||
// If already selected
|
||||
if ($c->selected) {
|
||||
$selected[] = $c->id;
|
||||
}
|
||||
}
|
||||
|
||||
// Show multiselect box
|
||||
$mform->addElement('select', 'criteria_course', get_string('coursesavailable', 'completion'), $selectbox, array('multiple' => 'multiple', 'size' => 6));
|
||||
|
||||
// Select current criteria
|
||||
$mform->setDefault('criteria_course', $selected);
|
||||
|
||||
// Explain list
|
||||
$mform->addElement('static', 'criteria_courses_explaination', '', get_string('coursesavailableexplaination', 'completion'));
|
||||
|
||||
} else {
|
||||
$mform->addElement('static', 'nocourses', '', get_string('err_nocourses', 'completion'));
|
||||
}
|
||||
|
||||
// Manual self completion
|
||||
$mform->addElement('header', 'manualselfcompletion', get_string('manualselfcompletion', 'completion'));
|
||||
$criteria = new completion_criteria_self($params);
|
||||
$criteria->config_form_display($mform);
|
||||
|
||||
// Role completion criteria
|
||||
$mform->addElement('header', 'roles', get_string('manualcompletionby', 'completion'));
|
||||
|
||||
$roles = get_roles_with_capability('moodle/course:markcomplete', CAP_ALLOW, context_course::instance($course->id, IGNORE_MISSING));
|
||||
|
||||
if (!empty($roles)) {
|
||||
$mform->addElement('select', 'role_aggregation', get_string('aggregationmethod', 'completion'), $aggregation_methods);
|
||||
$mform->setDefault('role_aggregation', $completion->get_aggregation_method(COMPLETION_CRITERIA_TYPE_ROLE));
|
||||
|
||||
foreach ($roles as $role) {
|
||||
$params_a = array('role' => $role->id);
|
||||
$criteria = new completion_criteria_role(array_merge($params, $params_a));
|
||||
$criteria->config_form_display($mform, $role);
|
||||
}
|
||||
} else {
|
||||
$mform->addElement('static', 'noroles', '', get_string('err_noroles', 'completion'));
|
||||
}
|
||||
|
||||
// Activity completion criteria
|
||||
$mform->addElement('header', 'activitiescompleted', get_string('activitiescompleted', 'completion'));
|
||||
$label = get_string('coursecompletioncondition', 'core_completion', get_string('activitiescompleted', 'core_completion'));
|
||||
$mform->addElement('header', 'activitiescompleted', $label);
|
||||
// Get the list of currently specified conditions and expand the section if some are found.
|
||||
$current = $completion->get_criteria(COMPLETION_CRITERIA_TYPE_ACTIVITY);
|
||||
if (!empty($current)) {
|
||||
$mform->setExpanded('activitiescompleted');
|
||||
}
|
||||
|
||||
$activities = $completion->get_activities();
|
||||
if (!empty($activities)) {
|
||||
if (count($activities) > 1) {
|
||||
$mform->addElement('select', 'activity_aggregation', get_string('aggregationmethod', 'completion'), $aggregation_methods);
|
||||
$mform->setDefault('activity_aggregation', $completion->get_aggregation_method(COMPLETION_CRITERIA_TYPE_ACTIVITY));
|
||||
}
|
||||
|
||||
foreach ($activities as $activity) {
|
||||
$params_a = array('moduleinstance' => $activity->id);
|
||||
$criteria = new completion_criteria_activity(array_merge($params, $params_a));
|
||||
$criteria->config_form_display($mform, $activity);
|
||||
}
|
||||
$mform->addElement('static', 'criteria_role_note', '', get_string('activitiescompletednote', 'core_completion'));
|
||||
|
||||
if (count($activities) > 1) {
|
||||
// Map aggregation methods to context-sensitive human readable dropdown menu.
|
||||
$activityaggregationmenu = array();
|
||||
foreach ($aggregation_methods as $methodcode => $methodname) {
|
||||
if ($methodcode === COMPLETION_AGGREGATION_ALL) {
|
||||
$activityaggregationmenu[COMPLETION_AGGREGATION_ALL] = get_string('activityaggregation_all', 'core_completion');
|
||||
} else if ($methodcode === COMPLETION_AGGREGATION_ANY) {
|
||||
$activityaggregationmenu[COMPLETION_AGGREGATION_ANY] = get_string('activityaggregation_any', 'core_completion');
|
||||
} else {
|
||||
$activityaggregationmenu[$methodcode] = $methodname;
|
||||
}
|
||||
}
|
||||
$mform->addElement('select', 'activity_aggregation', get_string('activityaggregation', 'core_completion'), $activityaggregationmenu);
|
||||
$mform->setDefault('activity_aggregation', $completion->get_aggregation_method(COMPLETION_CRITERIA_TYPE_ACTIVITY));
|
||||
}
|
||||
|
||||
} else {
|
||||
$mform->addElement('static', 'noactivities', '', get_string('err_noactivities', 'completion'));
|
||||
}
|
||||
|
||||
// Course prerequisite completion criteria.
|
||||
$label = get_string('coursecompletioncondition', 'core_completion', get_string('dependenciescompleted', 'core_completion'));
|
||||
$mform->addElement('header', 'courseprerequisites', $label);
|
||||
// Get the list of currently specified conditions and expand the section if some are found.
|
||||
$current = $completion->get_criteria(COMPLETION_CRITERIA_TYPE_COURSE);
|
||||
if (!empty($current)) {
|
||||
$mform->setExpanded('courseprerequisites');
|
||||
}
|
||||
|
||||
// Get applicable courses (prerequisites).
|
||||
$courses = $DB->get_records_sql("
|
||||
SELECT DISTINCT c.id, c.category, c.fullname, cc.id AS selected
|
||||
FROM {course} c
|
||||
LEFT JOIN {course_completion_criteria} cc ON cc.courseinstance = c.id AND cc.course = {$course->id}
|
||||
INNER JOIN {course_completion_criteria} ccc ON ccc.course = c.id
|
||||
WHERE c.enablecompletion = ".COMPLETION_ENABLED."
|
||||
AND c.id <> {$course->id}");
|
||||
|
||||
if (!empty($courses)) {
|
||||
// Get category list.
|
||||
require_once($CFG->libdir. '/coursecatlib.php');
|
||||
$list = coursecat::make_categories_list();
|
||||
|
||||
// Get course list for select box.
|
||||
$selectbox = array();
|
||||
$selected = array();
|
||||
foreach ($courses as $c) {
|
||||
$selectbox[$c->id] = $list[$c->category] . ' / ' . format_string($c->fullname, true,
|
||||
array('context' => context_course::instance($c->id)));
|
||||
|
||||
// If already selected ...
|
||||
if ($c->selected) {
|
||||
$selected[] = $c->id;
|
||||
}
|
||||
}
|
||||
|
||||
// Show multiselect box.
|
||||
$mform->addElement('select', 'criteria_course', get_string('coursesavailable', 'completion'), $selectbox,
|
||||
array('multiple' => 'multiple', 'size' => 6));
|
||||
|
||||
// Select current criteria.
|
||||
$mform->setDefault('criteria_course', $selected);
|
||||
|
||||
// Explain list.
|
||||
$mform->addElement('static', 'criteria_courses_explaination', '', get_string('coursesavailableexplaination', 'completion'));
|
||||
|
||||
if (count($courses) > 1) {
|
||||
// Map aggregation methods to context-sensitive human readable dropdown menu.
|
||||
$courseaggregationmenu = array();
|
||||
foreach ($aggregation_methods as $methodcode => $methodname) {
|
||||
if ($methodcode === COMPLETION_AGGREGATION_ALL) {
|
||||
$courseaggregationmenu[COMPLETION_AGGREGATION_ALL] = get_string('courseaggregation_all', 'core_completion');
|
||||
} else if ($methodcode === COMPLETION_AGGREGATION_ANY) {
|
||||
$courseaggregationmenu[COMPLETION_AGGREGATION_ANY] = get_string('courseaggregation_any', 'core_completion');
|
||||
} else {
|
||||
$courseaggregationmenu[$methodcode] = $methodname;
|
||||
}
|
||||
}
|
||||
$mform->addElement('select', 'course_aggregation', get_string('courseaggregation', 'core_completion'), $courseaggregationmenu);
|
||||
$mform->setDefault('course_aggregation', $completion->get_aggregation_method(COMPLETION_CRITERIA_TYPE_COURSE));
|
||||
}
|
||||
|
||||
} else {
|
||||
$mform->addElement('static', 'nocourses', '', get_string('err_nocourses', 'completion'));
|
||||
}
|
||||
|
||||
// Completion on date
|
||||
$mform->addElement('header', 'date', get_string('date'));
|
||||
$label = get_string('coursecompletioncondition', 'core_completion', get_string('completionondate', 'core_completion'));
|
||||
$mform->addElement('header', 'date', $label);
|
||||
// Expand the condition section if it is currently enabled.
|
||||
$current = $completion->get_criteria(COMPLETION_CRITERIA_TYPE_DATE);
|
||||
if (!empty($current)) {
|
||||
$mform->setExpanded('date');
|
||||
}
|
||||
$criteria = new completion_criteria_date($params);
|
||||
$criteria->config_form_display($mform);
|
||||
|
||||
// Completion after enrolment duration
|
||||
$mform->addElement('header', 'duration', get_string('durationafterenrolment', 'completion'));
|
||||
$label = get_string('coursecompletioncondition', 'core_completion', get_string('enrolmentduration', 'core_completion'));
|
||||
$mform->addElement('header', 'duration', $label);
|
||||
// Expand the condition section if it is currently enabled.
|
||||
$current = $completion->get_criteria(COMPLETION_CRITERIA_TYPE_DURATION);
|
||||
if (!empty($current)) {
|
||||
$mform->setExpanded('duration');
|
||||
}
|
||||
$criteria = new completion_criteria_duration($params);
|
||||
$criteria->config_form_display($mform);
|
||||
|
||||
// Completion on course grade
|
||||
$mform->addElement('header', 'grade', get_string('coursegrade', 'completion'));
|
||||
// Completion on unenrolment
|
||||
$label = get_string('coursecompletioncondition', 'core_completion', get_string('unenrolment', 'core_completion'));
|
||||
$mform->addElement('header', 'unenrolment', $label);
|
||||
// Expand the condition section if it is currently enabled.
|
||||
$current = $completion->get_criteria(COMPLETION_CRITERIA_TYPE_UNENROL);
|
||||
if (!empty($current)) {
|
||||
$mform->setExpanded('unenrolment');
|
||||
}
|
||||
$criteria = new completion_criteria_unenrol($params);
|
||||
$criteria->config_form_display($mform);
|
||||
|
||||
// Grade enable and passing grade
|
||||
// Completion on course grade
|
||||
$label = get_string('coursecompletioncondition', 'core_completion', get_string('coursegrade', 'core_completion'));
|
||||
$mform->addElement('header', 'grade', $label);
|
||||
// Expand the condition section if it is currently enabled.
|
||||
$current = $completion->get_criteria(COMPLETION_CRITERIA_TYPE_GRADE);
|
||||
if (!empty($current)) {
|
||||
$mform->setExpanded('grade');
|
||||
}
|
||||
$course_grade = $DB->get_field('grade_items', 'gradepass', array('courseid' => $course->id, 'itemtype' => 'course'));
|
||||
if (!$course_grade) {
|
||||
$course_grade = '0.00000';
|
||||
@ -188,34 +229,65 @@ class course_completion_form extends moodleform {
|
||||
$criteria = new completion_criteria_grade($params);
|
||||
$criteria->config_form_display($mform, $course_grade);
|
||||
|
||||
// Completion on unenrolment
|
||||
$mform->addElement('header', 'unenrolment', get_string('unenrolment', 'completion'));
|
||||
$criteria = new completion_criteria_unenrol($params);
|
||||
// Manual self completion
|
||||
$label = get_string('coursecompletioncondition', 'core_completion', get_string('manualselfcompletion', 'core_completion'));
|
||||
$mform->addElement('header', 'manualselfcompletion', $label);
|
||||
// Expand the condition section if it is currently enabled.
|
||||
$current = $completion->get_criteria(COMPLETION_CRITERIA_TYPE_SELF);
|
||||
if (!empty($current)) {
|
||||
$mform->setExpanded('manualselfcompletion');
|
||||
}
|
||||
$criteria = new completion_criteria_self($params);
|
||||
$criteria->config_form_display($mform);
|
||||
$mform->addElement('static', 'criteria_self_note', '', get_string('manualselfcompletionnote', 'core_completion'));
|
||||
|
||||
// Role completion criteria
|
||||
$label = get_string('coursecompletioncondition', 'core_completion', get_string('manualcompletionby', 'core_completion'));
|
||||
$mform->addElement('header', 'roles', $label);
|
||||
// Expand the condition section if it is currently enabled.
|
||||
$current = $completion->get_criteria(COMPLETION_CRITERIA_TYPE_ROLE);
|
||||
if (!empty($current)) {
|
||||
$mform->setExpanded('roles');
|
||||
}
|
||||
$roles = get_roles_with_capability('moodle/course:markcomplete', CAP_ALLOW, context_course::instance($course->id, IGNORE_MISSING));
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
if (!empty($roles)) {
|
||||
foreach ($roles as $role) {
|
||||
$params_a = array('role' => $role->id);
|
||||
$criteria = new completion_criteria_role(array_merge($params, $params_a));
|
||||
$criteria->config_form_display($mform, $role);
|
||||
}
|
||||
$mform->addElement('static', 'criteria_role_note', '', get_string('manualcompletionbynote', 'core_completion'));
|
||||
// Map aggregation methods to context-sensitive human readable dropdown menu.
|
||||
$roleaggregationmenu = array();
|
||||
foreach ($aggregation_methods as $methodcode => $methodname) {
|
||||
if ($methodcode === COMPLETION_AGGREGATION_ALL) {
|
||||
$roleaggregationmenu[COMPLETION_AGGREGATION_ALL] = get_string('roleaggregation_all', 'core_completion');
|
||||
} else if ($methodcode === COMPLETION_AGGREGATION_ANY) {
|
||||
$roleaggregationmenu[COMPLETION_AGGREGATION_ANY] = get_string('roleaggregation_any', 'core_completion');
|
||||
} else {
|
||||
$roleaggregationmenu[$methodcode] = $methodname;
|
||||
}
|
||||
}
|
||||
$mform->addElement('select', 'role_aggregation', get_string('roleaggregation', 'core_completion'), $roleaggregationmenu);
|
||||
$mform->setDefault('role_aggregation', $completion->get_aggregation_method(COMPLETION_CRITERIA_TYPE_ROLE));
|
||||
|
||||
} else {
|
||||
$mform->addElement('static', 'noroles', '', get_string('err_noroles', 'completion'));
|
||||
}
|
||||
|
||||
// Add common action buttons.
|
||||
$this->add_action_buttons();
|
||||
//--------------------------------------------------------------------------------
|
||||
|
||||
// Add hidden fields.
|
||||
$mform->addElement('hidden', 'id', $course->id);
|
||||
$mform->setType('id', PARAM_INT);
|
||||
|
||||
// If the criteria are locked, freeze values and submit button
|
||||
// If the criteria are locked, freeze values and submit button.
|
||||
if ($completion->is_course_locked()) {
|
||||
$except = array('settingsunlock');
|
||||
$mform->hardFreezeAllVisibleExcept($except);
|
||||
$mform->addElement('cancel');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// perform some extra moodle validation
|
||||
function validation($data, $files) {
|
||||
global $DB, $CFG;
|
||||
|
||||
$errors = parent::validation($data, $files);
|
||||
|
||||
return $errors;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -16,24 +16,34 @@
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* Strings for component 'completion', language 'en', branch 'MOODLE_20_STABLE'
|
||||
* Strings for core_completion subsystem.
|
||||
*
|
||||
* @package completion
|
||||
* @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com}
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
* @package core_completion
|
||||
* @category string
|
||||
* @copyright © 2008 The Open University
|
||||
* @author Sam Marshall
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
$string['achievinggrade'] = 'Achieving grade';
|
||||
$string['activities'] = 'Activities';
|
||||
$string['activityaggregation'] = 'Condition requires';
|
||||
$string['activityaggregation_all'] = 'ALL selected activities to be completed';
|
||||
$string['activityaggregation_any'] = 'ANY selected activities to be completed';
|
||||
$string['activitiescompleted'] = 'Activity completion';
|
||||
$string['activitiescompletednote'] = 'Note: Activity completion must be set for an activity to appear in the above list.';
|
||||
$string['activitycompletion'] = 'Activity completion';
|
||||
$string['aggregationmethod'] = 'Aggregation method';
|
||||
$string['all'] = 'All';
|
||||
$string['any'] = 'Any';
|
||||
$string['approval'] = 'Approval';
|
||||
$string['badautocompletion'] = 'When you select automatic completion, you must also enable at least one requirement (below).';
|
||||
$string['completed'] = 'Completed';
|
||||
$string['completedunlocked'] = 'Completion options unlocked';
|
||||
$string['completedunlockedtext'] = 'When you save changes, completion state for all students will be erased. If you change your mind about this, do not save the form.';
|
||||
$string['completedwarning'] = 'Completion options locked';
|
||||
$string['completedwarningtext'] = 'One or more students ({$a}) has already marked this activity as completed. Changing completion options will erase their completion state and may cause confusion. Thus the options have been locked and should not be unlocked unless absolutely necessary.';
|
||||
$string['completion'] = 'Completion tracking';
|
||||
$string['completion_help'] = 'If enabled, activity completion is tracked, either manually or automatically, based on certain conditions. Multiple conditions may be set if desired. If so, the activity will only be considered complete when ALL conditions are met.
|
||||
|
||||
A tick next to the activity name on the course page indicates when the activity is complete.';
|
||||
$string['completion_link'] = 'activity/completion';
|
||||
$string['completion-alt-auto-enabled'] = 'The system marks this item complete according to conditions: {$a}';
|
||||
$string['completion-alt-auto-fail'] = 'Completed: {$a} (did not achieve pass grade)';
|
||||
$string['completion-alt-auto-n'] = 'Not completed: {$a}';
|
||||
@ -42,120 +52,126 @@ $string['completion-alt-auto-y'] = 'Completed: {$a}';
|
||||
$string['completion-alt-manual-enabled'] = 'Students can manually mark this item complete: {$a}';
|
||||
$string['completion-alt-manual-n'] = 'Not completed: {$a}. Select to mark as complete.';
|
||||
$string['completion-alt-manual-y'] = 'Completed: {$a}. Select to mark as not complete.';
|
||||
$string['completion-y'] = 'Completed';
|
||||
$string['completion-n'] = 'Not completed';
|
||||
$string['completion-fail'] = 'Completed (did not achieve pass grade)';
|
||||
$string['completion-n'] = 'Not completed';
|
||||
$string['completion-pass'] = 'Completed (achieved pass grade)';
|
||||
$string['completion-title-manual-n'] = 'Mark as complete: {$a}';
|
||||
$string['completion-title-manual-y'] = 'Mark as not complete: {$a}';
|
||||
$string['completion-y'] = 'Completed';
|
||||
$string['completion_automatic'] = 'Show activity as complete when conditions are met';
|
||||
$string['completion_help'] = 'If enabled, activity completion is tracked, either manually or automatically, based on certain conditions. Multiple conditions may be set if desired. If so, the activity will only be considered complete when ALL conditions are met.
|
||||
|
||||
A tick next to the activity name on the course page indicates when the activity is complete.';
|
||||
$string['completion_link'] = 'activity/completion';
|
||||
$string['completion_manual'] = 'Students can manually mark the activity as completed';
|
||||
$string['completion_none'] = 'Do not indicate activity completion';
|
||||
$string['completiondisabled'] = 'Disabled, not shown in activity settings';
|
||||
$string['completionenabled'] = 'Enabled, control via completion and activity settings';
|
||||
$string['completionexpected'] = 'Expect completed on';
|
||||
$string['completionexpected_help']='This setting specifies the date when the activity is expected to be completed. The date is not shown to students and is only displayed in the activity completion report.';
|
||||
$string['completionexpected_help'] = 'This setting specifies the date when the activity is expected to be completed. The date is not shown to students and is only displayed in the activity completion report.';
|
||||
$string['completionicons'] = 'Completion tick boxes';
|
||||
$string['completionicons_help'] = 'A tick next an activity name may be used to indicate when the activity is complete.
|
||||
|
||||
If a box with a dotted border is shown, a tick will appear automatically when you have completed the activity according to conditions set by the teacher.
|
||||
|
||||
If a box with a solid border is shown, you can click it to tick the box when you think you have completed the activity. (Clicking it again removes the tick if you change your mind.) The tick is optional and is simply a way of tracking your progress through the course.';
|
||||
$string['completion_manual'] = 'Students can manually mark the activity as completed';
|
||||
$string['completion_none'] = 'Do not indicate activity completion';
|
||||
$string['completion-title-manual-n'] = 'Mark as complete: {$a}';
|
||||
$string['completion-title-manual-y'] = 'Mark as not complete: {$a}';
|
||||
$string['completionmenuitem'] = 'Completion';
|
||||
$string['completionnotenabled'] = 'Completion is not enabled';
|
||||
$string['completionnotenabledforcourse'] = 'Completion is not enabled for this course';
|
||||
$string['completionnotenabledforsite'] = 'Completion is not enabled for this site';
|
||||
$string['completionondate'] = 'Date';
|
||||
$string['completionondatevalue'] = 'User must remain enrolled until';
|
||||
$string['completionduration'] = 'Enrolment';
|
||||
$string['completionsettingslocked'] = 'Completion settings locked';
|
||||
$string['completionusegrade'] = 'Require grade';
|
||||
$string['completionusegrade_help'] = 'If enabled, the activity is considered complete when a student receives a grade. Pass and fail icons may be displayed if a pass grade for the activity has been set.';
|
||||
$string['completionusegrade_desc'] = 'Student must receive a grade to complete this activity';
|
||||
$string['completionusegrade_help'] = 'If enabled, the activity is considered complete when a student receives a grade. Pass and fail icons may be displayed if a pass grade for the activity has been set.';
|
||||
$string['completionview'] = 'Require view';
|
||||
$string['completionview_desc'] = 'Student must view this activity to complete it';
|
||||
$string['configenablecompletion'] = 'When enabled, this lets you turn on completion tracking (progress) features at course level.';
|
||||
$string['confirmselfcompletion'] = 'Confirm self completion';
|
||||
$string['courseaggregation'] = 'Condition requires';
|
||||
$string['courseaggregation_all'] = 'ALL selected courses to be completed';
|
||||
$string['courseaggregation_any'] = 'ANY selected courses to be completed';
|
||||
$string['coursealreadycompleted'] = 'You have already completed this course';
|
||||
$string['coursecomplete'] = 'Course complete';
|
||||
$string['coursecompleted'] = 'Course completed';
|
||||
$string['coursecompletion'] = 'Course completion';
|
||||
$string['coursecompletioncondition'] = 'Condition: {$a}';
|
||||
$string['coursegrade'] = 'Course grade';
|
||||
$string['coursesavailable'] = 'Courses available';
|
||||
$string['coursesavailableexplaination'] = 'Note: Course completion conditions must be set for a course to appear in the above list.';
|
||||
$string['criteria'] = 'Criteria';
|
||||
$string['criteriagroup'] = 'Criteria group';
|
||||
$string['criteriarequiredall'] = 'All criteria below are required';
|
||||
$string['criteriarequiredany'] = 'Any criteria below are required';
|
||||
$string['csvdownload'] = 'Download in spreadsheet format (UTF-8 .csv)';
|
||||
$string['datepassed'] = 'Date passed';
|
||||
$string['days'] = 'Days';
|
||||
$string['deletecompletiondata'] = 'Delete completion data';
|
||||
$string['dependencies'] = 'Dependencies';
|
||||
$string['dependenciescompleted'] = 'Completion of other courses';
|
||||
$string['editcoursecompletionsettings'] = 'Edit course completion settings';
|
||||
$string['enablecompletion'] = 'Enable completion tracking';
|
||||
$string['enablecompletion_help'] = 'Once enabled, the completion tracking settings are displayed in the completion tracking page, and in the activity settings.';
|
||||
$string['enrolmentduration'] = 'Enrolment duration';
|
||||
$string['enrolmentdurationlength'] = 'User must remain enrolled for';
|
||||
$string['err_noactivities'] = 'Completion information is not enabled for any activity, so none can be displayed. You can enable completion information by editing the settings for an activity.';
|
||||
$string['err_nocourses'] = 'Course completion is not enabled for any other courses, so none can be displayed. You can enable course completion in the course settings.';
|
||||
$string['err_nograde'] = 'A course pass grade has not been set for this course. To enable this criteria type you must create a pass grade for this course.';
|
||||
$string['err_noroles'] = 'There are no roles with the capability moodle/course:markcomplete in this course.';
|
||||
$string['err_nousers'] = 'There are no students on this course or group for whom completion information is displayed. (By default, completion information is displayed only for students, so if there are no students, you will see this error. Administrators can alter this option via the admin screens.)';
|
||||
$string['err_settingslocked'] = 'One or more students have already completed a criteria so the settings have been locked. Unlocking the completion criteria settings will delete any existing user data and may cause confusion.';
|
||||
$string['err_system'] = 'An internal error occurred in the completion system. (System administrators can enable debugging information to see more detail.)';
|
||||
$string['excelcsvdownload'] = 'Download in Excel-compatible format (.csv)';
|
||||
$string['fraction'] = 'Fraction';
|
||||
$string['graderequired'] = 'Required course grade';
|
||||
$string['gradexrequired'] = '{$a} required';
|
||||
$string['inprogress'] = 'In progress';
|
||||
$string['manualcompletionby'] = 'Manual completion by others';
|
||||
$string['manualcompletionbynote'] = 'Note: The capability moodle/course:markcomplete must be allowed for a role to appear in the list.';
|
||||
$string['manualselfcompletion'] = 'Manual self completion';
|
||||
$string['manualselfcompletionnote'] = 'Note: The self completion block should be added to the course if manual self completion is enabled.';
|
||||
$string['markcomplete'] = 'Mark complete';
|
||||
$string['markedcompleteby'] = 'Marked complete by {$a}';
|
||||
$string['markingyourselfcomplete'] = 'Marking yourself complete';
|
||||
$string['moredetails'] = 'More details';
|
||||
$string['nocriteriaset'] = 'No completion criteria set for this course';
|
||||
$string['notcompleted'] = 'Not completed';
|
||||
$string['notenroled'] = 'You are not enrolled in this course';
|
||||
$string['nottracked'] = 'You are currently not being tracked by completion in this course';
|
||||
$string['notyetstarted'] = 'Not yet started';
|
||||
$string['overallaggregation'] = 'Completion requirements';
|
||||
$string['overallaggregation_all'] = 'Course is complete when ALL conditions are met';
|
||||
$string['overallaggregation_any'] = 'Course is complete when ANY of the conditions are met';
|
||||
$string['pending'] = 'Pending';
|
||||
$string['periodpostenrolment'] = 'Period post enrolment';
|
||||
$string['progress'] = 'Student progress';
|
||||
$string['progress-title'] = '{$a->user}, {$a->activity}: {$a->state} {$a->date}';
|
||||
$string['progresstotal'] = 'Progress: {$a->complete} / {$a->total}';
|
||||
$string['recognitionofpriorlearning'] = 'Recognition of prior learning';
|
||||
$string['remainingenroledfortime'] = 'Remaining enrolled for a specified period of time';
|
||||
$string['remainingenroleduntildate'] = 'Remaining enrolled until a specified date';
|
||||
$string['reportpage'] = 'Showing users {$a->from} to {$a->to} of {$a->total}.';
|
||||
$string['requiredcriteria'] = 'Required criteria';
|
||||
$string['restoringcompletiondata'] = 'Writing completion data';
|
||||
$string['roleaggregation'] = 'Condition requires';
|
||||
$string['roleaggregation_all'] = 'ALL selected roles to mark when the condition is met';
|
||||
$string['roleaggregation_any'] = 'ANY selected roles to mark when the condition is met';
|
||||
$string['saved'] = 'Saved';
|
||||
$string['seedetails'] = 'See details';
|
||||
$string['self'] = 'Self';
|
||||
$string['selfcompletion'] = 'Self completion';
|
||||
$string['showinguser'] = 'Showing user';
|
||||
$string['unenrolingfromcourse'] = 'Unenrolling from course';
|
||||
$string['unenrolment'] = 'Unenrolment';
|
||||
$string['unit'] = 'Unit';
|
||||
$string['unlockcompletion'] = 'Unlock completion options';
|
||||
$string['unlockcompletiondelete'] = 'Unlock completion options and delete user completion data';
|
||||
$string['usealternateselector'] = 'Use the alternate course selector';
|
||||
$string['usernotenroled'] = 'User is not enrolled in this course';
|
||||
$string['viewcoursereport'] = 'View course report';
|
||||
$string['viewingactivity'] = 'Viewing the {$a}';
|
||||
$string['writingcompletiondata'] = 'Writing completion data';
|
||||
$string['xdays'] = '{$a} days';
|
||||
$string['yourprogress'] = 'Your progress';
|
||||
$string['achievinggrade']='Achieving grade';
|
||||
$string['activities']='Activities';
|
||||
$string['activitiescompleted']='Activities completed';
|
||||
$string['afterspecifieddate']='After specified date';
|
||||
$string['aggregationmethod']='Aggregation method';
|
||||
$string['all']='All';
|
||||
$string['any']='Any';
|
||||
$string['approval']='Approval';
|
||||
$string['completiondependencies']='Completion dependencies';
|
||||
$string['completionenabled']='Enabled, control via completion and activity settings';
|
||||
$string['completionmenuitem']='Completion';
|
||||
$string['completiononunenrolment']='Completion on unenrolment';
|
||||
$string['completionsettingslocked']='Completion settings locked';
|
||||
$string['completed'] = 'Completed';
|
||||
$string['confirmselfcompletion']='Confirm self completion';
|
||||
$string['coursealreadycompleted']='You have already completed this course';
|
||||
$string['coursecomplete']='Course complete';
|
||||
$string['coursecompleted']='Course completed';
|
||||
$string['coursegrade']='Course grade';
|
||||
$string['coursesavailable']='Courses available';
|
||||
$string['coursesavailableexplaination']='<i>Course completion criteria must be set for a course to appear in this list</i>';
|
||||
$string['criteria']='Criteria';
|
||||
$string['criteriagradenote'] = 'Please note that updating the required grade here will not update the current course pass grade.';
|
||||
$string['criteriagroup']='Criteria group';
|
||||
$string['criteriarequiredall']='All criteria below are required';
|
||||
$string['criteriarequiredany']='Any criteria below are required';
|
||||
$string['days']='Days';
|
||||
$string['dependencies']='Dependencies';
|
||||
$string['dependenciescompleted']='Dependencies completed';
|
||||
$string['editcoursecompletionsettings']='Edit course completion settings';
|
||||
$string['enrolmentduration']='Days left';
|
||||
$string['err_nocourses']='Course completion is not enabled for any other courses, so none can be displayed. You can enable course completion in the course settings.';
|
||||
$string['err_nograde']='A course pass grade has not been set for this course. To enable this criteria type you must create a pass grade for this course.';
|
||||
$string['err_noroles']='There are no roles with the capability \'moodle/course:markcomplete\' in this course. You can enable this criteria type by adding this capability to role(s).';
|
||||
$string['err_settingslocked']='One or more students have already completed a criteria so the settings have been locked. Unlocking the completion criteria settings will delete any existing user data and may cause confusion.';
|
||||
$string['datepassed']='Date passed';
|
||||
$string['daysafterenrolment']='Days after enrolment';
|
||||
$string['durationafterenrolment']='Duration after enrolment';
|
||||
$string['fraction']='Fraction';
|
||||
$string['gradexrequired']='{$a} required';
|
||||
$string['graderequired']='Grade required';
|
||||
$string['inprogress']='In progress';
|
||||
$string['manualcompletionby']='Manual completion by';
|
||||
$string['manualselfcompletion']='Manual self completion';
|
||||
$string['markcomplete']='Mark complete';
|
||||
$string['markedcompleteby']='Marked complete by {$a}';
|
||||
$string['markingyourselfcomplete']='Marking yourself complete';
|
||||
$string['moredetails']='More details';
|
||||
$string['nocriteriaset']='No completion criteria set for this course';
|
||||
$string['notcompleted'] = 'Not completed';
|
||||
$string['notenroled']='You are not enrolled in this course';
|
||||
$string['nottracked']='You are currently not being tracked by completion in this course';
|
||||
$string['notyetstarted']='Not yet started';
|
||||
$string['overallcriteriaaggregation']='Overall criteria type aggregation';
|
||||
$string['pending']='Pending';
|
||||
$string['periodpostenrolment']='Period post enrolment';
|
||||
$string['recognitionofpriorlearning']='Recognition of prior learning';
|
||||
$string['remainingenroledfortime']='Remaining enrolled for a specified period of time';
|
||||
$string['remainingenroleduntildate']='Remaining enrolled until a specified date';
|
||||
$string['requiredcriteria']='Required criteria';
|
||||
$string['seedetails']='See details';
|
||||
$string['self']='Self';
|
||||
$string['selfcompletion']='Self completion';
|
||||
$string['showinguser']='Showing user';
|
||||
$string['unit']='Unit';
|
||||
$string['unenrolingfromcourse']='Unenroling from course';
|
||||
$string['unenrolment']='Unenrolment';
|
||||
$string['unlockcompletiondelete']='Unlock completion options and delete user completion data';
|
||||
$string['usealternateselector']='Use the alternate course selector';
|
||||
$string['usernotenroled']='User is not enrolled in this course';
|
||||
$string['viewcoursereport']='View course report';
|
||||
$string['viewingactivity']='Viewing the {$a}';
|
||||
$string['xdays']='{$a} days';
|
||||
|
@ -3518,7 +3518,7 @@ class settings_navigation extends navigation_node {
|
||||
// Add the course completion settings link
|
||||
if ($CFG->enablecompletion && $course->enablecompletion) {
|
||||
$url = new moodle_url('/course/completion.php', array('id'=>$course->id));
|
||||
$coursenode->add(get_string('completion', 'completion'), $url, self::TYPE_SETTING, null, null, new pix_icon('i/settings', ''));
|
||||
$coursenode->add(get_string('coursecompletion', 'completion'), $url, self::TYPE_SETTING, null, null, new pix_icon('i/settings', ''));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user