Kuesioner User
This commit is contained in:
parent
18ee02d8a0
commit
dedbf5bd92
|
@ -6,12 +6,18 @@
|
||||||
use App\Models\Hasil;
|
use App\Models\Hasil;
|
||||||
use App\Models\Kuesioner;
|
use App\Models\Kuesioner;
|
||||||
use App\Models\Periode;
|
use App\Models\Periode;
|
||||||
|
use App\Models\PilihPeriode;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class QuestionnaireController extends Controller
|
class QuestionnaireController extends Controller
|
||||||
{
|
{
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
|
$idUser = auth()->user()->id;
|
||||||
|
$checkKuesioner = Hasil::where('id_user', $idUser)->count();
|
||||||
|
if ($checkKuesioner > 0) {
|
||||||
|
return redirect()->route('user.questionnaire.check');
|
||||||
|
}
|
||||||
$kuesioners = Kuesioner::get();
|
$kuesioners = Kuesioner::get();
|
||||||
return view('backend.users_questionnaire', compact('kuesioners'));
|
return view('backend.users_questionnaire', compact('kuesioners'));
|
||||||
}
|
}
|
||||||
|
@ -19,11 +25,10 @@ public function index()
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$idUser = auth()->user()->id;
|
$idUser = auth()->user()->id;
|
||||||
|
$checkPeriod = PilihPeriode::first();
|
||||||
$lastPeriode = Periode::latest()->first();
|
$periode = Hasil::where('id_user', $idUser)->where('id_periode', $checkPeriod->id_periode)->count();
|
||||||
$periode = Hasil::where('id_user', $idUser)->where('id_periode', $lastPeriode)->count();
|
|
||||||
if ($periode > 0) {
|
if ($periode > 0) {
|
||||||
return redirect()->route('user.checkFilled')->with('error', 'Gagal, anda sudah pernah mengisikan kuesioner');
|
return redirect()->route('user.questionnaire.check')->with('error', 'Gagal, anda sudah pernah mengisikan kuesioner');
|
||||||
}
|
}
|
||||||
$answer = []; // Array yang berisi data jawaban
|
$answer = []; // Array yang berisi data jawaban
|
||||||
|
|
||||||
|
@ -54,26 +59,26 @@ public function store(Request $request)
|
||||||
$kmTotal = $totalsPerGroup[1] + $totalsPerGroup[2] + $totalsPerGroup[3];
|
$kmTotal = $totalsPerGroup[1] + $totalsPerGroup[2] + $totalsPerGroup[3];
|
||||||
$kmClass = null;
|
$kmClass = null;
|
||||||
if ($kmTotal >= 63) {
|
if ($kmTotal >= 63) {
|
||||||
$kmClass = 'Tinggi';
|
$kmClass = 'High';
|
||||||
} else if ($kmTotal >= 42) {
|
} else if ($kmTotal >= 42) {
|
||||||
$kmClass = 'Sedang';
|
$kmClass = 'Medium';
|
||||||
} else {
|
} else {
|
||||||
$kmClass = 'Rendah';
|
$kmClass = 'Low';
|
||||||
}
|
}
|
||||||
|
|
||||||
$rmTotal = $totalsPerGroup[4] + $totalsPerGroup[5] + $totalsPerGroup[6] + $totalsPerGroup[7] + $totalsPerGroup[8];
|
$rmTotal = $totalsPerGroup[4] + $totalsPerGroup[5] + $totalsPerGroup[6] + $totalsPerGroup[7] + $totalsPerGroup[8];
|
||||||
$rmClass = null;
|
$rmClass = null;
|
||||||
if ($rmTotal >= 63) {
|
if ($rmTotal >= 63) {
|
||||||
$rmClass = 'Tinggi';
|
$rmClass = 'High';
|
||||||
} else if ($rmTotal >= 42) {
|
} else if ($rmTotal >= 42) {
|
||||||
$rmClass = 'Sedang';
|
$rmClass = 'Medium';
|
||||||
} else {
|
} else {
|
||||||
$rmClass = 'Rendah';
|
$rmClass = 'Low';
|
||||||
}
|
}
|
||||||
|
|
||||||
Hasil::create([
|
Hasil::create([
|
||||||
'id_user' => $idUser,
|
'id_user' => $idUser,
|
||||||
'id_periode' => 1,
|
'id_periode' => $checkPeriod->id_periode,
|
||||||
'declarative_knowledge' => $totalsPerGroup[1],
|
'declarative_knowledge' => $totalsPerGroup[1],
|
||||||
'procedural_knowledge' => $totalsPerGroup[2],
|
'procedural_knowledge' => $totalsPerGroup[2],
|
||||||
'conditional_knowledge' => $totalsPerGroup[3],
|
'conditional_knowledge' => $totalsPerGroup[3],
|
||||||
|
@ -88,6 +93,6 @@ public function store(Request $request)
|
||||||
'rm_class' => $rmClass,
|
'rm_class' => $rmClass,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return $idUser;
|
return redirect()->route('user.questionnaire.check');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\backend;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\Hasil;
|
||||||
|
use App\Models\PilihPeriode;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class UiController extends Controller
|
||||||
|
{
|
||||||
|
public function instruction()
|
||||||
|
{
|
||||||
|
return view('backend.questionnaire_instructions');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function checkQuestionnaire()
|
||||||
|
{
|
||||||
|
$checkPeriod = PilihPeriode::first();
|
||||||
|
if ($checkPeriod->aktif == 0 || !$checkPeriod->id_periode) {
|
||||||
|
return view('backend.closed_questionnaire');
|
||||||
|
}
|
||||||
|
$idUser = auth()->user()->id;
|
||||||
|
|
||||||
|
$countResult = Hasil::where('id_user', $idUser)->where('id_periode', $checkPeriod->id_periode)->count();
|
||||||
|
if ($countResult > 0) {
|
||||||
|
return view('backend.completed_questionnaire');
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('backend.not_filled_questionnaire');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function closedQuestionnaire()
|
||||||
|
{
|
||||||
|
return view('backend.closed_questionnaire');
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 8.7 KiB |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 6.1 KiB |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 8.7 KiB |
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 6.8 KiB |
|
@ -0,0 +1,14 @@
|
||||||
|
@extends('backend/layouts.template')
|
||||||
|
@section('content')
|
||||||
|
<main id="main" class="main bg-white">
|
||||||
|
<div class="bg-white p-3 text-center">
|
||||||
|
<div class="d-flex justify-content-center w-100">
|
||||||
|
<div class="col-lg-6 col-xl-5 col-md-8 col-sm-11 col-12 d-flex">
|
||||||
|
<img src="{{ asset('admin_backend/assets/img/closed_questionnaire.svg') }}" alt="" style="max-width:100%; max-height:100%;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h4 class="font-bold pt-4">Ups! Periode pengisian kuesioner belum dibuka!</h4>
|
||||||
|
<p class="pt-1 text-secondary">Silakan kembali lagi nanti atau cek informasi terbaru untuk melihat kapan periode pengisian akan dibuka. Terima kasih atas pengertiannya.</p>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
@endsection
|
|
@ -0,0 +1,14 @@
|
||||||
|
@extends('backend/layouts.template')
|
||||||
|
@section('content')
|
||||||
|
<main id="main" class="main bg-white">
|
||||||
|
<div class="bg-white p-3 text-center">
|
||||||
|
<div class="d-flex justify-content-center w-100">
|
||||||
|
<div class="col-lg-5 col-xl-5 col-md-8 col-sm-8 col-12 d-flex">
|
||||||
|
<img src="{{ asset('admin_backend/assets/img/completed_quiestionnaire.svg') }}" alt="" style="max-width:100%; max-height:100%;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h4 class="font-bold pt-4">Anda telah mengisikan kuesioner!</h4>
|
||||||
|
<p class="pt-1 text-secondary">Anda telah berhasil menyelesaikan kuesioner yang telah kami sediakan. Terima kasih atas partisipasi Anda dalam memberikan masukan penting kepada kami.</p>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
@endsection
|
|
@ -17,7 +17,7 @@
|
||||||
</li><!-- End Dashboard Nav -->
|
</li><!-- End Dashboard Nav -->
|
||||||
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link collapsed" href="{{ route('user.checkFilled')}}">
|
<a class="nav-link collapsed" href="{{ route('user.questionnaire.check')}}">
|
||||||
<i class="bi bi-pencil"></i>
|
<i class="bi bi-pencil"></i>
|
||||||
<span>Kuesioner</span>
|
<span>Kuesioner</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
|
|
||||||
<div class="mt-4 mb-1 text-center">
|
<div class="mt-4 mb-1 text-center">
|
||||||
<a href="{{ route('user.instruction') }}" class="btn btn-primary">Mulai Isi Kuesioner <i class="bi bi-arrow-right"></i></a>
|
<a href="{{ route('user.questionnaire.instruction') }}" class="btn btn-primary">Mulai Isi Kuesioner <i class="bi bi-arrow-right"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<h1>Isi Kuesioner</h1>
|
<h1>Isi Kuesioner</h1>
|
||||||
<nav>
|
<nav>
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li class="breadcrumb-item"><a href="{{ route('user.instruction') }}">Instruksi</a></li>
|
<li class="breadcrumb-item"><a href="{{ route('user.questionnaire.instruction') }}">Instruksi</a></li>
|
||||||
<li class="breadcrumb-item active">Isi Kuesioner</li>
|
<li class="breadcrumb-item active">Isi Kuesioner</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
<input value="3" type="radio" class="form-check-input" id="radio3{{ $kuesioner->id }}" name="optionsGroup{{ $kuesioner->id }}">
|
<input value="3" type="radio" class="form-check-input" id="radio3{{ $kuesioner->id }}" name="optionsGroup{{ $kuesioner->id }}">
|
||||||
<label class="form-check-label pe-1 pe-sm-5 ps-1" for="radio3{{ $kuesioner->id }}">3</label>
|
<label class="form-check-label pe-1 pe-sm-5 ps-1" for="radio3{{ $kuesioner->id }}">3</label>
|
||||||
|
|
||||||
<input value="4" type="radio" class="form-check-input" id="radio4{{ $kuesioner->id }}" name="optionsGroup{{ $kuesioner->id }}">
|
<input checked value="4" type="radio" class="form-check-input" id="radio4{{ $kuesioner->id }}" name="optionsGroup{{ $kuesioner->id }}">
|
||||||
<label class="form-check-label pe-1 pe-sm-5 ps-1" for="radio4{{ $kuesioner->id }}">4</label>
|
<label class="form-check-label pe-1 pe-sm-5 ps-1" for="radio4{{ $kuesioner->id }}">4</label>
|
||||||
|
|
||||||
<div class="invalid-feedback mt-3 text-end w-100">
|
<div class="invalid-feedback mt-3 text-end w-100">
|
||||||
|
|
|
@ -36,12 +36,9 @@
|
||||||
Route::resource('questionnaire', 'QuestionnaireController')->names('userQuestionnaire');
|
Route::resource('questionnaire', 'QuestionnaireController')->names('userQuestionnaire');
|
||||||
|
|
||||||
// hanya tampilan
|
// hanya tampilan
|
||||||
Route::get('instruction', function () {
|
Route::get('instruction', 'UiController@instruction')->name('user.questionnaire.instruction');
|
||||||
return view('backend.questionnaire_instructions');
|
Route::get('check-questionnaire', 'UiController@checkQuestionnaire')->name('user.questionnaire.check');
|
||||||
})->name('user.instruction');
|
Route::get('closed-questionnaire', 'UiController@closedQuestionnaire')->name('user.questionnaire.closed');
|
||||||
Route::get('check-questionnaire', function () {
|
|
||||||
return view('backend.not_filled_questionnaire');
|
|
||||||
})->name('user.checkFilled');
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -56,8 +53,8 @@
|
||||||
Route::resource('admin-result', 'AdminResultController')->names('adminResult');
|
Route::resource('admin-result', 'AdminResultController')->names('adminResult');
|
||||||
Route::resource('admin-period', 'AdminPeriodController')->names('adminPeriod');
|
Route::resource('admin-period', 'AdminPeriodController')->names('adminPeriod');
|
||||||
|
|
||||||
Route::post('/select-period', [SelectPeriodController::class, 'update'])->name('adminSelectPeriod');
|
Route::post('/select-period', 'SelectPeriodController@update')->name('adminSelectPeriod');
|
||||||
Route::post('/select-period/active', [SelectPeriodController::class, 'active'])->name('adminSelectPeriod.active');
|
Route::post('/select-period/active', 'SelectPeriodController@active')->name('adminSelectPeriod.active');
|
||||||
|
|
||||||
// Route::post('listuser', [UserController::class, 'store']);
|
// Route::post('listuser', [UserController::class, 'store']);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue