Peserta tidak ditemukan.

'; page_end(); exit; } $error=''; if($_SERVER['REQUEST_METHOD']==='POST') { verify_csrf(); $action=$_POST['action']??''; if($action==='stage' && array_key_exists((string)($_POST['kode']??''),STAGES)) { query('UPDATE in_daper SET kode=? WHERE id=?','ii',[(int)$_POST['kode'],$id]); $_SESSION['flash']='Tahap seleksi diperbarui.'; redirect('idap_jawab.php?id='.$id); } if($action==='grade') { db()->begin_transaction(); try { $locked=one('SELECT level FROM in_daper WHERE id=? FOR UPDATE','i',[$id]); $answers=rows('SELECT j.id,j.cek FROM in_jawab j JOIN in_soal s ON s.id=j.isoal WHERE j.idap=? AND s.kat BETWEEN 1 AND 4 FOR UPDATE','i',[$id]); $grades=$_POST['grade']??[]; if((int)$locked['level']<4 || !$answers || !is_array($grades)) throw new InvalidArgumentException('Penilaian dapat disimpan setelah peserta menyelesaikan seluruh fase tes.'); foreach($answers as $answer) { $grade=$grades[$answer['id']]??''; if(!in_array($grade,['0','10'],true)) throw new InvalidArgumentException('Nilai semua jawaban fase 1–3 sebelum menyimpan.'); query('UPDATE in_jawab SET cek=? WHERE id=? AND idap=?','sii',[$grade,(int)$answer['id'],$id]); } $orphans=one('SELECT COUNT(*) n FROM in_jawab j LEFT JOIN in_soal s ON s.id=j.isoal WHERE j.idap=? AND s.id IS NULL','i',[$id]); if((int)$orphans['n']>0) throw new InvalidArgumentException('Ada jawaban yang kehilangan referensi soal. Pulihkan soal sebelum menyelesaikan penilaian.'); query('UPDATE in_daper SET cek=1 WHERE id=?','i',[$id]); db()->commit(); $_SESSION['flash']='Penilaian berhasil disimpan.'; redirect('idap_jawab.php?id='.$id); } catch(InvalidArgumentException $ex) { db()->rollback(); $error=$ex->getMessage(); } catch(Throwable $ex) { db()->rollback(); throw $ex; } } } $answers=rows('SELECT j.id,j.jawab,j.cek,s.id question_id,s.kat,s.soal,s.soal1,s.kunci FROM in_jawab j LEFT JOIN in_soal s ON s.id=j.isoal WHERE j.idap=? ORDER BY s.kat,j.id','i',[$id]); $score=0; $ungraded=0; $orphans=0; foreach($answers as $a) { if(!$a['question_id']) $orphans++; if((int)$a['kat']>=1 && (int)$a['kat']<=4) { if($a['cek']==='10') $score+=10; if(!in_array($a['cek'],['0','10'],true)) $ungraded++; } } $attemptLog=rows('SELECT a.phase,a.status,a.deadline,a.started_at,a.submitted_at,COUNT(e.id) event_count FROM rec_exam_attempt a LEFT JOIN rec_exam_event e ON e.attempt_id=a.id WHERE a.participant_id=? GROUP BY a.id ORDER BY a.phase','i',[$id]); $activityLog=rows('SELECT a.phase,e.event_type,e.created_at FROM rec_exam_event e JOIN rec_exam_attempt a ON a.id=e.attempt_id WHERE a.participant_id=? ORDER BY e.id DESC LIMIT 50','i',[$id]); page_start('Hasil Psikotest', 'participants'); ?>← Daftar peserta

·

·
Skor fase 1–3
/ ambang
=threshold()?'Lulus skor':'Di bawah ambang')?>

Tahap seleksi

Progres tes: / 4 fase ·

jawaban tidak memiliki referensi soal. Penilaian belum dapat difinalkan.

Catatan integritas sesi tes

Aktivitas browser adalah laporan dari perangkat peserta, dapat tidak lengkap, dan bukan bukti kecurangan atau keputusan seleksi otomatis.

FaseMulaiDeadline serverStatusCatatan aktivitas
'Berjalan','expired'=>'Waktu habis','submitted'=>'Dikirim'][$log['status']]??$log['status'])?>
Data historis: belum ada catatan sesi tes.
Lihat 50 aktivitas terbaru
WaktuFaseAktivitas
'Halaman tidak terlihat','window_blur'=>'Jendela kehilangan fokus','copy'=>'Copy','cut'=>'Cut','paste'=>'Paste','contextmenu'=>'Menu konteks','page_resumed'=>'Kembali ke halaman','relogin'=>'Login ulang','stale_tab'=>'Permintaan dari tab/sesi yang sudah digantikan'][$log['event_type']]??$log['event_type'])?>
$label): ?>
KATEGORI 0

SoalPilihan RJawaban pesertaKunci jawabanPenilaian
Belum ada jawaban untuk kategori ini.
Penilaian manual jawaban belum dinilai. Kepribadian ditinjau secara deskriptif.