From 582387d800dbd2f0a967497e9be8d3d6a66940ed Mon Sep 17 00:00:00 2001 From: Artem Andreev Date: Sat, 10 Sep 2011 16:55:20 +0400 Subject: [PATCH] Removed restriction on taking attendance for users who enrolled in course after end of session. Instead of this, warning about date of student enrollment displayed on the take attendance page. --- renderer.php | 52 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/renderer.php b/renderer.php index 81af246..60db004 100644 --- a/renderer.php +++ b/renderer.php @@ -372,18 +372,24 @@ class mod_attforblock_renderer extends plugin_renderer_base { $row = new html_table_row(); $row->cells[] = $i; $fullname = html_writer::link($takedata->url_view(array('studentid' => $user->id)), fullname($user)); - $row->cells[] = $this->output->user_picture($user).$fullname; + $fullname = $this->output->user_picture($user).$fullname; - $celldata = $this->construct_take_user_controls($takedata, $user); - if (array_key_exists('colspan', $celldata)) { - $cell = new html_table_cell($celldata['text']); - $cell->colspan = $celldata['colspan']; + $ucdata = $this->construct_take_user_controls($takedata, $user); + if (array_key_exists('warning', $ucdata)) { + $fullname .= html_writer::empty_tag('br'); + $fullname .= $ucdata['warning']; + } + $row->cells[] = $fullname; + + if (array_key_exists('colspan', $ucdata)) { + $cell = new html_table_cell($ucdata['text']); + $cell->colspan = $ucdata['colspan']; $row->cells[] = $cell; } else - $row->cells = array_merge($row->cells, $celldata['text']); + $row->cells = array_merge($row->cells, $ucdata['text']); - if (array_key_exists('class', $celldata)) $row->attributes['class'] = $celldata['class']; + if (array_key_exists('class', $ucdata)) $row->attributes['class'] = $ucdata['class']; $table->data[] = $row; } @@ -413,11 +419,15 @@ class mod_attforblock_renderer extends plugin_renderer_base { $fullname = html_writer::link($takedata->url_view(array('studentid' => $user->id)), fullname($user)); $celltext .= html_writer::tag('span', $fullname, array('class' => 'fullname')); $celltext .= html_writer::empty_tag('br'); - $celldata = $this->construct_take_user_controls($takedata, $user); - $celltext .= is_array($celldata['text']) ? implode('', $celldata['text']) : $celldata['text']; + $ucdata = $this->construct_take_user_controls($takedata, $user); + $celltext .= is_array($ucdata['text']) ? implode('', $ucdata['text']) : $ucdata['text']; + if (array_key_exists('warning', $ucdata)) { + $celltext .= html_writer::empty_tag('br'); + $celltext .= $ucdata['warning']; + } $cell = new html_table_cell($celltext); - if (array_key_exists('class', $celldata)) $cell->attributes['class'] = $celldata['class']; + if (array_key_exists('class', $ucdata)) $cell->attributes['class'] = $ucdata['class']; $row->cells[] = $cell; $i++; @@ -455,12 +465,7 @@ class mod_attforblock_renderer extends plugin_renderer_base { private function construct_take_user_controls(attforblock_take_data $takedata, $user) { $celldata = array(); - if ($user->enrolmentstart > $takedata->sessioninfo->sessdate) { - $celldata['text'] = get_string('enrolmentstart', 'attforblock', userdate($user->enrolmentstart, '%d.%m.%Y')); - $celldata['colspan'] = count($takedata->statuses) + 1; - $celldata['class'] = 'userwithoutenrol'; - } - elseif ($user->enrolmentend and $user->enrolmentend < $takedata->sessioninfo->sessdate) { + if ($user->enrolmentend and $user->enrolmentend < $takedata->sessioninfo->sessdate) { $celldata['text'] = get_string('enrolmentend', 'attforblock', userdate($user->enrolmentend, '%d.%m.%Y')); $celldata['colspan'] = count($takedata->statuses) + 1; $celldata['class'] = 'userwithoutenrol'; @@ -486,11 +491,11 @@ class mod_attforblock_renderer extends plugin_renderer_base { $params['checked'] = ''; $input = html_writer::empty_tag('input', $params); - if ($takedata->pageparams->viewmode == att_take_page_params::SORTED_LIST) - $celldata['text'][] = $input; - else { - $celldata['text'][] = html_writer::tag('nobr', $input . $st->acronym); - } + + if ($takedata->pageparams->viewmode == att_take_page_params::SORTED_GRID) + $input = html_writer::tag('nobr', $input . $st->acronym); + + $celldata['text'][] = $input; } $params = array( 'type' => 'text', @@ -498,6 +503,11 @@ class mod_attforblock_renderer extends plugin_renderer_base { if (array_key_exists($user->id, $takedata->sessionlog)) $params['value'] = $takedata->sessionlog[$user->id]->remarks; $celldata['text'][] = html_writer::empty_tag('input', $params); + + if ($user->enrolmentstart > $takedata->sessioninfo->sessdate + $takedata->sessioninfo->duration) { + $celldata['warning'] = get_string('enrolmentstart', 'attforblock', userdate($user->enrolmentstart, '%H:%M %d.%m.%Y')); + $celldata['class'] = 'userwithoutenrol'; + } } return $celldata;