@foreach($activities as $activity)
@php
$isEoss = false;
if ($activity->survey) {
$title = strtolower(trim(($activity->activityType->name ?? '').' '.($activity->survey->title ?? '')));
$isEoss = str_contains($title,'end of session') || str_contains($title,'end-of-session') || str_contains($title,'session summary');
}
@endphp
@if($isEoss && $eossRendered)
@continue
@endif
@if($activity->discussionForum)
💬
@elseif(str_contains(strtolower($activity->name), 'session'))
📊
@elseif(str_contains(strtolower($activity->name), 'group'))
👥
@elseif($activity->poll)
📊
@elseif($activity->readingLibrary)
📚
@elseif($activity->collaborativeBoard)
📋
@else
📝
@endif
@php
$displayTitle = $activity->name;
if ($activity->discussionForum) {
$displayTitle = $activity->discussionForum->title ?? $displayTitle;
} elseif ($activity->collaborativeBoard) {
$displayTitle = $activity->collaborativeBoard->title ?? $displayTitle;
} elseif ($activity->poll) {
$displayTitle = $activity->poll->title ?? $displayTitle;
} elseif ($activity->readingLibrary) {
$displayTitle = $activity->readingLibrary->title ?? $displayTitle;
}
@endphp
{{ $displayTitle }}
{{ $activity->activityType?->name ?? 'Unknown Type' }}
@if($activity->survey)
@php
$responses = $activity->survey->responses()->count();
$sessions = $activity->survey->responses()->distinct('session_label')->count();
$avgScore = $activity->survey->responses()->get()->map(function($r) {
$answers = $r->answers ?? [];
$likertAnswers = array_filter($answers, function($a) { return is_numeric($a); });
return count($likertAnswers) > 0 ? array_sum($likertAnswers) / count($likertAnswers) : 0;
})->avg();
@endphp
{{ $responses }}
Responses
{{ number_format($avgScore, 1) }}
Avg Score
@elseif($activity->poll)
@php
$responses = $activity->poll->responses()->count();
$totalOptions = count($activity->poll->options ?? []);
@endphp
{{ $totalOptions }}
Options
Question: {{ Str::limit($activity->poll->question, 60) }}
Type: {{ ucfirst(str_replace('_', ' ', $activity->poll->poll_type)) }}
@elseif($activity->discussionForum)
@php
$totalThreads = $activity->discussionForum->threads()->where('is_approved', true)->count();
$totalPosts = $activity->discussionForum->threads()->withCount('posts')->get()->sum('posts_count');
$totalCategories = $activity->discussionForum->categories()->count();
@endphp
{{ $totalThreads }}
Threads
{{ $totalCategories }}
Categories
Description: {{ Str::limit($activity->discussionForum->description, 60) }}
@if($activity->discussionForum->session_label)
Session: {{ $activity->discussionForum->session_label }}
@endif
@elseif($activity->collaborativeBoard)
@php
$boardPosts = $activity->collaborativeBoard->posts()->count();
$boardContrib = $activity->collaborativeBoard->posts()->distinct('user_id')->count('user_id');
$boardLast = optional($activity->collaborativeBoard->posts()->latest('updated_at')->first())->updated_at;
@endphp
{{ $boardContrib }}
Contributors
{{ $boardLast ? $boardLast->diffForHumans() : '—' }}
Last activity
@elseif($activity->readingLibrary)
@php
$items = $activity->readingLibrary->readings()->count();
$featured = $activity->readingLibrary->readings()->where('is_featured', true)->count();
$sessionsCovered = $activity->readingLibrary->readings()->whereNotNull('session_label')->distinct('session_label')->count('session_label');
@endphp
{{ $sessionsCovered }}
Sessions
@endif
@if($activity->survey)
Launch
Results
@elseif($activity->discussionForum)
Open Forum
@if($activity->discussionForum->canvas_page_id || $activity->discussionForum->canvas_page_url)
View in Canvas
@endif
@elseif($activity->poll)
Launch
@elseif($activity->readingLibrary)
Open Library
@elseif($activity->activityType && str_contains(strtolower($activity->activityType->name), 'reading'))
Open Library
@elseif($activity->collaborativeBoard)
Open Board
@endif
@php if ($isEoss) { $eossRendered = true; } @endphp
@endforeach