@extends('layouts.site') @php $my_name_view = 'Szkolenie - Prezentacja'; $my_short_view_name = 'Prezentacja'; @endphp @section('title', 'Szkolenie - Prezentacja') @section('content') {{-- Ekran prezentacji: materialy i test dzialaja w tym samym panelu po prawej stronie. --}}
Szkolenie: {{ $training->temat ?: ('#'.$training->id) }}
Data rozpoczęcia szkolenia: {{ $training->data ?: '-' }} {{ $training->godzina_start ?: '00:01' }}
Data zakończenia szkolenia: {{ $training->data_do ?: $training->data ?: '-' }} {{ $training->godzina_stop ?: '23:59' }}
Status: @if(!empty($hasEnded)) Po czasie realizacji @elseif(!empty($hasStarted) && !empty($isPublished)) Aktywny @elseif(empty($hasStarted) && !empty($isPublished)) Zaplanowany @else Nieopublikowany @endif

Materiały Szkoleniowe:

@php // Statystyka ukonczenia materialow do poczatkowego stanu UI (przycisk testu i opis). // Liczymy po unikalnym progress_key (to ten sam model co backend blokady startu testu). $requiredProgressKeys = []; $completedProgressKeys = []; foreach ($materials as $materialStat) { $progressKey = trim((string)($materialStat['progress_key'] ?? '')); if ($progressKey === '') { continue; } $requiredProgressKeys[$progressKey] = true; if (!empty($materialStat['is_completed'])) { $completedProgressKeys[$progressKey] = true; } } $materialsTotal = count($requiredProgressKeys); $materialsDone = count($completedProgressKeys); $materialsPercent = $materialsTotal > 0 ? (int) round(($materialsDone / $materialsTotal) * 100) : 0; $canStartByMaterials = $materialsTotal === 0 || $materialsDone >= $materialsTotal; $canStartTestNow = $canStartByMaterials && !empty($canStartBySchedule) && empty($hasAttemptLimitReached); @endphp
@forelse($materials as $idx => $item) @empty
Nie dodano materiałów szkoleniowych
@endforelse
Postep materialow {{ $materialsPercent }}%
Test wiedzy
@if(!empty($isReadOnlyArchive))
Szkolenie po czasie realizacji: tryb tylko do odczytu. Test nie moze byc uruchomiony.
@if(!empty($latestAttemptResultUrl)) @endif @elseif($training->test && (int)$training->test->status_aktywny === 1)
{{ $training->test->nazwa }}
Prog zaliczenia: {{ $training->test->prog_zaliczenia }}%
@if($isEnrolled || !empty($isControlMode)) @if(!empty($isControlMode))
Tryb testowy aktywny.
@endif @if(!empty($hasAttemptLimitReached))
Wykorzystano limit podejsc
@else
@if(!$canStartByMaterials) Najpierw zapoznaj sie ze wszystkimi materialami ({{ $materialsDone }}/{{ $materialsTotal }}). @elseif(empty($canStartBySchedule)) {{ !$hasStarted ? 'Szkolenie bedzie dostepne po dacie i godzinie rozpoczecia.' : 'Czas na wykonanie testu juz minal.' }} @endif
@endif @if(!empty($hasAnyAttempts) && !empty($attemptsHistoryUrl)) @endif @if(!empty($isControlMode))
Tryb autora/admina: uruchomienie zapisze przejscie kontrolne.
@endif @else
Test uruchomi tylko zapisany uczestnik.
@endif @else
Brak aktywnego testu.
@endif
Wybierz element planu
--:--
Wybierz material albo uruchom test z panelu po lewej stronie.
Podglad grafiki
Pytanie 1 z 1
Miejsce na grafike pytania

Podsumowanie testu

{{-- Modal powiekszenia grafiki (uzytkownik: materialy + test). --}} @if(!empty($isControlMode)) @endif
@endsection @section('menu') @include('sites.szkol.menu_szkol') @endsection @section('navbar') @include('sites.szkol._navbar_szkol') @endsection @push('styles') @endpush @push('scripts') @endpush