Browse Source

Simplify user view page to make it better on small devices

* don't show user profile image
* don't show users name at top (already shown in header)
* Remove # column - not useful anyway.
* Combine date/time into single column.
* hide session type if viewing own report - students shouldn't care about session types.
MOODLE_32_STABLE
Dan Marsden 8 years ago
parent
commit
49b7ca4999
  1. 73
      renderer.php

73
renderer.php

@ -857,8 +857,16 @@ class mod_attendance_renderer extends plugin_renderer_base {
* @return string * @return string
*/ */
protected function render_attendance_user_data(attendance_user_data $userdata) { protected function render_attendance_user_data(attendance_user_data $userdata) {
global $USER;
$o = $this->render_user_report_tabs($userdata); $o = $this->render_user_report_tabs($userdata);
if ($USER->id == $userdata->user->id) {
$o .= $this->construct_user_data($userdata);
} else {
$table = new html_table(); $table = new html_table();
$table->attributes['class'] = 'userinfobox'; $table->attributes['class'] = 'userinfobox';
@ -868,6 +876,7 @@ class mod_attendance_renderer extends plugin_renderer_base {
$table->data[0][] = $this->construct_user_data($userdata); $table->data[0][] = $this->construct_user_data($userdata);
$o .= html_writer::table($table); $o .= html_writer::table($table);
}
return $o; return $o;
} }
@ -902,18 +911,18 @@ class mod_attendance_renderer extends plugin_renderer_base {
* @return string * @return string
*/ */
private function construct_user_data(attendance_user_data $userdata) { private function construct_user_data(attendance_user_data $userdata) {
global $PAGE; global $USER;
$o = '';
if ($USER->id <> $userdata->user->id) {
$o = html_writer::tag('h2', fullname($userdata->user)); $o = html_writer::tag('h2', fullname($userdata->user));
}
if ($userdata->pageparams->mode == mod_attendance_view_page_params::MODE_THIS_COURSE) { if ($userdata->pageparams->mode == mod_attendance_view_page_params::MODE_THIS_COURSE) {
$o .= $this->render_attendance_filter_controls($userdata->filtercontrols);
$o .= $this->construct_user_sessions_log($userdata);
$o .= html_writer::empty_tag('hr'); $o .= html_writer::empty_tag('hr');
$o .= construct_user_data_stat($userdata->summary->get_all_sessions_summary_for($userdata->user->id), $o .= construct_user_data_stat($userdata->summary->get_all_sessions_summary_for($userdata->user->id),
$userdata->pageparams->view); $userdata->pageparams->view);
$o .= $this->render_attendance_filter_controls($userdata->filtercontrols);
$o .= $this->construct_user_sessions_log($userdata);
} else { } else {
$prevcid = 0; $prevcid = 0;
$table = new html_table(); $table = new html_table();
@ -967,25 +976,38 @@ class mod_attendance_renderer extends plugin_renderer_base {
* @return string * @return string
*/ */
private function construct_user_sessions_log(attendance_user_data $userdata) { private function construct_user_sessions_log(attendance_user_data $userdata) {
global $OUTPUT; global $OUTPUT, $USER;
$context = context_module::instance($userdata->filtercontrols->cm->id); $context = context_module::instance($userdata->filtercontrols->cm->id);
$shortform = false;
if ($USER->id == $userdata->user->id) {
// This is a user viewing their own stuff - hide non-relevant columns.
$shortform = true;
}
$table = new html_table(); $table = new html_table();
$table->attributes['class'] = 'generaltable attwidth boxaligncenter'; $table->attributes['class'] = 'generaltable attwidth boxaligncenter';
$table->head = array( $table->head = array();
'#', $table->align = array();
get_string('sessiontypeshort', 'attendance'), $table->size = array();
get_string('date'), if (!$shortform) {
get_string('time'), $table->head[] = get_string('sessiontypeshort', 'attendance');
get_string('description', 'attendance'), $table->align[] = '';
get_string('status', 'attendance'), $table->size[] = '1px';
get_string('points', 'attendance'), }
get_string('remarks', 'attendance') $table->head[] = get_string('date');
); $table->head[] = get_string('description', 'attendance');
$table->align = array('', '', '', 'left', 'left', 'center', 'center', 'center'); $table->head[] = get_string('status', 'attendance');
$table->size = array('1px', '1px', '1px', '1px', '*', '*', '1px', '*'); $table->head[] = get_string('points', 'attendance');
$table->head[] = get_string('remarks', 'attendance');
$table->align = array_merge($table->align, array('', 'left', 'center', 'center', 'center'));
$table->size = array_merge($table->size, array('1px', '*', '*', '1px', '*'));
if (has_capability('mod/attendance:takeattendances', $context)) { if (has_capability('mod/attendance:takeattendances', $context)) {
$table->head[] = get_string('action'); $table->head[] = get_string('action');
$table->align[] = '';
$table->size[] = '';
} }
$statussetmaxpoints = attendance_get_statusset_maxpoints($userdata->statuses); $statussetmaxpoints = attendance_get_statusset_maxpoints($userdata->statuses);
@ -995,7 +1017,7 @@ class mod_attendance_renderer extends plugin_renderer_base {
$i++; $i++;
$row = new html_table_row(); $row = new html_table_row();
$row->cells[] = $i; if (!$shortform) {
if ($sess->groupid) { if ($sess->groupid) {
$sessiontypeshort = get_string('group') . ': ' . $userdata->groups[$sess->groupid]->name; $sessiontypeshort = get_string('group') . ': ' . $userdata->groups[$sess->groupid]->name;
} else { } else {
@ -1003,8 +1025,9 @@ class mod_attendance_renderer extends plugin_renderer_base {
} }
$row->cells[] = html_writer::tag('nobr', $sessiontypeshort); $row->cells[] = html_writer::tag('nobr', $sessiontypeshort);
$row->cells[] = userdate($sess->sessdate, get_string('strftimedmyw', 'attendance')); }
$row->cells[] = $this->construct_time($sess->sessdate, $sess->duration); $row->cells[] = userdate($sess->sessdate, get_string('strftimedmyw', 'attendance')) .
" ". $this->construct_time($sess->sessdate, $sess->duration);
$row->cells[] = $sess->description; $row->cells[] = $sess->description;
if (isset($sess->statusid)) { if (isset($sess->statusid)) {
$status = $userdata->statuses[$sess->statusid]; $status = $userdata->statuses[$sess->statusid];
@ -1015,12 +1038,12 @@ class mod_attendance_renderer extends plugin_renderer_base {
} else if ($sess->sessdate < $userdata->user->enrolmentstart) { } else if ($sess->sessdate < $userdata->user->enrolmentstart) {
$cell = new html_table_cell(get_string('enrolmentstart', 'attendance', $cell = new html_table_cell(get_string('enrolmentstart', 'attendance',
userdate($userdata->user->enrolmentstart, '%d.%m.%Y'))); userdate($userdata->user->enrolmentstart, '%d.%m.%Y')));
$cell->colspan = 2; $cell->colspan = 3;
$row->cells[] = $cell; $row->cells[] = $cell;
} else if ($userdata->user->enrolmentend and $sess->sessdate > $userdata->user->enrolmentend) { } else if ($userdata->user->enrolmentend and $sess->sessdate > $userdata->user->enrolmentend) {
$cell = new html_table_cell(get_string('enrolmentend', 'attendance', $cell = new html_table_cell(get_string('enrolmentend', 'attendance',
userdate($userdata->user->enrolmentend, '%d.%m.%Y'))); userdate($userdata->user->enrolmentend, '%d.%m.%Y')));
$cell->colspan = 2; $cell->colspan = 3;
$row->cells[] = $cell; $row->cells[] = $cell;
} else { } else {
if (attendance_can_student_mark($sess)) { if (attendance_can_student_mark($sess)) {
@ -1030,7 +1053,7 @@ class mod_attendance_renderer extends plugin_renderer_base {
$url = new moodle_url('/mod/attendance/attendance.php', $url = new moodle_url('/mod/attendance/attendance.php',
array('sessid' => $sess->id, 'sesskey' => sesskey())); array('sessid' => $sess->id, 'sesskey' => sesskey()));
$cell = new html_table_cell(html_writer::link($url, get_string('submitattendance', 'attendance'))); $cell = new html_table_cell(html_writer::link($url, get_string('submitattendance', 'attendance')));
$cell->colspan = 2; $cell->colspan = 3;
$row->cells[] = $cell; $row->cells[] = $cell;
} else { // Student cannot mark their own attendace. } else { // Student cannot mark their own attendace.
$row->cells[] = '?'; $row->cells[] = '?';

Loading…
Cancel
Save