{{-- Modal de Sincronização com AVA - aparece DURANTE o carregamento --}} @if($willSyncWithAva)

Sincronizando com AVA

Aguarde um momento...

Estamos sincronizando suas informações com a plataforma de aprendizado virtual AVA - Ambiente Virtual de Aprendizagem.

Este processo pode levar alguns segundos. Estamos carregando seu progresso, atividades concluídas, notas e todo o conteúdo do curso.

Carregando dados do curso...

@endif @if($loading) @if(!$willSyncWithAva)

Carregando curso...

@endif @elseif($error || !$course)
⚠️

Erro ao carregar curso

{{ session('error') ?? 'Curso não encontrado ou você não tem permissão para acessá-lo.' }}

← Voltar ao Dashboard
@else @php $courseImage = $course['courseimage_local'] ?? null; $progressPercentage = $hasAvaData ? ($progress['percentage'] ?? 0) : 0; @endphp
@if($courseImage) {{ $course['fullname'] }} @endif

{{ $course['fullname'] }}

{{ $course['shortname'] }}

@if(isset($course['turma_nome']))

Turma: {{ $course['turma_nome'] }}

@endif
@if($hasAvaData) @endif
@if(!$hasAvaData)
{{-- Só mostra status do AVA se o curso TEM moodle_course_id (é um curso AVA) --}} @if(isset($course['moodle_course_id']) && $course['moodle_course_id']) @php $moodleAprovisiona = $course['moodle_aprovisiona'] ?? false; $moodleAprovisionaData = $course['moodle_aprovisiona_data'] ?? null; $dataFutura = $moodleAprovisionaData && now()->lt($moodleAprovisionaData); @endphp @if($moodleAprovisiona && !$dataFutura)

Acesso ao AVA Disponível

O ambiente virtual de aprendizagem está pronto para ser configurado. Clique no botão abaixo para ativar seu acesso.

@else

O acesso ao AVA ainda não está disponível

@if($moodleAprovisionaData) O ambiente virtual de aprendizagem estará disponível a partir de {{ $moodleAprovisionaData->format('d/m/Y') }}. @else O ambiente virtual de aprendizagem será disponibilizado em breve. Aguarde comunicação da secretaria. @endif

@endif {{-- Fim da verificação se curso tem moodle_course_id --}} @endif
@if($courseDetails && isset($courseDetails['summary']) && $courseDetails['summary'])

Sobre o Curso

{!! nl2br(e($courseDetails['summary'])) !!}
@endif @if(isset($course['data_inicio']) || isset($course['data_termino']))

Período para seus estudos

@if(isset($course['data_inicio']))
Início
{{ $course['data_inicio'] }}
@endif @if(isset($course['data_termino']))
Término
{{ $course['data_termino'] }}
@endif
@endif
@else
Progresso {{ $progressPercentage }}%
{{-- --}}
@if(count($sections) > 0)
@foreach($sections as $sectionIndex => $section) @if(!empty($section['name']) && count($section['modules'] ?? []) > 0) @php $totalModules = count($section['modules'] ?? []); $completedModules = collect($section['modules'] ?? [])->filter(fn($m) => isset($m['completiondata']['state']) && $m['completiondata']['state'] == 1)->count(); $sectionProgress = $totalModules > 0 ? round(($completedModules / $totalModules) * 100) : 0; @endphp
{{ $sectionProgress == 100 ? '✓' : ($section['section'] ?? 0) }}

{{ $section['name'] }}

@if($completedModules > 0) {{ $completedModules }}/{{ $totalModules }} @else {{ $totalModules }} {{ $totalModules === 1 ? 'item' : 'itens' }} @endif
@if(isset($section['summary']) && trim(strip_tags($section['summary'])))

{!! strip_tags($section['summary']) !!}

@if(strlen(strip_tags($section['summary'])) > 120) @endif
@endif
@foreach($section['modules'] as $module) @php $isCompleted = isset($module['completiondata']['state']) && $module['completiondata']['state'] == 1; $icons = [ 'assign' => '📝', 'quiz' => '❓', 'resource' => '📄', 'url' => '🔗', 'forum' => '💬', 'page' => '📖', 'folder' => '📁', 'book' => '📚', 'label' => '📌', 'video' => '🎥', 'h5pactivity' => '🎮', ]; $icon = $icons[$module['modname'] ?? ''] ?? '📌'; @endphp
{{ $icon }}

{{ $module['name'] }}

{{ ucfirst($module['modname'] ?? 'conteúdo') }} @if($isCompleted) ✅ Concluído @endif
@endforeach
@endif @endforeach
@else
📚

Nenhum conteúdo disponível no momento.

@endif
@if($grades && isset($grades['items']) && count($grades['items']) > 0) @php $gradeItems = $grades['items']; $totalGraded = collect($gradeItems)->filter(fn($i) => $i['graderaw'] !== null)->count(); $avgGrade = collect($gradeItems) ->filter(fn($i) => $i['graderaw'] !== null) ->avg(fn($i) => (float)$i['graderaw']); @endphp
{{ count($gradeItems) }}
Atividades
{{ $totalGraded }}
Com Nota
{{ $avgGrade !== null ? number_format($avgGrade, 1) : 'N/A' }}
Média
@foreach($gradeItems as $item) @php $gradeValue = $item['graderaw']; $gradeFormatted = $item['gradeformatted']; $gradeMax = $item['grademax']; $gradePerc = ($gradeValue !== null && $gradeMax > 0) ? round(($gradeValue / $gradeMax) * 100) : null; @endphp

{{ $item['itemname'] }}

{{ $item['percentageformatted'] !== '-' ? $item['percentageformatted'] : '' }}

@if($gradeValue !== null)
{{ $gradeFormatted }} /{{ number_format($gradeMax, 0) }}
@else Pendente @endif
@endforeach
@else
📊

Notas não disponíveis

As notas aparecerão conforme você completar atividades avaliativas.

@endif
{{--
@if(count($courseEvents) > 0)
@foreach($courseEvents as $event) @php $eventTime = $event['timesort'] ?? $event['timestart'] ?? null; $isPast = $eventTime && $eventTime < time(); $isUrgent = $eventTime && !$isPast && ($eventTime - time()) < 86400 * 3; $eventIcon = match($event['eventtype'] ?? '') { 'due' => '📝', 'open', 'close' => '📅', 'expectcompletionon' => '🎯', default => '📌', }; @endphp
{{ $eventIcon }}

{{ $event['name'] ?? 'Evento' }}

@if(isset($event['description']) && trim(strip_tags($event['description'] ?? '')))

{!! strip_tags($event['description']) !!}

@endif @if($eventTime)
📅 {{ date('d/m/Y \à\s H:i', $eventTime) }} @if($isPast) Encerrado @elseif($isUrgent) Urgente @else @php $daysLeft = ceil(($eventTime - time()) / 86400); @endphp {{ $daysLeft }} {{ $daysLeft == 1 ? 'dia' : 'dias' }} @endif
@endif
@endforeach
@else
📅

Nenhum prazo pendente

Não há prazos ou eventos próximos para este curso.

@endif
--}}
@if(count($teachers) > 0)
@foreach($teachers as $teacher)
@if(isset($teacher['profileimageurl']) && $teacher['profileimageurl']) {{ $teacher['fullname'] }} @else
{{ mb_substr($teacher['fullname'], 0, 1) }}
@endif

{{ $teacher['fullname'] }}

@php $roleLabels = ['editingteacher' => 'Professor', 'teacher' => 'Tutor', 'manager' => 'Coordenador']; $displayRoles = collect($teacher['roles'] ?? [])->map(fn($r) => $roleLabels[$r] ?? ucfirst($r))->implode(', '); @endphp {{ $displayRoles ?: 'Professor' }}

@endforeach
@else
👨‍🏫

Informação não disponível

Os dados dos professores aparecerão quando disponíveis.

@endif
{{ $progress['total'] ?? 0 }}
Total
{{ $progress['completed'] ?? 0 }}
Concluídas
{{ ($progress['total'] ?? 0) - ($progress['completed'] ?? 0) }}
Pendentes
@if($lastSync)
Última sincronização: {{ $lastSync }}
@endif

Informações

@if($progressPercentage == 100) @elseif($progressPercentage > 0) 📚 @else @endif
Status
{{ $progressPercentage == 100 ? 'Concluído' : ($progressPercentage > 0 ? 'Em andamento' : 'Não iniciado') }}
@if($courseDetails && isset($courseDetails['startdate']))
Liberado em
{{ date('d/m/Y', $courseDetails['startdate']) }}
@endif @if($courseDetails && isset($courseDetails['enddate']) && $courseDetails['enddate'] > 0)
Disponível até
{{ date('d/m/Y', $courseDetails['enddate']) }}
@endif @if($estimatedCompletion && $progressPercentage > 0 && $progressPercentage < 100)
Tração de Conclusão
{{ $estimatedCompletion }}
@endif @if($lastAccess)
Último Acesso
{{ date('d/m/Y \à\s H:i', $lastAccess) }}
@endif @if($progressPercentage == 100)
🏆
Conclusão
Curso Concluído! 🎉
@endif
@if($courseDetails && isset($courseDetails['summary']) && trim(strip_tags($courseDetails['summary'])))

Sobre o Curso

{!! strip_tags($courseDetails['summary']) !!}
@if(strlen(strip_tags($courseDetails['summary'])) > 200) @endif
@endif
@endif @endif