671 lines
20 KiB
PHP
671 lines
20 KiB
PHP
|
|
<?php
|
||
|
|
namespace App\Http\Controllers\Android;
|
||
|
|
|
||
|
|
use App\Models\Android\Enrollment;
|
||
|
|
use App\Models\Android\Submits;
|
||
|
|
use App\Models\Android\SubmitsTestCase;
|
||
|
|
use App\Models\Android\SubmitsFinalSubmission;
|
||
|
|
use App\Models\Android\Task;
|
||
|
|
use App\Models\Android\Task_waiting;
|
||
|
|
use App\Models\Android\Topic;
|
||
|
|
use App\Models\Android\Testcase;
|
||
|
|
use App\Http\Controllers\Controller;
|
||
|
|
use Illuminate\Http\Request;
|
||
|
|
use Illuminate\Support\Facades\Auth;
|
||
|
|
use Illuminate\Support\Facades\DB;
|
||
|
|
|
||
|
|
class MaterialController extends Controller
|
||
|
|
{
|
||
|
|
public function index() {
|
||
|
|
|
||
|
|
$topic = DB::table("android_topics");
|
||
|
|
$data_keseluruhan = array();
|
||
|
|
$id = Auth::user()->id;
|
||
|
|
|
||
|
|
$recent_task = array();
|
||
|
|
|
||
|
|
if ( $topic->count() > 0 ) {
|
||
|
|
|
||
|
|
foreach ( $topic->get() AS $isi ){
|
||
|
|
|
||
|
|
// init
|
||
|
|
$status = "enroll";
|
||
|
|
$progress = 0;
|
||
|
|
$grade = "-";
|
||
|
|
$total_task = Task::where("android_topic_id", $isi->id)->count();
|
||
|
|
$recent = "-";
|
||
|
|
$akses = "-";
|
||
|
|
|
||
|
|
$where = array(
|
||
|
|
|
||
|
|
'android_topic_id' => $isi->id,
|
||
|
|
'user_id' => $id
|
||
|
|
);
|
||
|
|
|
||
|
|
// check
|
||
|
|
$enrollment = DB::table("android_enrollment")->where($where);
|
||
|
|
if ( $enrollment->count() != 0 ) {
|
||
|
|
|
||
|
|
$dt_enroll = $enrollment->first();
|
||
|
|
$status = $dt_enroll->status;
|
||
|
|
|
||
|
|
$akses = $enrollment->first()->created_at;
|
||
|
|
}
|
||
|
|
|
||
|
|
// check progress
|
||
|
|
if ( $status != "cancel" ) {
|
||
|
|
|
||
|
|
$task_waiting = Task_waiting::where( $where );
|
||
|
|
|
||
|
|
$total_task_waiting = $task_waiting->count();
|
||
|
|
if ( $total_task_waiting > 0 ) {
|
||
|
|
|
||
|
|
$info = Task::find( $task_waiting->first()->android_task_id );
|
||
|
|
$progress = $total_task_waiting / $total_task * 100;
|
||
|
|
|
||
|
|
$recent = $info->task_name;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
$NA = 0;
|
||
|
|
if ( $status == "complete" ) {
|
||
|
|
|
||
|
|
$where_enroll = array(
|
||
|
|
|
||
|
|
'user_id' => Auth::user()->id,
|
||
|
|
'android_topic_id' => $isi->id
|
||
|
|
);
|
||
|
|
$enrollment = Enrollment::where($where_enroll)->first();
|
||
|
|
|
||
|
|
|
||
|
|
$dt_all_submit = array();
|
||
|
|
$where = array(
|
||
|
|
|
||
|
|
'user_id' => Auth::user()->id, // 1577
|
||
|
|
'android_submits.android_topic_id' => $isi->id // 11
|
||
|
|
);
|
||
|
|
$submits = Submits::select('android_submits.id','android_task.task_name', 'android_submits.created_at', 'android_submits.duration')
|
||
|
|
->join('android_task', 'android_task.id', '=', 'android_submits.android_task_id')->where($where)->get();
|
||
|
|
|
||
|
|
|
||
|
|
//mulai sini autograding
|
||
|
|
|
||
|
|
$estimate = 0;
|
||
|
|
$total_submit = $submits->count();
|
||
|
|
|
||
|
|
if ( $submits->count() > 0 ) {
|
||
|
|
|
||
|
|
$total_test = 0;
|
||
|
|
|
||
|
|
foreach ( $submits AS $isi_sb ) {
|
||
|
|
|
||
|
|
$submit_id = $isi_sb->id;
|
||
|
|
|
||
|
|
|
||
|
|
$where_passed = [
|
||
|
|
|
||
|
|
'android_submit_id' => $isi_sb->id,
|
||
|
|
'status_validate' => "passed"
|
||
|
|
];
|
||
|
|
$test_passed = SubmitstestCase::join("android_testcase", "android_testcase.id", "=", "android_submits_testcase.android_testcase_id")->where($where_passed)->get();
|
||
|
|
|
||
|
|
// ambil informasi data task untuk memanggil bobot
|
||
|
|
$info_testcase = Testcase::where("task_id", $isi_sb->android_task_id)->get();
|
||
|
|
|
||
|
|
$bobot = 0;
|
||
|
|
foreach ( $info_testcase AS $isiit ) {
|
||
|
|
|
||
|
|
$bobot += $isiit->score;
|
||
|
|
}
|
||
|
|
|
||
|
|
$skor = 0;
|
||
|
|
foreach ( $test_passed AS $isitp ) {
|
||
|
|
|
||
|
|
$skor += $isitp->score;
|
||
|
|
}
|
||
|
|
|
||
|
|
$nilai = 0;
|
||
|
|
if ( $skor > 0 && $bobot > 0 ) {
|
||
|
|
|
||
|
|
$nilai = $skor / $bobot * 100;
|
||
|
|
// echo "masuk";
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// ----
|
||
|
|
|
||
|
|
// $dt_submit_testcase = array();
|
||
|
|
|
||
|
|
// $testcase = SubmitsTestCase::where("android_submit_id", $submit_id)->get();
|
||
|
|
|
||
|
|
// // autograding
|
||
|
|
// $passed = 0;
|
||
|
|
// foreach ( $testcase AS $det ) {
|
||
|
|
|
||
|
|
// if ( $det->status_validate == "passed" ) {
|
||
|
|
|
||
|
|
// $passed++;
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
|
||
|
|
// $persentage = ($passed / $testcase->count() * 100);
|
||
|
|
$total_test += $nilai;
|
||
|
|
$estimate += $isi_sb->duration;
|
||
|
|
|
||
|
|
|
||
|
|
// echo $nilai.'<br>';
|
||
|
|
}
|
||
|
|
|
||
|
|
$NA = $total_test / $total_submit;
|
||
|
|
|
||
|
|
|
||
|
|
// echo $total_test.' - '. $total_submit;
|
||
|
|
// echo $NA;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
$isi->status_waiting = $status;
|
||
|
|
$isi->progress = $progress;
|
||
|
|
$isi->grade = $grade;
|
||
|
|
$isi->total_task = $total_task;
|
||
|
|
$isi->akses_materi = $akses;
|
||
|
|
$isi->recent = $recent;
|
||
|
|
$isi->NA = $NA;
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// recent task
|
||
|
|
$where = array(
|
||
|
|
|
||
|
|
'android_task.android_topic_id' => $isi->id,
|
||
|
|
'user_id' => $id
|
||
|
|
);
|
||
|
|
$recent_task = Task_waiting::select("task_name", "title")
|
||
|
|
->join("android_task", "android_task.id", "=", "android_task_waiting.android_task_id")
|
||
|
|
->join("android_topics", "android_topics.id", "=", "android_task_waiting.android_topic_id")
|
||
|
|
->where( $where )->orderBy('android_task.created_at', 'desc')->get()->unique('android_topic_id');
|
||
|
|
|
||
|
|
array_push( $data_keseluruhan, $isi );
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
return view('android.student.material.index', compact('data_keseluruhan', 'recent_task'));
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// upload
|
||
|
|
public function upload( Request $request ) {
|
||
|
|
|
||
|
|
$request->validate([
|
||
|
|
|
||
|
|
'file' => 'required'
|
||
|
|
]);
|
||
|
|
|
||
|
|
$fileName = time().'-'.request()->file->getClientOriginalExtension();
|
||
|
|
request()->file->move(public_path('files'), $fileName);
|
||
|
|
|
||
|
|
return request()->json([
|
||
|
|
'success' => "You have successfully upload file"
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function task( Request $request, $topic_id ) {
|
||
|
|
|
||
|
|
// ambil data informasi topik
|
||
|
|
$topic = Topic::findOrFail( $topic_id );
|
||
|
|
$where = array(
|
||
|
|
'user_id' => Auth::user()->id,
|
||
|
|
'android_task_id' => $request->id
|
||
|
|
);
|
||
|
|
$submit_byId = Submits::where($where);
|
||
|
|
$data = [];
|
||
|
|
|
||
|
|
|
||
|
|
// cek memiliki id atau tidak
|
||
|
|
if ($request->filled('id')) {
|
||
|
|
|
||
|
|
$id_task_recommend = $request->id;
|
||
|
|
|
||
|
|
// ambil informasi data task berdasarkan id
|
||
|
|
$task = Task::findOrFail($id_task_recommend);
|
||
|
|
$testcase = Testcase::where("task_id", $id_task_recommend)->get();
|
||
|
|
|
||
|
|
// $task = Task::where('id', $id_task_recommend);
|
||
|
|
|
||
|
|
|
||
|
|
$submit_information = array();
|
||
|
|
$submit_testcase = array();
|
||
|
|
if ( $submit_byId->count() > 0 ) {
|
||
|
|
|
||
|
|
$submits = $submit_byId->first();
|
||
|
|
|
||
|
|
$submitTestCase = SubmitsTestCase::where("android_submit_id", $submits->id)->get();
|
||
|
|
|
||
|
|
$submit_information = $submits;
|
||
|
|
$submit_testcase = $submitTestCase;
|
||
|
|
|
||
|
|
|
||
|
|
// echo json_encode($submits->id);
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// cek apakah sudah mengakses materi ?
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// next material
|
||
|
|
$next = Task::where('id', '>', $task->id);
|
||
|
|
|
||
|
|
if ( $next->count() > 0 ) {
|
||
|
|
|
||
|
|
$url = '/android23/task/'.$topic_id.'?id='. $next->min('id');
|
||
|
|
} else {
|
||
|
|
|
||
|
|
$url = '/android23/task/'.$topic_id.'?id='. $id_task_recommend.'&type=final';
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
$dt_task = array();
|
||
|
|
$tasks = Task::where("android_topic_id", $topic_id)->orderBy('task_no', 'ASC')->get();
|
||
|
|
|
||
|
|
foreach ( $tasks AS $isi_tsk ) {
|
||
|
|
|
||
|
|
$where = [
|
||
|
|
|
||
|
|
'user_id' => Auth::user()->id,
|
||
|
|
'android_topic_id' => $topic_id,
|
||
|
|
'android_task_id' => $isi_tsk->id,
|
||
|
|
|
||
|
|
];
|
||
|
|
$task_waiting = Task_waiting::where($where)->get();
|
||
|
|
|
||
|
|
if ( $task_waiting->count() == 0 ) {
|
||
|
|
|
||
|
|
$isi_tsk->status_akses = false;
|
||
|
|
} else {
|
||
|
|
|
||
|
|
$isi_tsk->status_akses = true;
|
||
|
|
}
|
||
|
|
|
||
|
|
array_push( $dt_task, $isi_tsk );
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
$data = array(
|
||
|
|
|
||
|
|
'topic_id' => $topic_id,
|
||
|
|
'id' => $id_task_recommend,
|
||
|
|
'task' => $task,
|
||
|
|
'testcase' => $testcase,
|
||
|
|
'topic' => $topic,
|
||
|
|
'all_task' => $dt_task,
|
||
|
|
'submit_information' => $submit_information,
|
||
|
|
'submit_testcase' => $submit_testcase,
|
||
|
|
'request' => $request,
|
||
|
|
'taskwaiting' => $task_waiting->count(),
|
||
|
|
'urlku' => $url
|
||
|
|
);
|
||
|
|
|
||
|
|
// echo $url;
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// cek apabila request sudah final
|
||
|
|
if ( $request->type == "final" ) {
|
||
|
|
|
||
|
|
$where_enroll = array(
|
||
|
|
|
||
|
|
'user_id' => Auth::user()->id,
|
||
|
|
'android_topic_id' => $topic_id
|
||
|
|
);
|
||
|
|
$enrollment = Enrollment::where($where_enroll)->first();
|
||
|
|
|
||
|
|
|
||
|
|
$dt_all_submit = array();
|
||
|
|
$where = array(
|
||
|
|
|
||
|
|
'user_id' => Auth::user()->id, // 1577
|
||
|
|
'android_submits.android_topic_id' => $topic_id // 11
|
||
|
|
);
|
||
|
|
$submits = Submits::select('android_task_id','android_submits.id','android_task.task_name', 'android_submits.created_at', 'android_submits.duration')
|
||
|
|
->join('android_task', 'android_task.id', '=', 'android_submits.android_task_id')->where($where)->get();
|
||
|
|
|
||
|
|
|
||
|
|
//mulai sini autograding
|
||
|
|
$NA = 0;
|
||
|
|
$estimate = 0;
|
||
|
|
$total_submit = $submits->count();
|
||
|
|
|
||
|
|
if ( $submits->count() > 0 ) {
|
||
|
|
|
||
|
|
$total_test = 0;
|
||
|
|
|
||
|
|
foreach ( $submits AS $isi ) {
|
||
|
|
|
||
|
|
$submit_id = $isi->id;
|
||
|
|
$dt_submit_testcase = array();
|
||
|
|
|
||
|
|
$testcase = SubmitsTestCase::where("android_submit_id", $submit_id)->get();
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// autograding
|
||
|
|
$where_passed = [
|
||
|
|
|
||
|
|
'android_submit_id' => $isi->id,
|
||
|
|
'status_validate' => "passed"
|
||
|
|
];
|
||
|
|
$test_passed = SubmitstestCase::join("android_testcase", "android_testcase.id", "=", "android_submits_testcase.android_testcase_id")->where($where_passed)->get();
|
||
|
|
|
||
|
|
// ambil informasi data task untuk memanggil bobot
|
||
|
|
$info_testcase = Testcase::where("task_id", $isi->android_task_id)->get();
|
||
|
|
|
||
|
|
$bobot = 0;
|
||
|
|
foreach ( $info_testcase AS $isiit ) {
|
||
|
|
|
||
|
|
$bobot += $isiit->score;
|
||
|
|
}
|
||
|
|
|
||
|
|
$skor = 0;
|
||
|
|
foreach ( $test_passed AS $isitp ) {
|
||
|
|
|
||
|
|
$skor += $isitp->score;
|
||
|
|
}
|
||
|
|
|
||
|
|
$nilai = 0;
|
||
|
|
if ( $skor > 0 && $bobot > 0 ) {
|
||
|
|
|
||
|
|
$nilai = $skor / $bobot * 100;
|
||
|
|
}
|
||
|
|
|
||
|
|
$total_test += $nilai;
|
||
|
|
|
||
|
|
|
||
|
|
// echo $isi->android_task_id.'<br>';
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// autograding (old)
|
||
|
|
// $passed = 0;
|
||
|
|
// foreach ( $testcase AS $det ) {
|
||
|
|
|
||
|
|
// if ( $det->status_validate == "passed" ) {
|
||
|
|
|
||
|
|
// $passed++;
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
|
||
|
|
// $persentage = ($passed / $testcase->count() * 100);
|
||
|
|
// $total_test += $persentage;
|
||
|
|
// total_test = total_NA + persentage
|
||
|
|
// total_test = 0 + 57
|
||
|
|
// total_test = 57
|
||
|
|
|
||
|
|
// total_test = total_test + persentnage
|
||
|
|
// total test = 57 + 75
|
||
|
|
$estimate += $isi->duration;
|
||
|
|
|
||
|
|
array_push( $dt_all_submit, [
|
||
|
|
|
||
|
|
'info' => $isi,
|
||
|
|
'persentage' => $nilai,
|
||
|
|
'testcase' => $testcase
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
$NA = $total_test / $total_submit;
|
||
|
|
}
|
||
|
|
|
||
|
|
$add = array(
|
||
|
|
|
||
|
|
'submits' => $dt_all_submit,
|
||
|
|
'NA' => $NA,
|
||
|
|
'submit_submission' => SubmitsFinalSubmission::all(),
|
||
|
|
'enrollment' => $enrollment,
|
||
|
|
'estimate' => $estimate
|
||
|
|
);
|
||
|
|
|
||
|
|
// merge
|
||
|
|
$data = array_merge($data, $add);
|
||
|
|
}
|
||
|
|
|
||
|
|
// return view
|
||
|
|
|
||
|
|
} else {
|
||
|
|
|
||
|
|
// last recomend
|
||
|
|
$id_task_recommend = "";
|
||
|
|
$where = [
|
||
|
|
|
||
|
|
'user_id' => Auth::user()->id,
|
||
|
|
'android_topic_id' => $topic_id,
|
||
|
|
];
|
||
|
|
$recommend = Task_waiting::where( $where )->orderBy('created_at', 'DESC');
|
||
|
|
if ( $recommend->count() == 0 ) {
|
||
|
|
|
||
|
|
// memberikan id awal
|
||
|
|
// ambil materi awal task berdasarkan topic id
|
||
|
|
$dt_task = Task::where('android_topic_id', $topic_id)->first();
|
||
|
|
$id_task_recommend = $dt_task->id;
|
||
|
|
} else {
|
||
|
|
|
||
|
|
$dt_task = $recommend->first();
|
||
|
|
$id_task_recommend = $dt_task->android_task_id;
|
||
|
|
}
|
||
|
|
|
||
|
|
// echo "test";
|
||
|
|
// redirect . ..
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// access materi update
|
||
|
|
$cektaskwaiting = array(
|
||
|
|
|
||
|
|
'user_id' => Auth::user()->id,
|
||
|
|
'android_topic_id' => $topic_id,
|
||
|
|
'android_task_id' => $id_task_recommend
|
||
|
|
);
|
||
|
|
|
||
|
|
|
||
|
|
// cek
|
||
|
|
$cekTask = Task_waiting::where( $cektaskwaiting )->get();
|
||
|
|
if ( $cekTask->count() == 0 ) {
|
||
|
|
|
||
|
|
Task_waiting::create( $cektaskwaiting );
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// print_r( $data );
|
||
|
|
if ( $request->filled('id') ) {
|
||
|
|
|
||
|
|
return view('android.student/material/task', $data);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
} else {
|
||
|
|
return redirect('android23/task/'. $topic_id.'?id='. $id_task_recommend);
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
//validation result
|
||
|
|
public function validation() {
|
||
|
|
|
||
|
|
// informasi login sebagai
|
||
|
|
$id = Auth::user()->id;
|
||
|
|
|
||
|
|
$kondisi = ["user_id" => $id, 'status' => "complete"];
|
||
|
|
$enrollment = Enrollment::where($kondisi)->get();
|
||
|
|
|
||
|
|
$dt_keseluruhan = array();
|
||
|
|
|
||
|
|
if ( $enrollment->count() > 0 ) {
|
||
|
|
|
||
|
|
foreach ( $enrollment AS $isi ) {
|
||
|
|
|
||
|
|
// id topik
|
||
|
|
$topic_id = $isi->android_topic_id;
|
||
|
|
$topic = Topic::find( $topic_id );
|
||
|
|
|
||
|
|
$where_task = ["android_topic_id" => $topic_id, 'user_id' => $id];
|
||
|
|
// $task = Task::where( $where_task )->get();
|
||
|
|
|
||
|
|
// ambil data submits
|
||
|
|
$submit = Submits::where($where_task)->get();
|
||
|
|
|
||
|
|
$isi->submit = $submit;
|
||
|
|
$isi->topic = $topic;
|
||
|
|
// $isi->task = $task;
|
||
|
|
|
||
|
|
|
||
|
|
array_push( $dt_keseluruhan, $isi );
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// echo "oke";
|
||
|
|
return view('android.student.validation.index', compact('dt_keseluruhan'));
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
public function validation_detail( $topic_id ) {
|
||
|
|
|
||
|
|
$enrollment = Enrollment::where( "android_topic_id", $topic_id )->first();
|
||
|
|
|
||
|
|
|
||
|
|
$dt_all_submit = array();
|
||
|
|
$where = array(
|
||
|
|
|
||
|
|
'user_id' => Auth::user()->id, // 1577
|
||
|
|
'android_submits.android_topic_id' => $topic_id // 11
|
||
|
|
);
|
||
|
|
$submits = Submits::select('android_task_id','android_submits.id','android_task.task_name', 'android_submits.created_at', 'android_submits.duration')
|
||
|
|
->join('android_task', 'android_task.id', '=', 'android_submits.android_task_id')->where($where)->get();
|
||
|
|
|
||
|
|
|
||
|
|
//mulai sini autograding
|
||
|
|
$NA = 0;
|
||
|
|
$estimate = 0;
|
||
|
|
$total_submit = $submits->count();
|
||
|
|
|
||
|
|
if ( $submits->count() > 0 ) {
|
||
|
|
|
||
|
|
$total_test = 0;
|
||
|
|
|
||
|
|
foreach ( $submits AS $isi ) {
|
||
|
|
|
||
|
|
$submit_id = $isi->id;
|
||
|
|
$dt_submit_testcase = array();
|
||
|
|
|
||
|
|
$testcase = SubmitsTestCase::where("android_submit_id", $submit_id)->get();
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// autograding
|
||
|
|
$where_passed = [
|
||
|
|
|
||
|
|
'android_submit_id' => $isi->id,
|
||
|
|
'status_validate' => "passed"
|
||
|
|
];
|
||
|
|
$test_passed = SubmitstestCase::join("android_testcase", "android_testcase.id", "=", "android_submits_testcase.android_testcase_id")->where($where_passed)->get();
|
||
|
|
|
||
|
|
// ambil informasi data task untuk memanggil bobot
|
||
|
|
$info_testcase = Testcase::where("task_id", $isi->android_task_id)->get();
|
||
|
|
|
||
|
|
$bobot = 0;
|
||
|
|
foreach ( $info_testcase AS $isiit ) {
|
||
|
|
|
||
|
|
$bobot += $isiit->score;
|
||
|
|
}
|
||
|
|
|
||
|
|
$skor = 0;
|
||
|
|
foreach ( $test_passed AS $isitp ) {
|
||
|
|
|
||
|
|
$skor += $isitp->score;
|
||
|
|
}
|
||
|
|
|
||
|
|
$nilai = 0;
|
||
|
|
if ( $skor > 0 && $bobot > 0 ) {
|
||
|
|
|
||
|
|
$nilai = $skor / $bobot * 100;
|
||
|
|
}
|
||
|
|
|
||
|
|
$total_test += $nilai;
|
||
|
|
|
||
|
|
|
||
|
|
// echo $isi->android_task_id.'<br>';
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// autograding (old)
|
||
|
|
// $passed = 0;
|
||
|
|
// foreach ( $testcase AS $det ) {
|
||
|
|
|
||
|
|
// if ( $det->status_validate == "passed" ) {
|
||
|
|
|
||
|
|
// $passed++;
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
|
||
|
|
// $persentage = ($passed / $testcase->count() * 100);
|
||
|
|
// $total_test += $persentage;
|
||
|
|
// total_test = total_NA + persentage
|
||
|
|
// total_test = 0 + 57
|
||
|
|
// total_test = 57
|
||
|
|
|
||
|
|
// total_test = total_test + persentnage
|
||
|
|
// total test = 57 + 75
|
||
|
|
$estimate += $isi->duration;
|
||
|
|
|
||
|
|
array_push( $dt_all_submit, [
|
||
|
|
|
||
|
|
'info' => $isi,
|
||
|
|
'persentage' => $nilai,
|
||
|
|
'testcase' => $testcase
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
$NA = $total_test / $total_submit;
|
||
|
|
}
|
||
|
|
|
||
|
|
$dt_keseluruhan = array(
|
||
|
|
|
||
|
|
'submits' => $dt_all_submit,
|
||
|
|
'NA' => $NA,
|
||
|
|
'submit_submission' => SubmitsFinalSubmission::all(),
|
||
|
|
'enrollment' => $enrollment,
|
||
|
|
'estimate' => $estimate
|
||
|
|
);
|
||
|
|
|
||
|
|
return view('android.student.validation.detail', compact('dt_keseluruhan'));
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
}
|