Feature: Prevent students from sharing device while self-marking.
[moodle-mod_attendance.git] / add_form.php
index 756bb02..3fef14a 100644 (file)
@@ -241,6 +241,26 @@ class mod_attendance_add_form extends moodleform {
 
             $mform->hideif('subnetgrp', 'studentscanmark', 'notchecked');
             $mform->hideif('subnet', 'usedefaultsubnet', 'checked');
+
+            $mgroup3 = array();
+            $mgroup3[] = & $mform->createElement('checkbox', 'preventsharedip', '');
+            $mgroup3[] = & $mform->createElement('text', 'preventsharediptime',
+                get_string('preventsharediptime', 'attendance'), '', 'test');
+            $mgroup3[] = & $mform->createElement('static', 'preventsharediptimedesc', '',
+                get_string('preventsharedipminutes', 'attendance'));
+            $mform->addGroup($mgroup3, 'preventsharedgroup', get_string('preventsharedip', 'attendance'), array(' '), false);
+            $mform->addHelpButton('preventsharedgroup', 'preventsharedip', 'attendance');
+            $mform->setAdvanced('preventsharedgroup');
+            $mform->setType('preventsharediptime', PARAM_INT);
+            $mform->hideif('preventsharedgroup', 'studentscanmark', 'notchecked');
+            $mform->disabledIf('preventsharediptime', 'preventsharedip', 'notchecked');
+            if (isset($pluginconfig->preventsharedip)) {
+                $mform->setDefault('preventsharedip', $pluginconfig->preventsharedip);
+            }
+            if (isset($pluginconfig->preventsharediptime)) {
+                $mform->setDefault('preventsharediptime', $pluginconfig->preventsharediptime);
+            }
+
         } else {
             $mform->addElement('hidden', 'studentscanmark', '0');
             $mform->settype('studentscanmark', PARAM_INT);
@@ -251,6 +271,13 @@ class mod_attendance_add_form extends moodleform {
 
             $mform->addElement('hidden', 'subnet', '');
             $mform->setType('subnet', PARAM_TEXT);
+
+            $mform->addElement('hidden', 'preventsharedip', '0');
+            $mform->setType('preventsharedip', PARAM_INT);
+
+            $sharedtime = isset($pluginconfig->preventsharediptime) ? $pluginconfig->preventsharediptime : null;
+            $mform->addElement('hidden', 'preventsharediptime', $sharedtime);
+            $mform->setType('preventsharediptime', PARAM_INT);
         }
 
         $this->add_action_buttons(true, get_string('add', 'attendance'));
@@ -313,6 +340,11 @@ class mod_attendance_add_form extends moodleform {
             }
         }
 
+        if (!empty($data['studentscanmark']) && !empty($data['preventsharedip']) &&
+                empty($data['preventsharediptime'])) {
+            $errors['preventsharedgroup'] = get_string('iptimemissing', 'attendance');
+
+        }
         return $errors;
     }