# 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.37)
+++ moodle/admin/environment.xml Locally Modified (Based On 1.37)
@@ -277,6 +277,8 @@
           <ON_CHECK message="globalswarning" />
         </FEEDBACK>
       </CUSTOM_CHECK>
+       <CUSTOM_CHECK file="mod/data/lib.php" function="data_check_required_entries_fields" level="optional">
+      </CUSTOM_CHECK>
     </CUSTOM_CHECKS>
   </MOODLE>
 </COMPATIBILITY_MATRIX>
Index: moodle/install/stringnames.txt
--- moodle/install/stringnames.txt Base (1.17)
+++ moodle/install/stringnames.txt Locally Modified (Based On 1.17)
@@ -196,6 +196,7 @@
 remotedownloaderror
 remotedownloadnotallowed
 report
+requiredentrieschanged
 restricted
 safemode
 safemodeerror
Index: moodle/lang/en_utf8/admin.php
--- moodle/lang/en_utf8/admin.php Base (1.239)
+++ moodle/lang/en_utf8/admin.php Locally Modified (Based On 1.239)
@@ -657,6 +657,8 @@
 $string['renameerrors'] = 'Rename errors';
 $string['requiredtemplate'] = 'Required. You may use template syntax here (%%l = lastname, %%f = firstname, %%u = username). See help for details and examples.';
 $string['requires'] = 'Requires';
+$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['reverseproxy'] = 'Reverse proxy';
Index: moodle/lang/en_utf8/data.php
--- moodle/lang/en_utf8/data.php Base (1.77)
+++ moodle/lang/en_utf8/data.php Locally Modified (Based On 1.77)
@@ -88,7 +88,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.206)
+++ moodle/mod/data/lib.php Locally Modified (Based On 1.206)
@@ -2540,6 +2540,42 @@
     return false;
 }
 
+/**
+ * NOTE: this function is defined into environment.xml
+ * 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 data_check_required_entries_fields($result) {
+    global $CFG, $DB;
+    if (!empty($CFG->version)                                             //we are not installing a new Moodle site
+        && $CFG->version < 2008112102                              //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("data/requiredentriesfixflag",true); //set a flag into database in order to let know a Moodle 2.0 upgrade that the message has already been displayed
+        $databases = $DB->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;
+}
+
 require_once($CFG->libdir . '/portfoliolib.php');
 class data_portfolio_caller extends portfolio_module_caller_base {
 
Index: moodle/mod/data/view.php
--- moodle/mod/data/view.php Base (1.101)
+++ moodle/mod/data/view.php Locally Modified (Based On 1.101)
@@ -393,6 +393,24 @@
             }
         }
 
+         $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);
@@ -401,7 +419,7 @@
             $strentrieslefttoadd = get_string('entrieslefttoadd', 'data', $data);
             notify($strentrieslefttoadd);
             $requiredentries_allowed = false;
-        }
+        }*/
 
     /// setup group and approve restrictions
         if (!$approvecap && $data->approval) {
Index: moodle/version.php
--- moodle/version.php Base (1.887)
+++ moodle/version.php Locally Modified (Based On 1.887)
@@ -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 = 2008111801;  // YYYYMMDD   = date of the last version bump
+    $version = 2008112101;  // YYYYMMDD   = date of the last version bump
                             //         XX = daily increments
 
     $release = '2.0 dev (Build: 20081121)';  // Human-friendly version name
