diff --git a/src/transformer/utils/get_attempt_duration.php b/src/transformer/utils/get_attempt_duration.php index 366241ca765954ccb4438f391d8afa8334ae06c7..55b1fe910a3cb87b651b10f04f4e765426a98021 100644 --- a/src/transformer/utils/get_attempt_duration.php +++ b/src/transformer/utils/get_attempt_duration.php @@ -18,10 +18,11 @@ namespace src\transformer\utils; defined('MOODLE_INTERNAL') || die(); function get_attempt_duration($attempt) { - if (isset($attempt->timefinish)) { + if (isset($attempt->timefinish) && isset($attempt->timestart)) { $seconds = $attempt->timefinish - $attempt->timestart; - return "PT".(string) $seconds."S"; - } else { - return null; + if ($seconds > 0) { + return "PT".(string) $seconds."S"; + } } + return null; } diff --git a/src/transformer/utils/get_attempt_result.php b/src/transformer/utils/get_attempt_result.php index faeec7efc70227986eca2acc3e4e7316e4a717ac..08eb9c007f1930a66bc419996120854bd49e2b60 100644 --- a/src/transformer/utils/get_attempt_result.php +++ b/src/transformer/utils/get_attempt_result.php @@ -31,7 +31,7 @@ function get_attempt_result(array $config, $attempt, $gradeitem) { $success = $gradesum >= $passscore; $duration = get_attempt_duration($attempt); - return [ + $result = [ 'score' => [ 'raw' => $rawscore, 'min' => $minscore, @@ -40,6 +40,11 @@ function get_attempt_result(array $config, $attempt, $gradeitem) { ], 'completion' => $completed, 'success' => $success, - 'duration' => $duration, ]; + + if ($duration != null) { + $result['duration'] = $duration; + } + + return $result; }