public function get_users($groupid = 0, $page = 1) {
global $DB, $CFG;
- // Fields we need from the user table.
- $userfields = user_picture::fields('u', array('username' , 'idnumber' , 'institution' , 'department'));
+ $fields = array('username' , 'idnumber' , 'institution' , 'department');
+ // Get user identity fields if required - doesn't return original $fields array.
+ $extrafields = get_extra_user_fields($this->context, $fields);
+ $fields = array_merge($fields, $extrafields);
+
+ $userfields = user_picture::fields('u',$fields);
if (empty($this->pageparams->sort)) {
$this->pageparams->sort = ATT_SORT_DEFAULT;
}
protected function render_attendance_take_list(attendance_take_data $takedata) {
- global $PAGE;
+ global $PAGE, $CFG;
$table = new html_table();
$table->width = '0%';
$table->head = array(
$table->align = array('left', 'left');
$table->size = array('20px', '');
$table->wrap[1] = 'nowrap';
+ // Check if extra useridentity fields need to be added.
+ $extrasearchfields = array();
+ if (!empty($CFG->showuseridentity) && has_capability('moodle/site:viewuseridentity', $takedata->att->context)) {
+ $extrasearchfields = explode(',', $CFG->showuseridentity);
+ }
+ foreach ($extrasearchfields as $field) {
+ $table->head[] = get_string($field);
+ $table->align[] = 'left';
+ }
foreach ($takedata->statuses as $st) {
$table->head[] = html_writer::link("#", $st->acronym, array('id' => 'checkstatus'.$st->id,
'title' => get_string('setallstatusesto', 'attendance', $st->description)));
// Show a 'select all' row of radio buttons.
$row = new html_table_row();
$row->cells[] = '';
+ foreach ($extrasearchfields as $field) {
+ $row->cells[] = '';
+ }
$row->cells[] = html_writer::div(get_string('setallstatuses', 'attendance'), 'setallstatuses');
foreach ($takedata->statuses as $st) {
$attribs = array(
$fullname .= $ucdata['warning'];
}
$row->cells[] = $fullname;
+ foreach ($extrasearchfields as $field) {
+ $row->cells[] = $user->$field;
+ }
if (array_key_exists('colspan', $ucdata)) {
$cell = new html_table_cell($ucdata['text']);
$table->attributes['class'] = 'generaltable attwidth attreport';
$userrows = $this->get_user_rows($reportdata);
+
if ($reportdata->pageparams->view == ATT_VIEW_SUMMARY) {
$sessionrows = array();
} else {
$row = new html_table_row();
$row->cells[] = $this->build_header_cell('');
$row->cells[] = $this->build_header_cell($this->construct_fullname_head($reportdata), false, false);
+
+ $extrafields = get_extra_user_fields($reportdata->att->context);
+ foreach ($extrafields as $field) {
+ $row->cells[] = $this->build_header_cell(get_string($field), false, false);
+ }
+
$rows[] = $row;
+
foreach ($reportdata->users as $user) {
$row = new html_table_row();
$row->cells[] = $this->build_data_cell($this->user_picture($user));
$text = html_writer::link($reportdata->url_view(array('studentid' => $user->id)), fullname($user));
$row->cells[] = $this->build_data_cell($text, false, false, null, null, false);
+ foreach ($extrafields as $field) {
+ $row->cells[] = $this->build_data_cell($user->$field, false, false);
+ }
$rows[] = $row;
}