MDL-59030 analytics: Social breadth accepting more than level 2
authorDavid Monllao <davidm@moodle.com>
Tue, 29 Aug 2017 06:28:46 +0000 (08:28 +0200)
committerDavid Monllao <davidm@moodle.com>
Tue, 29 Aug 2017 06:28:46 +0000 (08:28 +0200)
Even if core indicators are limited to level 2 we should not block
other activities from implementing up to level 5.

analytics/classes/local/indicator/community_of_inquiry_activity.php
course/classes/analytics/indicator/potential_social_breadth.php

index 067ca7b..d974322 100644 (file)
@@ -68,7 +68,7 @@ abstract class community_of_inquiry_activity extends linear {
     /**
      * Max social breadth level accepted.
      */
-    const MAX_SOCIAL_LEVEL = 2;
+    const MAX_SOCIAL_LEVEL = 5;
 
     /**
      * Returns the activity type. No point in changing this class in children classes.
@@ -604,13 +604,18 @@ abstract class community_of_inquiry_activity extends linear {
 
             $potentiallevel = $this->get_social_breadth_level($cm);
             if (!is_int($potentiallevel) || $potentiallevel > self::MAX_SOCIAL_LEVEL || $potentiallevel < 1) {
-                throw new \coding_exception('Although social breadth levels can go from 1 to 5 at the moment Moodle core ' .
-                    'can only accept social breadth levels between 1 and ' . self::MAX_SOCIAL_LEVEL . '. Sorry for the ' .
-                    'inconvenience. This will change in future releases.');
+                throw new \coding_exception('Activities\' potential social breadth go from 1 to ' .
+                    community_of_inquiry_activity::MAX_SOCIAL_LEVEL . '.');
             }
             $scoreperlevel = $scoreperactivity / $potentiallevel;
             switch ($potentiallevel) {
                 case 2:
+                case 3:
+                case 4:
+                case 5:
+                    // Core activities social breadth only reaches level 2, until core activities social
+                    // breadth do not reach level 5 we limit it to what we currently support, which is level 2.
+
                     // Social breadth level 2 is to view feedback. (Same as cognitive level 3).
 
                     if ($this->any_feedback('viewed', $cm, $contextid, $user)) {
index ac15780..dc149b5 100644 (file)
@@ -105,6 +105,12 @@ class potential_social_breadth extends \core_analytics\local\indicator\linear {
             }
         }
 
+        // Core activities social breadth only reaches level 2, until core activities social
+        // breadth do not reach level 5 we limit it to what we currently support, which is level 2.
+        if ($potentiallevel > 2) {
+            $potentiallevel = 2;
+        }
+
         // Supporting only social breadth level 1 and 2 the possible values are -1 or 1.
         $levelscore = round(self::get_max_value() - self::get_min_value(), 2);
 
@@ -136,7 +142,7 @@ class potential_social_breadth extends \core_analytics\local\indicator\linear {
      * @param int $level
      */
     protected function level_not_accepted($level) {
-        throw new \coding_exception('Although social breadth levels can go from 1 to 5 at the moment Moodle core can only accept' .
-            ' social breadth levels 1 and 2. Sorry for the inconvenience, this will change in future releases.');
+        throw new \coding_exception('Activities\' potential social breadth go from 1 to ' .
+            community_of_inquiry_activity::MAX_SOCIAL_LEVEL . '.');
     }
 }