Track test execution time

This commit is contained in:
Wojtek
2026-10-15 20:52:15 +02:00
parent 06d6cc2027
commit dfc38e7eb0
10 changed files with 23 additions and 5 deletions
@@ -71,7 +71,7 @@ class SetModel extends BaseDatabaseModel
)->loadObjectList();
}
public function saveResult(string $participantName, int $extraTime, array $result): bool
public function saveResult(string $participantName, int $extraTime, int $startedAt, array $result): bool
{
$db = Factory::getContainer()->get('DatabaseDriver');
$setId = $this->getSetId();
@@ -84,6 +84,8 @@ class SetModel extends BaseDatabaseModel
$row = (object) [
'set_id' => $setId,
'participant_name' => trim($participantName),
'started' => $startedAt > 0 ? gmdate('Y-m-d H:i:s', $startedAt) : null,
'execution_time' => $startedAt > 0 ? max(0, time() - $startedAt) : 0,
'extra_time' => max(0, $extraTime),
'correct_count' => (int) ($result['correct'] ?? 0),
'total_count' => (int) ($result['total'] ?? 0),
@@ -34,6 +34,7 @@ class HtmlView extends BaseHtmlView
$this->getModel()->saveResult(
$input->post->getString('participant_name', ''),
$input->post->getInt('extra_time', 0),
$input->post->getInt('test_started_at', 0),
$this->results
);
}
@@ -31,6 +31,7 @@ use Joomla\CMS\Factory;
</select>
</div>
<input type="submit" class="egzamin" value="<?php echo htmlspecialchars(\Joomla\CMS\Language\Text::_('COM_TESTQUESTIONS_START_TEST'), ENT_QUOTES, 'UTF-8'); ?>">
<input type="hidden" name="test_started_at" value="<?php echo time(); ?>">
</form>
<?php endif; ?>
<?php if (!$this->started) : ?>
@@ -96,6 +97,7 @@ use Joomla\CMS\Factory;
<input type="hidden" name="set_id" value="<?php echo (int) $this->set->id; ?>">
<input type="hidden" name="participant_name" value="<?php echo htmlspecialchars(Factory::getApplication()->getInput()->post->getString('participant_name', ''), ENT_QUOTES, 'UTF-8'); ?>">
<input type="hidden" name="extra_time" value="<?php echo (int) $extraTime; ?>">
<input type="hidden" name="test_started_at" value="<?php echo (int) Factory::getApplication()->getInput()->post->getInt('test_started_at', time()); ?>">
<input type="hidden" name="task" value="check">
<?php echo \Joomla\CMS\HTML\HTMLHelper::_('form.token'); ?>
<?php if (!$this->results) : ?>