@php $courses = $teacherLiveEvaluationCourses ?? collect(); $evaluationCategories = $teacherEvaluationCategories ?? collect(); $reportsBySession = $teacherEvaluationReportsBySession ?? collect(); $formatDateTime = function ($date, $start = null, $end = null) { if (!$date) { return '-'; } $dateText = \Carbon\Carbon::parse($date)->format('Y-m-d'); $timeText = trim(collect([$start, $end])->filter()->implode(' - ')); return $timeText !== '' ? $dateText . ' | ' . $timeText : $dateText; }; $formatNumber = fn($value) => is_numeric($value) ? number_format((float) $value, 2) : '0.00'; @endphp
Live Session Evaluations
Teacher courses, sessions, and submitted evaluation details.
@forelse ($courses as $course) @php $collapseId = 'teacher-evaluation-course-' . $course->id; $isOpen = $loop->first; $sessions = collect($course->scheduledSessions) ->filter(fn($session) => (int) $session->staff_id === (int) $course->staff_id) ->values(); @endphp
@forelse ($sessions as $session) @php $sessionCollapseId = $collapseId . '-session-' . $session->id; $report = collect($reportsBySession->get($session->id, collect()))->first(); $answers = $report ? collect($report->answers)->filter(fn($answer) => $answer->question) : collect(); $configuredQuestions = $evaluationCategories ->flatMap(fn($category) => collect($category->sections)->flatMap(fn($section) => $section->questions)) ->filter(); $totalScore = $answers->sum(fn($answer) => (float) ($answer->score ?? 0)); $configuredMaxScore = $configuredQuestions->sum(fn($question) => (float) ($question->full_score ?? 0)); $answeredMaxScore = $answers->sum(fn($answer) => (float) ($answer->question->full_score ?? 0)); $maxScore = $configuredMaxScore > 0 ? $configuredMaxScore : $answeredMaxScore; $overallPercentage = $maxScore > 0 ? ($totalScore / $maxScore) * 100 : 0; $categoryGroups = $answers ->filter(fn($answer) => $answer->question?->section?->category) ->groupBy(fn($answer) => $answer->question->section->category->id); @endphp
@if (!$report)
No evaluation submitted for this session. No evaluation yet.
@forelse ($evaluationCategories as $category)
{{ $category->name ?? 'Uncategorized' }}
0.00%
No evaluation yet
@empty
No evaluation categories are configured.
@endforelse
@else
Evaluator/Supervisor: {{ $report->academic->full_name ?? $report->academic->email ?? 'N/A' }} | Evaluation Date: {{ $report->created_at ? $report->created_at->format('Y-m-d H:i') : '-' }} | Evaluation Type: {{ $report->type ? ucfirst($report->type) : 'N/A' }}
Final Score: {{ $formatNumber($overallPercentage) }}% Score: {{ $formatNumber($overallPercentage) }} / 100
@forelse ($evaluationCategories as $category) @php $categoryAnswers = collect($categoryGroups->get($category->id, collect())); $categoryTotalScore = $categoryAnswers->sum(fn($answer) => (float) ($answer->score ?? 0)); $categoryPercentage = $maxScore > 0 ? ($categoryTotalScore / $maxScore) * 100 : 0; @endphp
{{ $category->name ?? 'Uncategorized' }}
{{ $formatNumber($categoryPercentage) }}%
@empty
No evaluation categories are configured.
@endforelse
@endif
@empty
No evaluated past live sessions available for this course.
@endforelse
@empty
No courses available for this teacher.
@endforelse