From b3e5bda76132e65e19cbd525652c2a5636419e0c Mon Sep 17 00:00:00 2001 From: Luis Ramon Lopez Date: Tue, 18 Jan 2011 20:07:12 +0100 Subject: [PATCH] Implemented fast session switching for same-day sessions. If there is more than one session on the same day, when taking attendance a dropdown list will allow to switch over sessions easily. Also fixed some XHTML compliance tags. --- CHANGES | 11 ++++++++++ attendances.php | 22 +++++++++++++++---- lang/en_utf8/attforblock.php | 2 ++ lang/es_utf8/attforblock.php | 2 ++ .../attforblock/createmultiplesessions.html | 2 +- lang/es_utf8/help/attforblock/report.html | 2 +- .../help/attforblock/updateattendance.html | 2 +- styles.php | 22 +++++++++++++++++++ 8 files changed, 58 insertions(+), 7 deletions(-) diff --git a/CHANGES b/CHANGES index 022cc9d..539e39a 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,14 @@ +2011-01-18 lrlopez + + * attendances.php: styles.php: + + Implemented fast session switching for same-day sessions. + Fixed some XHTML compliance tags (more coming) + + * lang/: en_utf8/attforblock.php, es_utf8/attforblock.php: + + Added new strings for the dropdown menus. + 2011-01-16 lrlopez * export.php: export_form.php: diff --git a/attendances.php b/attendances.php index ee62c22..e4ec70f 100644 --- a/attendances.php +++ b/attendances.php @@ -107,12 +107,26 @@ $attforblockrecord = get_record('attforblock', 'id', $cm->instance);//'course', $course->id);'course', $course->id); $view = optional_param('view', get_user_preferences("attforblock_viewmode", SORTEDLISTVIEW), PARAM_INT); $gridcols = optional_param('gridcols', get_user_preferences("attforblock_gridcolumns",5), PARAM_INT); - echo '
'; + echo ''; //echo '
'; $options = array (SORTEDLISTVIEW => get_string('sortedlist','attforblock'), SORTEDGRIDVIEW => get_string('sortedgrid','attforblock')); - $data = "attendances.php?id=$id&sessionid=$sessionid&grouptype=$grouptype&gridcols=$gridcols"; + $data = "attendances.php?id=$id&grouptype=$grouptype&gridcols=$gridcols"; if ($group!=-1) { $data = $data . "&group=$group"; } + $today = usergetmidnight($sessdata->sessdate); + $select = "sessdate>={$today} AND sessdate<{$today}+86400 AND attendanceid={$cm->instance}"; + $sessions = get_records_select('attendance_sessions', $select, 'sessdate ASC'); + $optionssesions = array(); + if (count($sessions)>1) { + echo '
"; + } + $data .= "&sessionid=$sessionid"; + echo '
"; + foreach($sessions as $sessdatarow) { + $optionssessions[$sessdatarow->id] = userdate($sessdatarow->sessdate, get_string('strftimehm', 'attforblock')) . "-" . userdate($sessdatarow->sessdate+$sessdata->duration, get_string('strftimehm', 'attforblock')); + } + popup_form("$data&sessionid=", $optionssessions, 'fastsessionmenu', $sessionid, ''); + echo "
"; popup_form("$data&view=", $options, 'viewmenu', $view, ''); if ($view == SORTEDGRIDVIEW) { set_user_preference("attforblock_viewmode", $view); @@ -127,7 +141,7 @@ } popup_form("$data&gridcols=", $options, 'colsmenu', $gridcols, ''); } - echo ''; + echo '
';//
'; if ($grouptype === 0) { if ($currentgroup) { $students = get_users_by_capability($context, 'moodle/legacy:student', '', "u.$sort ASC", '', '', $currentgroup, '', false); @@ -163,7 +177,7 @@ } $i++; } - if ($view == 0) { + if ($view == SORTEDLISTVIEW) { $tabhead[] = get_string('remarks','attforblock'); } diff --git a/lang/en_utf8/attforblock.php b/lang/en_utf8/attforblock.php index 2b88002..e59f567 100644 --- a/lang/en_utf8/attforblock.php +++ b/lang/en_utf8/attforblock.php @@ -76,6 +76,7 @@ $string['identifyby'] = 'Identify student by'; $string['includeall'] = 'Select all sessions'; $string['includenottaken'] = 'Include not taken sessions'; $string['indetail'] = 'In detail...'; +$string['jumpto'] = 'Jump to'; $string['moduledescription'] = 'You can add only one module Attendance per course.
Removal of this module will not entail removal of the data!'; $string['modulename'] = 'Attendance'; $string['modulenameplural'] = 'Attendances'; @@ -138,6 +139,7 @@ $string['update'] = 'Update'; $string['variable'] = 'variable'; $string['variablesupdated'] = 'Variables successfully updated'; $string['versionforprinting'] = 'version for printing'; +$string['viewmode'] = 'View mode'; $string['week'] = 'week(s)'; $string['weeks'] = 'Weeks'; $string['youcantdo'] = 'You can\'t do anything'; diff --git a/lang/es_utf8/attforblock.php b/lang/es_utf8/attforblock.php index fa5d891..9b284e1 100644 --- a/lang/es_utf8/attforblock.php +++ b/lang/es_utf8/attforblock.php @@ -76,6 +76,7 @@ $string['identifyby'] = 'Identificar estudiantes por'; $string['includeall'] = 'Seleccionar todas las sesiones'; $string['includenottaken'] = 'Incluir sesiones no registradas'; $string['indetail'] = 'En detalle...'; +$string['jumpto'] = 'Saltar a'; $string['moduledescription'] = 'Sólo se puede agregar una actividad \"Asistencia\" por curso.
Si se elimina esta actividad, los datos de la base de datos no se verán afectados, así que reaparecerán en caso de volver a agregar nuevamente la actividad.'; $string['modulename'] = 'Asistencia'; $string['modulenameplural'] = 'Asistencias'; @@ -138,6 +139,7 @@ $string['update'] = 'Actualizar'; $string['variable'] = 'variable'; $string['variablesupdated'] = 'Variables actualizadas con éxito'; $string['versionforprinting'] = 'versión para Imprimir'; +$string['viewmode'] = 'Visualización'; $string['week'] = 'semana(s)'; $string['weeks'] = 'Semanal'; $string['youcantdo'] = 'Usted no puede hacer nada'; diff --git a/lang/es_utf8/help/attforblock/createmultiplesessions.html b/lang/es_utf8/help/attforblock/createmultiplesessions.html index 19e9c11..c2ecc53 100644 --- a/lang/es_utf8/help/attforblock/createmultiplesessions.html +++ b/lang/es_utf8/help/attforblock/createmultiplesessions.html @@ -2,7 +2,7 @@

Crear Múltiples Sesiones

Esta función le permite crear múltiples sesiones en un único paso.
- Fecha de Inicio de Sesión: seleccione la fecha de inicio de su curso asignatura + Fecha de Inicio de Sesión: seleccione la fecha de inicio de su curso o asignatura (el primer día de clase).
Fecha de Fin de Sesión: indique aquí el último día de clase (el último día en que usted quiera tomar asistencia).
Días de Sesión: Seleccione los días de la semana en los que tenga clase.
diff --git a/lang/es_utf8/help/attforblock/report.html b/lang/es_utf8/help/attforblock/report.html index 82cb49b..d653085 100644 --- a/lang/es_utf8/help/attforblock/report.html +++ b/lang/es_utf8/help/attforblock/report.html @@ -2,4 +2,4 @@

Informe

Modifique la forma en que se visualizan los datos de asistencia ajustando los parámetros. Los datos también pueden ser descargados para una visualización sin conexión y analizarlos mediante el menú desplegable de "Informe" -que puede encontrar en la pestaña "exportar".



Informe individual: Si lo desea, también puede hacer click sobre el nombre del estudiante para poder ver un informe individualizado de su asistencia. En este sitio dispondrá de una opción para imprimir su informe personal o también podrá visualizar la asistencia del estudiante en todos los cursos en los que se encuentra matriculado (rol).

+que puede encontrar en la pestaña "exportar".

Informe individual: Si lo desea, también puede hacer click sobre el nombre del estudiante para poder ver un informe individualizado de su asistencia. En este sitio dispondrá de una opción para imprimir su informe personal o también podrá visualizar la asistencia del estudiante en todos los cursos en los que se encuentra matriculado (rol).

diff --git a/lang/es_utf8/help/attforblock/updateattendance.html b/lang/es_utf8/help/attforblock/updateattendance.html index fb2f8ee..f69d3f9 100644 --- a/lang/es_utf8/help/attforblock/updateattendance.html +++ b/lang/es_utf8/help/attforblock/updateattendance.html @@ -1,3 +1,3 @@

Asistencia

Actualizar asistencia

-

Desde aquí podrá marcar los datos de asistencia de su grupo de estudiantes. Puede hacerlo individualmente o en bloque. Para asignar a todos sus alumnos el mismo valor, puede seleccionar la letra que figura en el encabezado de cada columna (P, J, T...) y luego modificar individualmente algún dato concreto. Al final del listado encontrará el botón "ok" (puede acceder rápidamente pulsando la tecla Fin de su teclado) que grabará los resultados. Puede modificar los valores en cualquier momento accediendo nuevamente la asistencia de este día/hora. Junto a cada registro encontrará una caja de texto que le permitirá anotar observaciones personalizadas para cada estudiante.



Informe individual: Si lo desea, también puede hacer click sobre el nombre del estudiante para poder ver un informe individualizado de su asistencia. En este sitio dispondrá de una opción para imprimir su informe personal o también podrá visualizar la asistencia del estudiante en todos los cursos en los que se encuentra matriculado (rol).

+

Desde aquí podrá marcar los datos de asistencia de su grupo de estudiantes. Puede hacerlo individualmente o en bloque. Para asignar a todos sus alumnos el mismo valor, puede seleccionar la letra que figura en el encabezado de cada columna (P, J, T...) y luego modificar individualmente algún dato concreto. Al final del listado encontrará el botón "ok" (puede acceder rápidamente pulsando la tecla Fin de su teclado) que grabará los resultados. Puede modificar los valores en cualquier momento accediendo nuevamente la asistencia de este día/hora. Junto a cada registro encontrará una caja de texto que le permitirá anotar observaciones personalizadas para cada estudiante.

Informe individual: Si lo desea, también puede hacer click sobre el nombre del estudiante para poder ver un informe individualizado de su asistencia. En este sitio dispondrá de una opción para imprimir su informe personal o también podrá visualizar la asistencia del estudiante en todos los cursos en los que se encuentra matriculado (rol).

diff --git a/styles.php b/styles.php index 57e109b..de8e8df 100644 --- a/styles.php +++ b/styles.php @@ -26,6 +26,28 @@ width:90%; } +body#mod-attforblock-attendances table.controls { + width: 100%; +} + +body#mod-attforblock-attendances table.controls { + width: 100%; +} + +body#mod-attforblock-attendances table.controls tr { + vertical-align: top; +} + +body#mod-attforblock-attendances table.controls td.right, body#mod-attforblock-attendances table.controls td.left { + padding-bottom: 4px; + padding-left: 4px; + padding-right: 4px; + padding-top: 4px; +} + +body#mod-attforblock-attendances table.controls .right { + text-align: right; +} /* for IE7*/ .attfiltercontrols td { padding:6px;