From 9b80f9e82d3e8dcad79a183e3ddb045eb9f69893 Mon Sep 17 00:00:00 2001 From: Corey Peterson Date: Wed, 8 May 2024 11:54:02 -0400 Subject: [PATCH 1/2] Adds check to session_play set_complete to ensure percent is never allowed to be over 100 --- fuel/app/classes/materia/session/play.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fuel/app/classes/materia/session/play.php b/fuel/app/classes/materia/session/play.php index 2c4a1627c..7bdb7144f 100644 --- a/fuel/app/classes/materia/session/play.php +++ b/fuel/app/classes/materia/session/play.php @@ -368,6 +368,9 @@ public function get_by_id($play_id=0) public function set_complete($score, $possible, $percent) { + // ensure percent is never inadvertently set to a value over 100, which will break things + if ($percent > 100) $percent = 100; + // set max score to the current score $max_percent = $percent; From b4819e9c68272bcf12de950574129c334bfa2ffa Mon Sep 17 00:00:00 2001 From: Corey Peterson Date: Wed, 22 May 2024 16:52:00 -0400 Subject: [PATCH 2/2] Adds >100% edge case detection to score distribution API response to prevent rendering issues --- fuel/app/classes/materia/score/manager.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fuel/app/classes/materia/score/manager.php b/fuel/app/classes/materia/score/manager.php index 8572ad68d..5bfefd012 100644 --- a/fuel/app/classes/materia/score/manager.php +++ b/fuel/app/classes/materia/score/manager.php @@ -152,6 +152,9 @@ static public function get_widget_score_distribution($inst_id) $semesters = []; foreach ($result as $log) { + // remove any erroneous > 100% scores from the distribution graph + if ($log['bracket'] > 9) continue; + $key = $log['id']; if ( ! isset($semesters[$key])) {