MDL-33212 Course page: Eye icon should override other conditions
authorsam marshall <s.marshall@open.ac.uk>
Wed, 23 May 2012 12:46:51 +0000 (13:46 +0100)
committersam marshall <s.marshall@open.ac.uk>
Wed, 23 May 2012 12:46:51 +0000 (13:46 +0100)
course/lib.php
lib/conditionlib.php

index 8e07373..cdc74a1 100644 (file)
@@ -1728,7 +1728,7 @@ function print_section($course, $section, $mods, $modnamesused, $absolute=false,
             // see the activity itself, or for staff)
             if (!$mod->uservisible) {
                 echo '<div class="availabilityinfo">'.$mod->availableinfo.'</div>';
-            } else if ($canviewhidden && !empty($CFG->enableavailability)) {
+            } else if ($canviewhidden && !empty($CFG->enableavailability) && $mod->visible) {
                 $ci = new condition_info($mod);
                 $fullinfo = $ci->get_full_information();
                 if($fullinfo) {
index 9bcd4bb..5e2207f 100644 (file)
@@ -846,6 +846,16 @@ abstract class condition_info_base {
             }
         }
 
+        // If the item is marked as 'not visible' then we don't change the available
+        // flag (visible/available are treated distinctly), but we remove any
+        // availability info. If the item is hidden with the eye icon, it doesn't
+        // make sense to show 'Available from <date>' or similar, because even
+        // when that date arrives it will still not be available unless somebody
+        // toggles the eye icon.
+        if (!$this->item->visible) {
+            $information = '';
+        }
+
         $information = trim($information);
         return $available;
     }