|
Server : Apache/2.4.41 (Ubuntu) System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.2.12 Disable Function : NONE Directory : /var/www/parassaas.edukrypt.in/app/Http/Controllers/ |
Upload File : |
<?php
namespace App\Http\Controllers;
use App\Models\Content;
use App\Models\Mcq;
use App\Models\Mcq_option;
use App\Models\Mcq_history;
use App\Models\Mcq_ques_gp;
use App\Models\Mcq_question;
use Illuminate\Http\Request;
use App\Models\Mcq_user_answer;
use App\Models\Upload_mcq_file;
use Illuminate\Support\Facades\DB;
class PracticeController extends Controller
{
public function list()
{
$admin_id = '2';
$data['mainMenu'] = 'databaseManagement';
$data['subMenu'] = 'practiceList';
if (isset($_GET['query']) && strlen($_GET['query']) > 1) {
$search_text = $_GET['query'];
$data['practice_quiz'] = Mcq::where('admin_id', $admin_id)->where('name', 'LIKE', '%' . $search_text . '%')
->paginate(10);
} else {
$data['practice_quiz'] = Mcq::where('admin_id', $admin_id)
->paginate(10);
}
return view('admin.practice_quiz.list', $data);
}
// ADD
public function add()
{
$data['mainMenu'] = 'databaseManagement';
$data['subMenu'] = 'practiceList';
return view('admin.practice_quiz.add', $data);
}
// ADD POST
public function save(Request $request)
{
$admin_id = $request->session()->get('loggedIn')['id'];
$request->validate([
'name' => 'required',
'instruction' => 'required',
'time_limit' => 'required',
'retake_attempt' => 'required',
'passing_percent' => 'required'
]);
$data = array(
'admin_id' => $admin_id,
'name' => $request->name,
'instruction' => $request->instruction,
'time_limit' => $request->time_limit,
'retake_attempt' => $request->retake_attempt,
'nooftimes' => empty($request->nooftimes) ? '0' : $request->nooftimes,
'passing_percentage' => $request->passing_percent,
'status' => '1',
);
$res = Mcq::create($data);
if ($res) {
return back()
->with('success', 'Quiz ' . $request->name . ' Has Been Added!.');
} else {
return back()
->with('error', 'Something Went Wrong!');
}
}
// VIEW
public function view($id)
{
$data['mainMenu'] = 'databaseManagement';
$data['subMenu'] = 'practiceList';
$data['quiz_id'] = $id;
$data['mcq'] = Mcq::where(['id' => $id])->first();
return view('admin.practice_quiz.view', $data);
}
// EDIT
public function edit($id)
{
$data['mainMenu'] = 'databaseManagement';
$data['subMenu'] = 'practiceList';
$data['quiz_id'] = $id;
$data['mcq'] = Mcq::where(['id' => $id])->first();
return view('admin.practice_quiz.edit', $data);
}
// Edit Post
public function update(Request $request, $id)
{
$request->validate([
'name' => 'required',
'instruction' => 'required',
'time_limit' => 'required',
'retake_attempt' => 'required',
'passing_percent' => 'required'
]);
$data = array(
'name' => $request->name,
'instruction' => $request->instruction,
'time_limit' => $request->time_limit,
'retake_attempt' => $request->retake_attempt,
'nooftimes' => $request->nooftimes,
'passing_percentage' => $request->passing_percent
);
$res = Mcq::where(['id' => $id])->update($data);
if ($res) {
return back()
->with('success', 'Quiz ' . $request->name . ' Has Been Updated!.');
} else {
return back()
->with('error', 'Something Went Wrong!');
}
}
// Delete Quiz
public function delete($id)
{
Content::where('video_id', $id)->where('type', 'practice_test')->delete();
Mcq_ques_gp::where(['mcq_id' => $id])->delete();
Mcq_user_answer::where(['mcq_id' => $id])->delete();
Mcq_history::where(['mcq_id' => $id])->delete();
Mcq::where(['id' => $id])->delete();
return back()->with('success', 'Practice Test deleted successfully');
}
// Map Question list =============================
public function map_practice_question($id)
{
$admin_id = '2';
$data['mainMenu'] = 'databaseManagement';
$data['subMenu'] = 'practiceList';
$data['quiz_id'] = $id;
$data['mcq'] = Mcq::where(['id' => $id])->first();
$data['questions'] = Mcq_question::where(['admin_id' => $admin_id])->select('id', 'question', 'code')->get();
return view('admin.practice_quiz.mapped-question-list', $data);
}
// GET Map Question list ======================
public function map_practice_question_list(Request $request, $id)
{
$admin_id = '2';
$data['mainMenu'] = 'databaseManagement';
$data['subMenu'] = 'practiceList';
$data['quiz_id'] = $id;
// Topic For Filter
$data['topics'] = Mcq_question::where(['admin_id' => $admin_id])->groupBy('tags')->get(['tags']);
// MCQ Where Mapping
$data['mcq'] = Mcq::where(['id' => $id])->first();
// Question Already Mapped
$questions = Mcq::where('id', $id)->with('mcq_question')->first();
$data['mappedQuestions'] = $questions->mcq_question()->paginate(10);
return view('admin.practice_quiz.mapped-question-list', $data);
}
// Question By Tags Json ===========================
public function quiz_question_by_tags(Request $request, $mcq_id)
{
$questions = Mcq_question::whereNotIn('id', function ($query) use ($mcq_id) {
$query->select('mcq_question_id')->from('mcq_ques_gps')->where('mcq_id', $mcq_id);
})->where('parent_id', '0')->where('tags', $request->tag)->get(['id', 'code as text']);
return response()->json($questions);
}
// MAP New Question Post
public function save_map_practice_question(Request $request, $id)
{
$mcq_ques_id = $request->mcq_ques_id;
$admin_id = $request->session()->get('loggedIn')['id'];
$request->validate([
'mcq_ques_id' => 'required',
]);
if (!empty($mcq_ques_id)) {
foreach ($mcq_ques_id as $mcq_ques) {
$data = array(
'admin_id' => $admin_id,
'mcq_id' => $id,
'mcq_question_id' => $mcq_ques,
);
Mcq_ques_gp::create($data);
}
}
return back()
->with('success', 'Question Has Beeb Mapped!.');
}
public function deleteMapMcqQuestion($mcq_id, $question_id)
{
Mcq_ques_gp::where(['mcq_id' => $mcq_id, 'mcq_question_id' => $question_id])->delete();
return back()->with('success', 'Mapped Question removed successfully');
}
// End Practice =================================
}