Kuesioner User
This commit is contained in:
parent
18ee02d8a0
commit
dedbf5bd92
|
@ -6,12 +6,18 @@
|
|||
use App\Models\Hasil;
|
||||
use App\Models\Kuesioner;
|
||||
use App\Models\Periode;
|
||||
use App\Models\PilihPeriode;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class QuestionnaireController extends Controller
|
||||
{
|
||||
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();
|
||||
return view('backend.users_questionnaire', compact('kuesioners'));
|
||||
}
|
||||
|
@ -19,11 +25,10 @@ public function index()
|
|||
public function store(Request $request)
|
||||
{
|
||||
$idUser = auth()->user()->id;
|
||||
|
||||
$lastPeriode = Periode::latest()->first();
|
||||
$periode = Hasil::where('id_user', $idUser)->where('id_periode', $lastPeriode)->count();
|
||||
$checkPeriod = PilihPeriode::first();
|
||||
$periode = Hasil::where('id_user', $idUser)->where('id_periode', $checkPeriod->id_periode)->count();
|
||||
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
|
||||
|
||||
|
@ -54,26 +59,26 @@ public function store(Request $request)
|
|||
$kmTotal = $totalsPerGroup[1] + $totalsPerGroup[2] + $totalsPerGroup[3];
|
||||
$kmClass = null;
|
||||
if ($kmTotal >= 63) {
|
||||
$kmClass = 'Tinggi';
|
||||
$kmClass = 'High';
|
||||
} else if ($kmTotal >= 42) {
|
||||
$kmClass = 'Sedang';
|
||||
$kmClass = 'Medium';
|
||||
} else {
|
||||
$kmClass = 'Rendah';
|
||||
$kmClass = 'Low';
|
||||
}
|
||||
|
||||
$rmTotal = $totalsPerGroup[4] + $totalsPerGroup[5] + $totalsPerGroup[6] + $totalsPerGroup[7] + $totalsPerGroup[8];
|
||||
$rmClass = null;
|
||||
if ($rmTotal >= 63) {
|
||||
$rmClass = 'Tinggi';
|
||||
$rmClass = 'High';
|
||||
} else if ($rmTotal >= 42) {
|
||||
$rmClass = 'Sedang';
|
||||
$rmClass = 'Medium';
|
||||
} else {
|
||||
$rmClass = 'Rendah';
|
||||
$rmClass = 'Low';
|
||||
}
|
||||
|
||||
Hasil::create([
|
||||
'id_user' => $idUser,
|
||||
'id_periode' => 1,
|
||||
'id_periode' => $checkPeriod->id_periode,
|
||||
'declarative_knowledge' => $totalsPerGroup[1],
|
||||
'procedural_knowledge' => $totalsPerGroup[2],
|
||||
'conditional_knowledge' => $totalsPerGroup[3],
|
||||
|
@ -88,6 +93,6 @@ public function store(Request $request)
|
|||
'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 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>
|
||||
<span>Kuesioner</span>
|
||||
</a>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
|
||||
<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>
|
||||
</main>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<h1>Isi Kuesioner</h1>
|
||||
<nav>
|
||||
<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>
|
||||
</ol>
|
||||
</nav>
|
||||
|
@ -38,7 +38,7 @@
|
|||
<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>
|
||||
|
||||
<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>
|
||||
|
||||
<div class="invalid-feedback mt-3 text-end w-100">
|
||||
|
|
|
@ -36,12 +36,9 @@
|
|||
Route::resource('questionnaire', 'QuestionnaireController')->names('userQuestionnaire');
|
||||
|
||||
// hanya tampilan
|
||||
Route::get('instruction', function () {
|
||||
return view('backend.questionnaire_instructions');
|
||||
})->name('user.instruction');
|
||||
Route::get('check-questionnaire', function () {
|
||||
return view('backend.not_filled_questionnaire');
|
||||
})->name('user.checkFilled');
|
||||
Route::get('instruction', 'UiController@instruction')->name('user.questionnaire.instruction');
|
||||
Route::get('check-questionnaire', 'UiController@checkQuestionnaire')->name('user.questionnaire.check');
|
||||
Route::get('closed-questionnaire', 'UiController@closedQuestionnaire')->name('user.questionnaire.closed');
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -56,8 +53,8 @@
|
|||
Route::resource('admin-result', 'AdminResultController')->names('adminResult');
|
||||
Route::resource('admin-period', 'AdminPeriodController')->names('adminPeriod');
|
||||
|
||||
Route::post('/select-period', [SelectPeriodController::class, 'update'])->name('adminSelectPeriod');
|
||||
Route::post('/select-period/active', [SelectPeriodController::class, 'active'])->name('adminSelectPeriod.active');
|
||||
Route::post('/select-period', 'SelectPeriodController@update')->name('adminSelectPeriod');
|
||||
Route::post('/select-period/active', 'SelectPeriodController@active')->name('adminSelectPeriod.active');
|
||||
|
||||
// Route::post('listuser', [UserController::class, 'store']);
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue