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:
mwalbeck 2016-09-21 12:39:29 +02:00
parent 32d5e034e1
commit 3569d1909b
12 changed files with 142 additions and 28 deletions

View file

@ -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'));
}
}

View file

@ -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'));
}

View file

@ -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');
}
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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();

View 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

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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');