Permalink
Browse files

MDL-31969 grades: Added user preference to show/hide/export suspended…

… users.

User with course:viewsuspendedusers capability can now show/hide/export
enrolled users whose enrolment is suspended or enrolment time is expired.
  • Loading branch information...
1 parent d8201d4 commit 38c1dd194d3da8a4b62ac2a912c0351f1cf15294 @rajeshtaneja rajeshtaneja committed Mar 27, 2013
View
15 grade/export/grade_export_form.php
@@ -36,10 +36,17 @@ function definition() {
$mform->addElement('advcheckbox', 'export_feedback', get_string('exportfeedback', 'grades'));
$mform->setDefault('export_feedback', 0);
-
- $mform->addElement('advcheckbox', 'export_onlyactive', get_string('exportonlyactive', 'grades'));
- $mform->setDefault('export_onlyactive', 0);
- $mform->addHelpButton('export_onlyactive', 'exportonlyactive', 'grades');
+ $coursecontext = context_course::instance($COURSE->id);
+ if (has_capability('moodle/course:viewsuspendedusers', $coursecontext)) {
+ $mform->addElement('advcheckbox', 'export_onlyactive', get_string('exportonlyactive', 'grades'));
+ $mform->setType('export_onlyactive', PARAM_BOOL);
+ $mform->setDefault('export_onlyactive', 1);
+ $mform->addHelpButton('export_onlyactive', 'exportonlyactive', 'grades');
+ } else {
+ $mform->addElement('hidden', 'export_onlyactive', 1);
+ $mform->setType('export_onlyactive', PARAM_BOOL);
+ $mform->setConstant('export_onlyactive', 1);
+ }
$options = array('10'=>10, '20'=>20, '100'=>100, '1000'=>1000, '100000'=>100000);
$mform->addElement('select', 'previewrows', get_string('previewrows', 'grades'), $options);
View
7 grade/export/lib.php
@@ -224,6 +224,9 @@ public function display_preview($require_user_idnumber=false) {
foreach ($userprofilefields as $field) {
echo '<th>' . $field->fullname . '</th>';
}
+ if (!$this->onlyactive) {
+ echo '<th>'.get_string("suspended")."</th>";
+ }
foreach ($this->columns as $grade_item) {
echo '<th>'.$this->format_column_name($grade_item).'</th>';
@@ -283,6 +286,10 @@ public function display_preview($require_user_idnumber=false) {
// @see profile_field_base::display_data().
echo '<td>' . format_text($fieldvalue, FORMAT_MOODLE, $formatoptions) . '</td>';
}
+ if (!$this->onlyactive) {
+ $issuspended = ($user->suspendedenrolment) ? get_string('yes') : '';
+ echo "<td>$issuspended</td>";
+ }
echo $rowstr;
echo "</tr>";
View
7 grade/export/ods/grade_export_ods.php
@@ -50,6 +50,9 @@ function print_grades() {
$myxls->write_string(0, $id, $field->fullname);
}
$pos = count($profilefields);
+ if (!$this->onlyactive) {
+ $myxls->write_string(0, $pos++, get_string("suspended"));
+ }
foreach ($this->columns as $grade_item) {
$myxls->write_string(0, $pos++, $this->format_column_name($grade_item));
@@ -76,6 +79,10 @@ function print_grades() {
}
$j = count($profilefields);
+ if (!$this->onlyactive) {
+ $issuspended = ($user->suspendedenrolment) ? get_string('yes') : '';
+ $myxls->write_string($i, $j++, $issuspended);
+ }
foreach ($userdata->grades as $itemid => $grade) {
if ($export_tracking) {
$status = $geub->track($grade);
View
3 grade/export/ods/index.php
@@ -51,7 +51,8 @@
// process post information
if ($data = $mform->get_data()) {
- $export = new grade_export_ods($course, $currentgroup, '', false, false, $data->display, $data->decimals, $data->export_onlyactive, true);
+ $onlyactive = $data->export_onlyactive || !has_capability('moodle/course:viewsuspendedusers', $context);
+ $export = new grade_export_ods($course, $currentgroup, '', false, false, $data->display, $data->decimals, $onlyactive, true);
// print the grades on screen for feedbacks
$export->process_form($data);
View
8 grade/export/txt/grade_export_txt.php
@@ -66,6 +66,10 @@ public function print_grades() {
$exporttitle[] = $field->fullname;
}
+ if (!$this->onlyactive) {
+ $exporttitle[] = get_string("suspended");
+ }
+
// Add a feedback column.
foreach ($this->columns as $grade_item) {
$exporttitle[] = $this->format_column_name($grade_item);
@@ -90,6 +94,10 @@ public function print_grades() {
$fieldvalue = grade_helper::get_user_field_value($user, $field);
$exportdata[] = $fieldvalue;
}
+ if (!$this->onlyactive) {
+ $issuspended = ($user->suspendedenrolment) ? get_string('yes') : '';
+ $exportdata[] = $issuspended;
+ }
foreach ($userdata->grades as $itemid => $grade) {
if ($export_tracking) {
$status = $geub->track($grade);
View
3 grade/export/txt/index.php
@@ -51,7 +51,8 @@
// process post information
if ($data = $mform->get_data()) {
- $export = new grade_export_txt($course, $currentgroup, '', false, false, $data->display, $data->decimals, $data->separator, $data->export_onlyactive, true);
+ $onlyactive = $data->export_onlyactive || !has_capability('moodle/course:viewsuspendedusers', $context);
+ $export = new grade_export_txt($course, $currentgroup, '', false, false, $data->display, $data->decimals, $data->separator, $onlyactive, true);
// print the grades on screen for feedback
View
9 grade/export/xls/grade_export_xls.php
@@ -48,7 +48,9 @@ public function print_grades() {
$myxls->write_string(0, $id, $field->fullname);
}
$pos = count($profilefields);
-
+ if (!$this->onlyactive) {
+ $myxls->write_string(0, $pos++, get_string("suspended"));
+ }
foreach ($this->columns as $grade_item) {
$myxls->write_string(0, $pos++, $this->format_column_name($grade_item));
@@ -74,7 +76,10 @@ public function print_grades() {
$myxls->write_string($i, $id, $fieldvalue);
}
$j = count($profilefields);
-
+ if (!$this->onlyactive) {
+ $issuspended = ($user->suspendedenrolment) ? get_string('yes') : '';
+ $myxls->write_string($i, $j++, $issuspended);
+ }
foreach ($userdata->grades as $itemid => $grade) {
if ($export_tracking) {
$status = $geub->track($grade);
View
3 grade/export/xls/index.php
@@ -51,7 +51,8 @@
// process post information
if ($data = $mform->get_data()) {
- $export = new grade_export_xls($course, $currentgroup, '', false, false, $data->display, $data->decimals, $data->export_onlyactive, true);
+ $onlyactive = $data->export_onlyactive || !has_capability('moodle/course:viewsuspendedusers', $context);
+ $export = new grade_export_xls($course, $currentgroup, '', false, false, $data->display, $data->decimals, $onlyactive, true);
// print the grades on screen for feedbacks
$export->process_form($data);
View
3 grade/export/xml/index.php
@@ -52,7 +52,8 @@
// process post information
if ($data = $mform->get_data()) {
- $export = new grade_export_xml($course, $currentgroup, '', false, $data->updatedgradesonly, $data->display, $data->decimals, $data->export_onlyactive);
+ $onlyactive = $data->export_onlyactive || !has_capability('moodle/course:viewsuspendedusers', $context);
+ $export = new grade_export_xml($course, $currentgroup, '', false, $data->updatedgradesonly, $data->display, $data->decimals, $onlyactive);
// print the grades on screen for feedbacks
$export->process_form($data);
View
35 grade/lib.php
@@ -94,6 +94,12 @@ class graded_users_iterator {
protected $allowusercustomfields = false;
/**
+ * List of suspended users in course. This includes users whose enrolment status is suspended
+ * or enrolment has expired or not started.
+ */
+ protected $suspendedusers = array();
+
+ /**
* Constructor
*
* @param object $course A course object
@@ -208,6 +214,13 @@ public function init() {
ORDER BY $order";
$this->users_rs = $DB->get_recordset_sql($users_sql, $params);
+ if (!$this->onlyactive) {
+ $context = context_course::instance($this->course->id);
+ $this->suspendedusers = get_suspended_userids($context);
+ } else {
+ $this->suspendedusers = array();
+ }
+
if (!empty($this->grade_items)) {
$itemids = array_keys($this->grade_items);
list($itemidsql, $grades_params) = $DB->get_in_or_equal($itemids, SQL_PARAMS_NAMED, 'items');
@@ -300,6 +313,8 @@ public function next_user() {
}
}
+ // Set user suspended status.
+ $user->suspendedenrolment = isset($this->suspendedusers[$user->id]);
$result = new stdClass();
$result->user = $user;
$result->grades = $grades;
@@ -407,9 +422,14 @@ function grade_get_graded_users_select($report, $course, $userid, $groupid, $inc
if (is_null($userid)) {
$userid = $USER->id;
}
-
+ $coursecontext = context_course::instance($course->id);
+ $defaultgradeshowactiveenrol = !empty($CFG->grade_report_showonlyactiveenrol);
+ $showonlyactiveenrol = get_user_preferences('grade_report_showonlyactiveenrol', $defaultgradeshowactiveenrol);
+ $showonlyactiveenrol = $showonlyactiveenrol || !has_capability('moodle/course:viewsuspendedusers', $coursecontext);
$menu = array(); // Will be a list of userid => user name
+ $menususpendedusers = array(); // Suspended users go to a separate optgroup.
$gui = new graded_users_iterator($course, null, $groupid);
+ $gui->require_active_enrolment($showonlyactiveenrol);
$gui->init();
$label = get_string('selectauser', 'grades');
if ($includeall) {
@@ -418,12 +438,21 @@ function grade_get_graded_users_select($report, $course, $userid, $groupid, $inc
}
while ($userdata = $gui->next_user()) {
$user = $userdata->user;
- $menu[$user->id] = fullname($user);
+ $userfullname = fullname($user);
+ if ($user->suspendedenrolment) {
+ $menususpendedusers[$user->id] = $userfullname;
+ } else {
+ $menu[$user->id] = $userfullname;
+ }
}
$gui->close();
if ($includeall) {
- $menu[0] .= " (" . (count($menu) - 1) . ")";
+ $menu[0] .= " (" . (count($menu) + count($menususpendedusers) - 1) . ")";
+ }
+
+ if (!empty($menususpendedusers)) {
+ $menu[] = array(get_string('suspendedusers') => $menususpendedusers);
}
$select = new single_select(new moodle_url('/grade/report/'.$report.'/index.php', array('id'=>$course->id)), 'userid', $menu, $userid);
$select->label = $label;
View
12 grade/report/grader/lib.php
@@ -453,7 +453,7 @@ public function load_users() {
$this->userselect = "AND g.userid $usql";
$this->userselect_params = $uparams;
- //add a flag to each user indicating whether their enrolment is active
+ // Add a flag to each user indicating whether their enrolment is active.
$sql = "SELECT ue.userid
FROM {user_enrolments} ue
JOIN {enrol} e ON e.id = ue.enrolid
@@ -466,8 +466,16 @@ public function load_users() {
$params = array_merge($uparams, array('estatus'=>ENROL_INSTANCE_ENABLED, 'uestatus'=>ENROL_USER_ACTIVE, 'courseid'=>$coursecontext->instanceid));
$useractiveenrolments = $DB->get_records_sql($sql, $params);
+ $defaultgradeshowactiveenrol = !empty($CFG->grade_report_showonlyactiveenrol);
+ $showonlyactiveenrol = get_user_preferences('grade_report_showonlyactiveenrol', $defaultgradeshowactiveenrol);
+ $showonlyactiveenrol = $showonlyactiveenrol || !has_capability('moodle/course:viewsuspendedusers', $coursecontext);
foreach ($this->users as $user) {
- $this->users[$user->id]->suspendedenrolment = !array_key_exists($user->id, $useractiveenrolments);
+ // If we are showing only active enrolments, then remove suspended users from list.
+ if ($showonlyactiveenrol && !array_key_exists($user->id, $useractiveenrolments)) {
+ unset($this->users[$user->id]);
+ } else {
+ $this->users[$user->id]->suspendedenrolment = !array_key_exists($user->id, $useractiveenrolments);
+ }
}
}
View
3 grade/report/grader/preferences_form.php
@@ -99,6 +99,9 @@ function definition() {
// View capability is the lowest permission. Users with grade:manage or grade:edit must also have grader:view
if (has_capability('gradereport/grader:view', $context)) {
$preferences['prefgeneral']['studentsperpage'] = 'text';
+ if (has_capability('moodle/course:viewsuspendedusers', $context)) {
+ $preferences['prefgeneral']['showonlyactiveenrol'] = $checkbox_default;
+ }
$preferences['prefgeneral']['aggregationposition'] = array(GRADE_REPORT_PREFERENCE_DEFAULT => '*default*',
GRADE_REPORT_AGGREGATION_POSITION_FIRST => get_string('positionfirst', 'grades'),
GRADE_REPORT_AGGREGATION_POSITION_LAST => get_string('positionlast', 'grades'));
View
3 grade/report/grader/settings.php
@@ -35,6 +35,9 @@
$settings->add(new admin_setting_configtext('grade_report_studentsperpage', get_string('studentsperpage', 'grades'),
get_string('studentsperpage_help', 'grades'), 100));
+ $settings->add(new admin_setting_configcheckbox('grade_report_showonlyactiveenrol', get_string('showonlyactiveenrol', 'grades'),
+ get_string('showonlyactiveenrol_help', 'grades'), 1));
+
$settings->add(new admin_setting_configcheckbox('grade_report_quickgrading', get_string('quickgrading', 'grades'),
get_string('quickgrading_help', 'grades'), 1));
View
35 grade/report/outcomes/index.php
@@ -39,26 +39,43 @@
require_capability('gradereport/outcomes:view', $context);
-//first make sure we have proper final grades
+// First make sure we have proper final grades.
grade_regrade_final_grades($courseid);
-// Grab all outcomes used in course
+// Grab all outcomes used in course.
$report_info = array();
$outcomes = grade_outcome::fetch_all_available($courseid);
-// Get grade_items that use each outcome
+// Will exclude grades of suspended users if required.
+$defaultgradeshowactiveenrol = !empty($CFG->grade_report_showonlyactiveenrol);
+$showonlyactiveenrol = get_user_preferences('grade_report_showonlyactiveenrol', $defaultgradeshowactiveenrol);
+$showonlyactiveenrol = $showonlyactiveenrol || !has_capability('moodle/course:viewsuspendedusers', $context);
+if ($showonlyactiveenrol) {
+ $suspendedusers = get_suspended_userids($context);
+}
+
+// Get grade_items that use each outcome.
foreach ($outcomes as $outcomeid => $outcome) {
$report_info[$outcomeid]['items'] = $DB->get_records_select('grade_items', "outcomeid = ? AND courseid = ?", array($outcomeid, $courseid));
$report_info[$outcomeid]['outcome'] = $outcome;
- // Get average grades for each item
+ // Get average grades for each item.
if (is_array($report_info[$outcomeid]['items'])) {
foreach ($report_info[$outcomeid]['items'] as $itemid => $item) {
+ $params = array();
+ $hidesuspendedsql = '';
+ if ($showonlyactiveenrol && !empty($suspendedusers)) {
+ list($notinusers, $params) = $DB->get_in_or_equal($suspendedusers, SQL_PARAMS_QM, null, false);
+ $hidesuspendedsql = ' AND userid ' . $notinusers;
+ }
+ $params = array_merge(array($itemid), $params);
+
$sql = "SELECT itemid, AVG(finalgrade) AS avg, COUNT(finalgrade) AS count
FROM {grade_grades}
- WHERE itemid = ?
- GROUP BY itemid";
- $info = $DB->get_records_sql($sql, array($itemid));
+ WHERE itemid = ?".
+ $hidesuspendedsql.
+ "GROUP BY itemid";
+ $info = $DB->get_records_sql($sql, $params);
if (!$info) {
unset($report_info[$outcomeid]['items'][$itemid]);
@@ -86,7 +103,7 @@
$row = 0;
foreach ($report_info as $outcomeid => $outcomedata) {
$rowspan = count($outcomedata['items']);
- // If there are no items for this outcome, rowspan will equal 0, which is not good
+ // If there are no items for this outcome, rowspan will equal 0, which is not good.
if ($rowspan == 0) {
$rowspan = 1;
}
@@ -134,7 +151,7 @@
$items_html .= "<td class=\"cell c3\"> - </td><td class=\"cell c4\"> - </td><td class=\"cell c5\"> 0 </td></tr>\n";
}
- // Calculate outcome average
+ // Calculate outcome average.
if (is_array($outcomedata['items'])) {
$count = count($outcomedata['items']);
if ($count > 0) {
View
4 grade/report/user/index.php
@@ -101,8 +101,12 @@
$user_selector = true;
}
+ $defaultgradeshowactiveenrol = !empty($CFG->grade_report_showonlyactiveenrol);
+ $showonlyactiveenrol = get_user_preferences('grade_report_showonlyactiveenrol', $defaultgradeshowactiveenrol);
+ $showonlyactiveenrol = $showonlyactiveenrol || !has_capability('moodle/course:viewsuspendedusers', $context);
if (empty($userid)) {
$gui = new graded_users_iterator($course, null, $currentgroup);
+ $gui->require_active_enrolment($showonlyactiveenrol);
$gui->init();
// Add tabs
print_grade_page_head($courseid, 'report', 'user');
View
6 lang/en/grades.php
@@ -192,8 +192,8 @@
$string['exportfeedback'] = 'Include feedback in export';
$string['exportplugins'] = 'Export plugins';
$string['exportsettings'] = 'Export settings';
-$string['exportonlyactive'] = 'Require active enrolment';
-$string['exportonlyactive_help'] = 'Only include students in the export whose enrolment has not been suspended';
+$string['exportonlyactive'] = 'Exclude suspended users';
+$string['exportonlyactive_help'] = 'Only include students in the export whose enrolment is active and has not been suspended';
$string['exportto'] = 'Export to';
$string['extracreditvalue'] = 'Extra credit value for {$a}';
$string['extracreditwarning'] = 'Note: Setting all items for a category to extra credit will effectively remove them from the grade calculation. Since there will be no point total';
@@ -589,6 +589,8 @@
$string['shownooutcomes'] = 'Hide outcomes';
$string['shownumberofgrades'] = 'Show number of grades in averages';
$string['shownumberofgrades_help'] = 'If enabled, the number of grades used when calculating the average (mean) is displayed in brackets after each average.';
+$string['showonlyactiveenrol'] = 'Show only active enrolments';
+$string['showonlyactiveenrol_help'] = 'This setting determines, if only active enrolled users will be visible in gradebook report. If enabled suspended users will not be shown in gradebook.';
$string['showpercentage'] = 'Show percentage';
$string['showpercentage_help'] = 'Show the percentage value of each grade item?';
$string['showquickfeedback'] = 'Show quick feedback';
View
2 lang/en/moodle.php
@@ -1634,6 +1634,8 @@
$string['summary_help'] = 'The idea of a summary is a short text to prepare students for the activities within the topic or week. The text is shown on the course page under the section name.';
$string['summaryof'] = 'Summary of {$a}';
$string['supplyinfo'] = 'More details';
+$string['suspended'] = 'Suspended';
+$string['suspendedusers'] = 'Suspended users';
$string['switchdevicedefault'] = 'Switch to the standard theme';
$string['switchdevicerecommended'] = 'Switch to the recommended theme for your device';
$string['switchrolereturn'] = 'Return to my normal role';
View
1 lang/en/role.php
@@ -113,6 +113,7 @@
$string['course:bulkmessaging'] = 'Send a message to many people';
$string['course:create'] = 'Create courses';
$string['course:delete'] = 'Delete courses';
+$string['course:viewsuspendedusers'] = 'Can view suspended users.';
$string['course:changecategory'] = 'Change course category';
$string['course:changefullname'] = 'Change course full name';
$string['course:changeidnumber'] = 'Change course ID number';
View
69 lib/accesslib.php
@@ -2315,12 +2315,14 @@ function get_enrolled_sql(context $context, $withcapability = '', $groupid = 0,
* @param string $orderby
* @param int $limitfrom return a subset of records, starting at this point (optional, required if $limitnum is set).
* @param int $limitnum return a subset comprising this many records (optional, required if $limitfrom is set).
+ * @param bool $onlyactive consider only active enrolments in enabled plugins and time restrictions
* @return array of user records
*/
-function get_enrolled_users(context $context, $withcapability = '', $groupid = 0, $userfields = 'u.*', $orderby = null, $limitfrom = 0, $limitnum = 0) {
+function get_enrolled_users(context $context, $withcapability = '', $groupid = 0, $userfields = 'u.*', $orderby = null,
+ $limitfrom = 0, $limitnum = 0, $onlyactive = false) {
global $DB;
- list($esql, $params) = get_enrolled_sql($context, $withcapability, $groupid);
+ list($esql, $params) = get_enrolled_sql($context, $withcapability, $groupid, $onlyactive);
$sql = "SELECT $userfields
FROM {user} u
JOIN ($esql) je ON je.id = u.id
@@ -2346,12 +2348,13 @@ function get_enrolled_users(context $context, $withcapability = '', $groupid = 0
* @param context $context
* @param string $withcapability
* @param int $groupid 0 means ignore groups, any other value limits the result by group id
+ * @param bool $onlyactive consider only active enrolments in enabled plugins and time restrictions
* @return array of user records
*/
-function count_enrolled_users(context $context, $withcapability = '', $groupid = 0) {
+function count_enrolled_users(context $context, $withcapability = '', $groupid = 0, $onlyactive = false) {
global $DB;
- list($esql, $params) = get_enrolled_sql($context, $withcapability, $groupid);
+ list($esql, $params) = get_enrolled_sql($context, $withcapability, $groupid, $onlyactive);
$sql = "SELECT count(u.id)
FROM {user} u
JOIN ($esql) je ON je.id = u.id
@@ -7636,3 +7639,61 @@ function get_related_contexts_string(context $context) {
return (' ='.$context->id);
}
}
+
+/**
+ * Given context and array of users, returns array of users whose enrolment status is suspended,
+ * or enrolment has expired or has not started. Also removes those users from the given array
+ *
+ * @param context $context context in which suspended users should be extracted.
+ * @param array $users list of users.
+ * @param array $ignoreusers array of user ids to ignore, e.g. guest
+ * @return array list of suspended users.
+ */
+function extract_suspended_users($context, &$users, $ignoreusers=array()) {
+ global $DB;
+
+ // Get active enrolled users.
+ list($sql, $params) = get_enrolled_sql($context, null, null, true);
+ $activeusers = $DB->get_records_sql($sql, $params);
+
+ // Move suspended users to a separate array & remove from the initial one.
+ $susers = array();
+ if (sizeof($activeusers)) {
+ foreach ($users as $userid => $user) {
+ if (!array_key_exists($userid, $activeusers) && !in_array($userid, $ignoreusers)) {
+ $susers[$userid] = $user;
+ unset($users[$userid]);
+ }
+ }
+ }
+ return $susers;
+}
+
+/**
+ * Given context and array of users, returns array of user ids whose enrolment status is suspended,
+ * or enrolment has expired or not started.
+ *
+ * @param context $context context in which user enrolment is checked.
+ * @return array list of suspended user id's.
+ */
+function get_suspended_userids($context){
+ global $DB;
+
+ // Get all enrolled users.
+ list($sql, $params) = get_enrolled_sql($context);
+ $users = $DB->get_records_sql($sql, $params);
+
+ // Get active enrolled users.
+ list($sql, $params) = get_enrolled_sql($context, null, null, true);
+ $activeusers = $DB->get_records_sql($sql, $params);
+
+ $susers = array();
+ if (sizeof($activeusers) != sizeof($users)) {
+ foreach ($users as $userid => $user) {
+ if (!array_key_exists($userid, $activeusers)) {
+ $susers[$userid] = $userid;
+ }
+ }
+ }
+ return $susers;
+}
View
10 lib/db/access.php
@@ -1040,6 +1040,16 @@
)
),
+ 'moodle/course:viewsuspendedusers' => array(
+
+ 'captype' => 'read',
+ 'contextlevel' => CONTEXT_SYSTEM,
+ 'archetypes' => array(
+ 'editingteacher' => CAP_ALLOW,
+ 'manager' => CAP_ALLOW
+ )
+ ),
+
'moodle/blog:view' => array(
'captype' => 'read',
View
3 lib/upgrade.txt
@@ -43,6 +43,9 @@ information provided here is intended especially for developers.
course_category_show(), get_course_category(), create_course_category(), get_all_subcategories(),
get_child_categories(), get_categories()
* $core_renderer->block_move_target() changed to support more verbose move-block-here descriptions.
+* Additional (optional) param $onlyactive has been added to get_enrolled_users, count_enrolled_users
+ functions to get information for only active (excluding suspended enrolments) users. Included two
+ helper functions extract_suspended_users, get_suspended_userids to extract suspended user information.
Database (DML) layer:
* $DB->sql_empty() is deprecated, you have to use sql parameters with empty values instead,
View
2 version.php
@@ -29,7 +29,7 @@
defined('MOODLE_INTERNAL') || die();
-$version = 2013032800.00; // YYYYMMDD = weekly release date of this DEV branch
+$version = 2013032801.00; // YYYYMMDD = weekly release date of this DEV branch
// RR = release increments - 00 in DEV branches
// .XX = incremental changes

0 comments on commit 38c1dd1

Please sign in to comment.