admin and mod view for test and users now have group show, and creating tests and users have dropdown for groups
This commit is contained in:
parent
32d5e034e1
commit
3569d1909b
12 changed files with 142 additions and 28 deletions
app
database/migrations
resources/views
routes
|
@ -7,7 +7,7 @@ use Illuminate\Support\Facades\Auth;
|
|||
use App\Http\Requests;
|
||||
use App\Test;
|
||||
use App\User;
|
||||
use App\Question;
|
||||
use App\Group;
|
||||
|
||||
class AdminController extends Controller
|
||||
{
|
||||
|
@ -21,15 +21,33 @@ class AdminController extends Controller
|
|||
return view('admin.index');
|
||||
}
|
||||
|
||||
public function showUsers()
|
||||
public function showGroups()
|
||||
{
|
||||
$groups = Group::all();
|
||||
return view('admin.groups', compact('groups'));
|
||||
}
|
||||
|
||||
public function showAllUsers()
|
||||
{
|
||||
$users = User::all();
|
||||
return view('users.showall', compact('users'));
|
||||
}
|
||||
|
||||
public function showTests()
|
||||
public function showGroupUsers(Group $group)
|
||||
{
|
||||
$users = $group->users;
|
||||
return view('users.showall', compact('users'));
|
||||
}
|
||||
|
||||
public function showAllTests()
|
||||
{
|
||||
$tests = Test::all();
|
||||
return view('tests.showall', compact('tests'));
|
||||
}
|
||||
|
||||
public function showGroupTests(Group $group)
|
||||
{
|
||||
$tests = $group->tests;
|
||||
return view('tests.showall', compact('tests'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ use App\Test;
|
|||
use App\Testdetail;
|
||||
use App\Question;
|
||||
use App\Option;
|
||||
use App\Group;
|
||||
|
||||
class TestController extends Controller
|
||||
{
|
||||
|
@ -142,11 +143,19 @@ class TestController extends Controller
|
|||
|
||||
public function newTest()
|
||||
{
|
||||
if (Auth::user()->isAdministrator()) {
|
||||
$groups = Group::all();
|
||||
return view('tests.new', compact('groups'));
|
||||
}
|
||||
return view('tests.new');
|
||||
}
|
||||
|
||||
public function editTest(Test $test)
|
||||
{
|
||||
if (Auth::user()->isAdministrator()) {
|
||||
$groups = Group::all();
|
||||
return view('tests.edit', compact('test'), compact('groups'));
|
||||
}
|
||||
return view('tests.edit', compact('test'));
|
||||
}
|
||||
|
||||
|
|
|
@ -3,9 +3,10 @@
|
|||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Http\Requests;
|
||||
use App\User;
|
||||
use App\Group;
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
|
@ -39,6 +40,10 @@ class UserController extends Controller
|
|||
|
||||
public function newUser()
|
||||
{
|
||||
if (Auth::user()->isAdministrator()) {
|
||||
$groups = Group::all();
|
||||
return view('users.new', compact('groups'));
|
||||
}
|
||||
return view('users.new');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,11 +47,12 @@ class Test extends Model
|
|||
$this->title = $request["title"];
|
||||
$this->question_count = $request["question_count"];
|
||||
$this->question_count_to_fail = $request["question_count_to_fail"];
|
||||
if (Auth::user()->group_id) {
|
||||
Group::find(Auth::user()->group_id)->tests()->save($this);
|
||||
if (Auth::user()->isAdministrator) {
|
||||
$this->group_id = $request["group_id"];
|
||||
$this->save();
|
||||
return true;
|
||||
}
|
||||
$this->save();
|
||||
Group::find(Auth::user()->group_id)->tests()->save($this);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
13
app/User.php
13
app/User.php
|
@ -86,18 +86,11 @@ class User extends Authenticatable
|
|||
$this->email = $request["email"];
|
||||
$this->passwordHash($request["password"]);
|
||||
if (Auth::user()->isModerator()) {
|
||||
$this->save();
|
||||
Group::find(Auth::user()->group_id)->tests()->save($this);
|
||||
return true;
|
||||
}
|
||||
if (!empty($request["group_id"])) {
|
||||
$this->group_id = $request["group_id"];
|
||||
}
|
||||
if (!empty($request["enabled"])) {
|
||||
$this->enabled = $request["enabled"];
|
||||
}
|
||||
if (!empty($request["access_level"])) {
|
||||
$this->access_level = $request["access_level"];
|
||||
}
|
||||
$this->group_id = $request["group_id"];
|
||||
$this->enabled = $request["enabled"];
|
||||
$this->save();
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ class CreateUsersTable extends Migration
|
|||
$table->string('name');
|
||||
$table->string('email')->unique();
|
||||
$table->string('password');
|
||||
$table->integer('group_id')->unsigned()->index()->nullable()->default(0);
|
||||
$table->integer('group_id')->unsigned()->index();
|
||||
$table->integer('enabled')->unsigned()->default(1);
|
||||
$table->integer('access_level')->unsigned()->default(1);
|
||||
$table->rememberToken();
|
||||
|
|
49
resources/views/admin/groups.blade.php
Normal file
49
resources/views/admin/groups.blade.php
Normal file
|
@ -0,0 +1,49 @@
|
|||
@extends('layouts.base')
|
||||
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8 col-md-offset-2">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Groups</div>
|
||||
<div class="panel-body">
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th colspan="2">Group</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>Show All</td>
|
||||
<td>
|
||||
<form method="get" class="pull-right">
|
||||
@if (request()->path() == "admin/tests")
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/admin/tests/all">Show</button>
|
||||
@elseif (request()->path() == "admin/users")
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/admin/users/all">Show</button>
|
||||
@endif
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
@foreach ($groups as $group)
|
||||
<tr>
|
||||
<td>{{ $group->id }}</td>
|
||||
<td>{{ $group->name }}</td>
|
||||
<td>
|
||||
<form method="get" class="pull-right">
|
||||
@if (request()->path() == "admin/tests")
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/admin/tests/group/{{ $group->id }}">Show</button>
|
||||
@elseif (request()->path() == "admin/users")
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/admin/users/group/{{ $group->id }}">Show</button>
|
||||
@endif
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
|
@ -17,6 +17,24 @@
|
|||
<label>Number of Questions</label>
|
||||
<input type="text" class="form-control" name="question_count" value="{{ $test->question_count }}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Number of Wrong Questions Allowed</label>
|
||||
<input type="text" class="form-control" name="question_count_to_fail" value="{{ $test->question_count_to_fail }}">
|
||||
</div>
|
||||
@if (Auth::user()->isAdministrator())
|
||||
<div class="form-group">
|
||||
<label>Group</label>
|
||||
<select class="form-control" name="group_id">
|
||||
@foreach ($groups as $group)
|
||||
@if ($group->id == $test->group_id)
|
||||
<option value="{{ $group->id }}" selected>{{ $group->name }}</option>
|
||||
@else
|
||||
<option value="{{ $group->id }}">{{ $group->name }}</option>
|
||||
@endif
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
@endif
|
||||
<button type="submit" class="btn btn-default">Submit</button>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -20,6 +20,16 @@
|
|||
<label>Number of Wrong Questions Allowed</label>
|
||||
<input type="text" class="form-control" name="question_count_to_fail">
|
||||
</div>
|
||||
@if (Auth::user()->isAdministrator())
|
||||
<div class="form-group">
|
||||
<label>Group</label>
|
||||
<select class="form-control" name="group_id">
|
||||
@foreach ($groups as $group)
|
||||
<option value="{{ $group->id }}">{{ $group->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
@endif
|
||||
<button type="submit" class="btn btn-default">Submit</button>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -17,6 +17,10 @@
|
|||
<br>
|
||||
<strong>Question count:</strong><br>
|
||||
{{ $test->question_count }}
|
||||
<br>
|
||||
<br>
|
||||
<strong>Question Count to Fail:</strong><br>
|
||||
{{ $test->question_count_to_fail }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -19,18 +19,21 @@
|
|||
<label>Password</label>
|
||||
<input type="password" class="form-control" name="password">
|
||||
</div>
|
||||
@if (Auth::user()->access_level == 3)
|
||||
@if (Auth::user()->isAdministrator())
|
||||
<div class="form-group">
|
||||
<label>Group id</label>
|
||||
<input type="text" class="form-control" name="group_id">
|
||||
<label>Group</label>
|
||||
<select class="form-control" name="group_id">
|
||||
@foreach ($groups as $group)
|
||||
<option value="{{ $group->id }}">{{ $group->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Enabled</label>
|
||||
<input type="text" class="form-control" name="enabled">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Access Level</label>
|
||||
<input type="text" class="form-control" name="access_level">
|
||||
<select class="form-control">
|
||||
<option value="1">Yes</option>
|
||||
<option value="0">No</option>
|
||||
</select>
|
||||
</div>
|
||||
@endif
|
||||
<button type="submit" class="btn btn-default">Submit</button>
|
||||
|
|
|
@ -48,7 +48,9 @@ Route::group(['prefix' => 'admin'], function () {
|
|||
|
||||
Route::get('/', 'AdminController@index');
|
||||
|
||||
Route::get('/tests', 'AdminController@showTests');
|
||||
Route::get('/tests', 'AdminController@showGroups');
|
||||
Route::get('/tests/all', 'AdminController@showAllTests');
|
||||
Route::get('/tests/group/{group}', 'AdminController@showGroupTests');
|
||||
Route::get('/tests/new', 'TestController@newTest');
|
||||
Route::post('/tests/new', 'TestController@addTest');
|
||||
Route::get('/tests/{test}', 'TestController@showTest');
|
||||
|
@ -63,7 +65,9 @@ Route::group(['prefix' => 'admin'], function () {
|
|||
Route::get('/questions/{question}/delete', 'TestController@confirmDeleteQuestion');
|
||||
Route::delete('/questions/{question}/', 'TestController@deleteQuestion');
|
||||
|
||||
Route::get('/users', 'AdminController@showUsers');
|
||||
Route::get('/users', 'AdminController@showGroups');
|
||||
Route::get('/users/all', 'AdminController@showAllUsers');
|
||||
Route::get('/users/group/{group}', 'AdminController@showGroupUsers');
|
||||
Route::get('/users/new', 'UserController@newUser');
|
||||
Route::post('/users/new', 'UserController@addUser');
|
||||
Route::get('/users/{user}/delete', 'UserController@confirmDeleteUser');
|
||||
|
|
Reference in a new issue