Fix: Безопасность тестов - не показывать вопросы
✅ Удалён блок с вопросами из student/tests/show ✅ Контроллер не загружает questions.answers ✅ Предупреждение что вопросы будут при тестировании ✅ Блок с попытками (пока пусто) Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
b8d9584f7d
commit
3c3819d3b1
|
|
@ -64,7 +64,8 @@ class TestController extends Controller
|
|||
abort(403, 'У вас нет доступа к этому тесту');
|
||||
}
|
||||
|
||||
$test->load(['questions.answers', 'course']);
|
||||
// НЕ загружаем вопросы и ответы - только общую информацию
|
||||
$test->load(['course']);
|
||||
|
||||
return view('student.tests.show', compact('test'));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,8 +20,15 @@
|
|||
@if($test->passing_score)
|
||||
<div><strong>Проходной балл:</strong> {{ $test->passing_score }}%</div>
|
||||
@endif
|
||||
<div><strong>Время:</strong> <span class="text-muted">Не ограничено</span></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="alert alert-info mt-3">
|
||||
<i class="bi bi-info-circle"></i>
|
||||
<strong>Важно!</strong> Вопросы будут показаны только после начала тестирования.
|
||||
У вас будет одна попытка для прохождения теста.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 mb-4">
|
||||
|
|
@ -32,43 +39,12 @@
|
|||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card shadow-sm">
|
||||
<div class="card-header"><h5 class="mb-0">Вопросы</h5></div>
|
||||
<div class="card-body">
|
||||
<div class="accordion" id="questionsAccordion">
|
||||
@foreach($test->questions as $index => $question)
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="heading{{ $question->id }}">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapse{{ $question->id }}">
|
||||
Вопрос {{ $index + 1 }}: {{ Str::limit($question->question_text, 100) }}
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapse{{ $question->id }}" class="accordion-collapse collapse" data-bs-parent="#questionsAccordion">
|
||||
<div class="accordion-body">
|
||||
<p><strong>{{ $question->question_text }}</strong></p>
|
||||
|
||||
@if($question->type === 'multiple_choice')
|
||||
<div class="mb-3">
|
||||
@foreach($question->answers as $answer)
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="{{ $answer->is_correct ? 'checkbox' : 'checkbox' }}" name="question_{{ $question->id }}" value="{{ $answer->id }}" id="answer_{{ $answer->id }}">
|
||||
<label class="form-check-label" for="answer_{{ $answer->id }}">
|
||||
{{ $answer->answer_text }}
|
||||
@if($answer->image)
|
||||
<br><img src="/storage/{{ $answer->image }}" alt="Ответ" style="max-width:200px;max-height:150px;margin-top:10px;">
|
||||
@endif
|
||||
</label>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="card shadow-sm mt-3">
|
||||
<div class="card-header"><h6 class="mb-0">Попытки</h6></div>
|
||||
<div class="card-body">
|
||||
<p class="text-muted mb-0">Попыток пока не было</p>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -79,7 +55,11 @@
|
|||
@push('scripts')
|
||||
<script>
|
||||
function startTest() {
|
||||
alert('Функционал прохождения тестов будет реализован в следующем этапе');
|
||||
if (confirm('Вы готовы начать тестирование? Вопросы будут показаны по одному.')) {
|
||||
alert('Функционал прохождения тестов будет реализован в следующем этапе');
|
||||
// TODO: Перенаправление на страницу прохождения теста
|
||||
// window.location.href = '{{ route('student.tests.take', $test) }}';
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@endpush
|
||||
|
|
|
|||
Loading…
Reference in New Issue