data MDL-23488 made database activity respect availability and visibility dates
authorAndrew Davis <andrew@affinitysoftware.net>
Thu, 29 Jul 2010 03:26:02 +0000 (03:26 +0000)
committerAndrew Davis <andrew@affinitysoftware.net>
Thu, 29 Jul 2010 03:26:02 +0000 (03:26 +0000)
AMOS BEGIN
 CPY [expired,mod_choice],[expired,mod_data]
 CPY [notopenyet,mod_choice],[notopenyet,mod_data]
AMOS END

mod/data/lang/en/data.php
mod/data/lib.php
mod/data/view.php

index 88d2050..9ccaf3a 100755 (executable)
@@ -173,6 +173,7 @@ $string['checkbox'] = 'Checkbox';
 $string['chooseexportfields'] = 'Choose the fields you wish to export:';
 $string['chooseexportformat'] = 'Choose the format you wish to export to:';
 $string['chooseorupload'] = 'Choose file';
+$string['expired'] = 'Sorry, this activity closed on {$a} and is no longer available';
 $string['importsuccess'] = 'The preset has been successfully applied.';
 $string['insufficiententries'] = 'more entries needed to view this database';
 $string['intro'] = 'Introduction';
@@ -242,6 +243,7 @@ $string['norecords'] = 'No entries in database';
 $string['nosingletemplate'] = 'Single template is not yet defined';
 $string['notapproved'] = 'Entry is not approved yet.';
 $string['notinjectivemap'] = 'Not an injective map';
+$string['notopenyet'] = 'Sorry, this activity is not available until {$a}';
 $string['number'] = 'Number';
 $string['numberrssarticles'] = 'RSS articles';
 $string['numnotapproved'] = 'Pending';
index fa9ecb0..6ca7cdb 100755 (executable)
@@ -1946,6 +1946,12 @@ function data_user_can_add_entry($data, $currentgroup, $groupmode) {
         return false;
     }
 
+    //if in the view only time window
+    $now = time();
+    if ($now>$data->timeviewfrom && $now<$data->timeviewto) {
+        return false;
+    }
+
     if (!$groupmode or has_capability('moodle/site:accessallgroups', $context)) {
         return true;
     }
index 757405d..162ba89 100755 (executable)
     }
 
 
+//if data activity closed dont let students in
+if (!has_capability('mod/data:manageentries', $context)) {
+    $timenow = time();
+    if (!empty($data->timeavailablefrom) && $data->timeavailablefrom > $timenow) {
+        print_error('notopenyet', 'data', null, userdate($data->timeavailablefrom));
+    } else if (!empty($data->timeavailableto) && $timenow > $data->timeavailableto) {
+        print_error('expired', 'data', null, userdate($data->timeavailableto));
+    }
+}
 
 /// Print the tabs