Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

MDL-38559 Reorganise course completion settings form

This is a result of a pretty intensive effort to make the form less
sucky, given the completion strings mess around. It partially solves
MDL-39419 too as it clarifies the course completion link in the course
administration block.

I must admit and record here that I'm pretty desperate by the current
state of the core_completion and how strings from it are inconsistently
used at various places with different meanings. For example the 'Completion
tracking' may mean the mode of how activities are tracked within the
course as well as the overall feature of course and activities tracking.
While a same phrase can be used in English for both this meanings, not
all languages have such luck and translating it is a pain in the ass.

Finally, let me give the credit for wording and UI design suggestions to
Helen Foster and all others who helped with this. This has been one of
the most ugliest forms in Moodle and we believe we made it better
(although we know it's far from perfect).
  • Loading branch information...
commit 6e5a473c479bfcd5f3b2cde9a965a812e5da9320 1 parent b3b13e9
@mudrd8mz mudrd8mz authored
View
3  completion/criteria/completion_criteria_date.php
@@ -59,7 +59,8 @@ public static function fetch($params) {
*/
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) {
View
30 completion/criteria/completion_criteria_duration.php
@@ -61,12 +61,32 @@ public function config_form_display(&$mform, $data = null) {
$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);
View
2  completion/criteria/completion_criteria_grade.php
@@ -63,9 +63,9 @@ public static function fetch($params) {
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);
View
2  completion/criteria/completion_criteria_unenrol.php
@@ -58,7 +58,7 @@ public static function fetch($params) {
* @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);
View
208 course/completion_form.php
@@ -61,12 +61,68 @@ public function definition() {
$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);
+ $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());
+ // Activity completion criteria
+ $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)) {
+
+ 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.
- $mform->addElement('header', 'courseprerequisites', get_string('completiondependencies', 'completion'));
+ $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("
@@ -78,11 +134,6 @@ public function definition() {
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();
@@ -110,66 +161,67 @@ public function definition() {
// 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'));
-
- $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));
+ 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));
}
- 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);
- }
} else {
- $mform->addElement('static', 'noactivities', '', get_string('err_noactivities', 'completion'));
+ $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';
@@ -177,10 +229,52 @@ public function definition() {
$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();
View
44 lang/en/completion.php
@@ -27,9 +27,12 @@
$string['achievinggrade'] = 'Achieving grade';
$string['activities'] = 'Activities';
-$string['activitiescompleted'] = 'Activities completed';
+$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['afterspecifieddate'] = 'After specified date';
$string['aggregationmethod'] = 'Aggregation method';
$string['all'] = 'All';
$string['any'] = 'Any';
@@ -62,7 +65,6 @@
$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['completiondependencies'] = 'Completion dependencies';
$string['completiondisabled'] = 'Disabled, not shown in activity settings';
$string['completionenabled'] = 'Enabled, control via completion and activity settings';
$string['completionexpected'] = 'Expect completed on';
@@ -77,7 +79,9 @@
$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['completiononunenrolment'] = 'Completion on unenrolment';
+$string['completionondate'] = 'Date';
+$string['completionondatevalue'] = 'User must remain enrolled until';
+$string['completionduration'] = 'Enrolment';
$string['completionsettingslocked'] = 'Completion settings locked';
$string['completionusegrade'] = 'Require grade';
$string['completionusegrade_desc'] = 'Student must receive a grade to complete this activity';
@@ -86,43 +90,48 @@
$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'] = '<i>Course completion criteria must be set for a course to appear in this list</i>';
+$string['coursesavailableexplaination'] = 'Note: Course completion conditions must be set for a course to appear in the above list.';
$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['csvdownload'] = 'Download in spreadsheet format (UTF-8 .csv)';
$string['datepassed'] = 'Date passed';
$string['days'] = 'Days';
-$string['daysafterenrolment'] = 'Days after enrolment';
$string['deletecompletiondata'] = 'Delete completion data';
$string['dependencies'] = 'Dependencies';
-$string['dependenciescompleted'] = 'Dependencies completed';
-$string['durationafterenrolment'] = 'Duration after enrolment';
+$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'] = 'Days left';
+$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. You can enable this criteria type by adding this capability to role(s).';
+$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'] = 'Grade required';
+$string['graderequired'] = 'Required course grade';
$string['gradexrequired'] = '{$a} required';
$string['inprogress'] = 'In progress';
-$string['manualcompletionby'] = 'Manual completion by';
+$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';
@@ -132,7 +141,9 @@
$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['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';
@@ -144,12 +155,15 @@
$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'] = 'Unenroling from course';
+$string['unenrolingfromcourse'] = 'Unenrolling from course';
$string['unenrolment'] = 'Unenrolment';
$string['unit'] = 'Unit';
$string['unlockcompletion'] = 'Unlock completion options';
View
2  lib/navigationlib.php
@@ -3518,7 +3518,7 @@ protected function load_course_settings($forceopen = false) {
// 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', ''));
}
}
Please sign in to comment.
Something went wrong with that request. Please try again.