Fixes #87 show a useful error when form submitted incorrectly.
authorDan Marsden <dan@danmarsden.com>
Mon, 4 May 2015 03:00:48 +0000 (15:00 +1200)
committerBarry Oosthuizen <barry.oosthuizen@nottingham.ac.uk>
Wed, 29 Jul 2015 11:33:03 +0000 (12:33 +0100)
lang/en/attendance.php
renderer.php
sessions.php

index 68f5477..60788fd 100644 (file)
@@ -126,6 +126,7 @@ $string['includenottaken'] = 'Include not taken sessions';
 $string['includeremarks'] = 'Include remarks';
 $string['indetail'] = 'In detail...';
 $string['invalidsessionenddate'] = 'The session end date can not be earlier than the session start date';
+$string['invalidaction'] = 'You must select an action';
 $string['jumpto'] = 'Jump to';
 $string['modulename'] = 'Attendance';
 $string['modulename_help'] = 'The attendance activity module enables a teacher to take attendance during class and students to view their own attendance record.
index 7138e15..7e77a0f 100644 (file)
@@ -294,6 +294,9 @@ class mod_attendance_renderer extends plugin_renderer_base {
             $options = array(
                         att_sessions_page_params::ACTION_DELETE_SELECTED => get_string('delete'),
                         att_sessions_page_params::ACTION_CHANGE_DURATION => get_string('changeduration', 'attendance'));
+
+
+
             $controls = html_writer::select($options, 'action');
             $attributes = array(
                     'type'  => 'submit',
index f44d060..1bc08f5 100644 (file)
@@ -33,6 +33,13 @@ $pageparams = new att_sessions_page_params();
 $id                     = required_param('id', PARAM_INT);
 $pageparams->action     = required_param('action', PARAM_INT);
 
+if (empty($pageparams->action)) {
+    // The form on manage.php can submit with the "choose" option - this should be fixed in the long term,
+    // but in the meantime show a useful error and redirect when it occurs.
+    $url = new moodle_url('/mod/attendance/view.php', array('id' => $id));
+    redirect($url, get_string('invalidaction', 'mod_attendance'), 2);
+}
+
 $cm             = get_coursemodule_from_id('attendance', $id, 0, false, MUST_EXIST);
 $course         = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
 $att            = $DB->get_record('attendance', array('id' => $cm->instance), '*', MUST_EXIST);