diff --git a/pix/key.svg b/pix/key.svg
new file mode 100644
index 0000000..0d3f3d9
--- /dev/null
+++ b/pix/key.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/renderer.php b/renderer.php
index 7e77b61..01e462d 100644
--- a/renderer.php
+++ b/renderer.php
@@ -257,8 +257,8 @@ class mod_attendance_renderer extends plugin_renderer_base {
get_string('actions'),
html_writer::checkbox('cb_selector', 0, false, '', array('id' => 'cb_selector'))
);
- $table->align = array('', 'right', '', '', 'left', 'center', 'center');
- $table->size = array('1px', '1px', '1px', '', '*', '110px', '1px');
+ $table->align = array('', 'right', '', '', 'left', 'right', 'center');
+ $table->size = array('1px', '1px', '1px', '', '*', '120px', '1px');
$i = 0;
foreach ($sessdata->sessions as $key => $sess) {
@@ -300,6 +300,18 @@ class mod_attendance_renderer extends plugin_renderer_base {
*/
private function construct_date_time_actions(attendance_manage_data $sessdata, $sess) {
$actions = '';
+ if (!empty($sess->studentpassword) &&
+ (has_capability('mod/attendance:manageattendances', $sessdata->att->context) ||
+ has_capability('mod/attendance:takeattendances', $sessdata->att->context) ||
+ has_capability('mod/attendance:changeattendances', $sessdata->att->context))) {
+
+ $icon = new pix_icon('key', '', 'attendance');
+ $attributes = array("class" => "btn-link p-a-0", "role" => "button",
+ "data-toggle" => "popover", "data-placement" => "left", "data-html" => "true",
+ "tabindex" => "0", "data-trigger" => "manual");
+ $attributes['data-content'] = html_writer::span($sess->studentpassword, 'student-pass');
+ $actions .= html_writer::tag('a', $this->output->render($icon), $attributes);
+ }
$date = userdate($sess->sessdate, get_string('strftimedmyw', 'attendance'));
$time = $this->construct_time($sess->sessdate, $sess->duration);
@@ -311,7 +323,7 @@ class mod_attendance_renderer extends plugin_renderer_base {
$date = html_writer::link($url, $date, array('title' => $title));
$time = html_writer::link($url, $time, array('title' => $title));
- $actions = $this->output->action_icon($url, new pix_icon('redo', $title, 'attendance'));
+ $actions .= $this->output->action_icon($url, new pix_icon('redo', $title, 'attendance'));
} else {
$date = '' . $date . '';
$time = '' . $time . '';
@@ -320,7 +332,7 @@ class mod_attendance_renderer extends plugin_renderer_base {
if (has_capability('mod/attendance:takeattendances', $sessdata->att->context)) {
$url = $sessdata->url_take($sess->id, $sess->groupid);
$title = get_string('takeattendance', 'attendance');
- $actions = $this->output->action_icon($url, new pix_icon('t/go', $title));
+ $actions .= $this->output->action_icon($url, new pix_icon('t/go', $title));
}
}
diff --git a/styles.css b/styles.css
index 5c4ed93..f79d923 100644
--- a/styles.css
+++ b/styles.css
@@ -186,3 +186,6 @@
.path-mod-attendance .attreport .narrow {
width: 1px;
}
+.path-mod-attendance .student-pass {
+ font-size: x-large;
+}