# This patch file was generated by NetBeans IDE
# This patch can be applied using context Tools: Apply Diff Patch action on respective folder.
# It uses platform neutral UTF-8 encoding.
# Above lines and this line are ignored by the patching process.
Index: moodle/admin/environment.xml
--- moodle/admin/environment.xml Base (1.18.2.8)
+++ moodle/admin/environment.xml Locally Modified (Based On 1.18.2.8)
@@ -128,6 +128,10 @@
         </FEEDBACK>
       </PHP_EXTENSION>
     </PHP_EXTENSIONS>
+    <CUSTOM_CHECKS>
+      <CUSTOM_CHECK file="mod/data/lib.php" function="check_required_entries_fields" level="optional">
+      </CUSTOM_CHECK>
+     </CUSTOM_CHECKS>
   </MOODLE>
   <MOODLE version="1.9">
     <UNICODE level="required">
Index: moodle/lang/en_utf8/admin.php
--- moodle/lang/en_utf8/admin.php Base (1.103.2.28)
+++ moodle/lang/en_utf8/admin.php Locally Modified (Based On 1.103.2.28)
@@ -494,6 +494,8 @@
 $string['releasenoteslink'] = 'For information about this version of Moodle, please see the online <a target=\"_new\" href=\"$a\">Release Notes</a>';
 $string['remotelangnotavailable'] = 'Because Moodle can not connect to download.moodle.org, we are unable to do language pack installation automatically. Please download the appropriate zip file(s) from the list below, copy them to your $a directory and unzip them manually.';
 $string['renameerrors'] = 'Errors in renames';
+$string['requiredentrieschanged'] = '<strong>IMPORTANT - PLEASE READ</strong><br/>Due to a bug fix, the behaviour of database activities using the \'Required entries\' and \'Required entries before viewing settings\' settings will change. A more detailed explaination of the changes can be read on <a href=\"http://moodle.org/mod/forum/discuss.php?d=110928\">the database module forum</a> and <a href=\"http://docs.moodle.org/en/Adding/editing_a_database#Required_entries\">Moodle Docs</a>.
+<br/><br/>This change affects the following databases in your system: (Please save this list now, and after the upgrade, check that these activities still work the way that the teacher intends.)<br/><strong style=\"color:red\">$a->text</strong><br/>';
 $string['restrictbydefault'] = 'Restrict modules by default';
 $string['restrictmodulesfor'] = 'Restrict modules for';
 $string['riskconfig'] = 'Users could change site configuration and behaviour';
Index: moodle/lang/en_utf8/data.php
--- moodle/lang/en_utf8/data.php Base (1.50.2.4)
+++ moodle/lang/en_utf8/data.php Locally Modified (Based On 1.50.2.4)
@@ -71,7 +71,8 @@
 $string['emptyadd'] = 'The Add template is empty, generating a default form...';
 $string['emptyaddform'] = 'You did not fill out any fields!';
 $string['entries'] = 'Entries';
-$string['entrieslefttoadd'] = 'You must add $a->entriesleft more entry/entries before you can view other participants\' entries.';
+$string['entrieslefttoaddtoview'] = 'You must add $a->entrieslefttoview more entry/entries before you can view other participants\' entries.';
+$string['entrieslefttoadd'] = 'You must add $a->entriesleft more entry/entries in order to complete this activity';
 $string['entry'] = 'Entry';
 $string['entrysaved'] = 'Your entry has been saved';
 $string['errormustbeteacher'] = 'You need to be a teacher to use this page!';
Index: moodle/mod/data/lib.php
--- moodle/mod/data/lib.php Base (1.113.2.10)
+++ moodle/mod/data/lib.php Locally Modified (Based On 1.113.2.10)
@@ -1878,4 +1878,40 @@
 
     return 'Does it disturb you that this code will never run?';
 }
+
+/**
+ * Check if both of database required entries fields have been set for a version anterior to 2007101532
+ * This check has been required by the bug MDL-16999
+ * @global <type> $CFG
+ * @param <type> $result
+ * @return object status
+ */
+function check_required_entries_fields($result) {
+    global $CFG;
+    if (!empty($CFG->version)                                          //we are not installing a new Moodle site
+        && $CFG->version < 2007021572                          //the version is anterior to the one when the fix has been applied
+        && !get_config("data","requiredentriesfixflag")) {   //do not show message when upgrading an anterior version when the patch has already been applied
+        set_config("requiredentriesfixflag",true, "data"); //set a flag into database in order to let know a Moodle 1.9 upgrade that the message has already been displayed
+        $databases = get_records_sql("SELECT d.*, c.fullname
+                                    FROM {$CFG->prefix}data d,
+                                         {$CFG->prefix}course c
+                                    WHERE d.course = c.id
+                                    ORDER BY c.fullname, d.name");
+        if (!empty($databases)) {
+            $a = new object();
+            foreach($databases as $database) {
+                if ($database->requiredentries != 0 || $database->requiredentriestoview != 0) {
+                    $a->text .= "".$database->fullname." - " .$database->name. " (course id: ".$database->course." - database id: ".$database->id.")<br/>";
+                    //set the feedback string here and not in xml file since we need something
+                    //more complex than just a string picked from admin.php lang file
+                    $result->setFeedbackStr(array('requiredentrieschanged', 'admin', $a));
+                    $result->setStatus(false);//fail test
+                }
+            }
+            return $result;
+        }
+    }
+    return null;
+}
+
 ?>
Index: moodle/mod/data/view.php
--- moodle/mod/data/view.php Base (1.56.2.8)
+++ moodle/mod/data/view.php Locally Modified (Based On 1.56.2.8)
@@ -266,6 +266,23 @@
         }
     }
 
+        $numentries = data_numentries($data);
+    /// Check the number of entries required against the number of entries already made (doesn't apply to teachers)
+        if ($data->requiredentries > 0 && $numentries < $data->requiredentries && !has_capability('mod/data:manageentries', $context)) {
+            $data->entriesleft = $data->requiredentries - $numentries;
+            $strentrieslefttoadd = get_string('entrieslefttoadd', 'data', $data);
+            notify($strentrieslefttoadd);
+        }
+
+    /// Check the number of entries required before to view other participant's entries against the number of entries already made (doesn't apply to teachers)
+        $requiredentries_allowed = true;
+        if ($data->requiredentriestoview > 0 && $numentries < $data->requiredentriestoview && !has_capability('mod/data:manageentries', $context)) {
+            $data->entrieslefttoview = $data->requiredentriestoview - $numentries;
+            $strentrieslefttoaddtoview = get_string('entrieslefttoaddtoview', 'data', $data);
+            notify($strentrieslefttoaddtoview);
+            $requiredentries_allowed = false;
+        }
+/*
     // Check the number of entries required against the number of entries already made (doesn't apply to teachers)
     $requiredentries_allowed = true;
     $numentries = data_numentries($data);
@@ -274,7 +291,7 @@
         $strentrieslefttoadd = get_string('entrieslefttoadd', 'data', $data);
         notify($strentrieslefttoadd); 
         $requiredentries_allowed = false;
-    }
+    }*/
 
 /// We need to examine the whole dataset to produce the correct paging
 
Index: moodle/version.php
--- moodle/version.php Base (1.425.2.297)
+++ moodle/version.php Locally Modified (Based On 1.425.2.297)
@@ -6,7 +6,7 @@
 // This is compared against the values stored in the database to determine
 // whether upgrades should be performed (see lib/db/*.php)
 
-   $version = 2007021571;   // YYYYMMDD   = date of the 1.8 branch (don't change)
+   $version = 2007021572;   // YYYYMMDD   = date of the 1.8 branch (don't change)
                             //         X  = release number 1.8.[0,1,2,3...]
                             //          Y = micro-increments between releases
 
