Fix issue with edit user form
Allow setting no school for a user from the admin edit user form. Closes #59
This commit is contained in:
parent
deebcc81ae
commit
95cf05f0d6
|
|
@ -56,11 +56,10 @@ class UserController extends Controller
|
|||
'email' => ['required', 'email'],
|
||||
'cell_phone' => ['required'],
|
||||
'judging_preference' => ['required'],
|
||||
'school_id' => ['required', 'exists:schools,id'],
|
||||
'school_id' => ['nullable', 'exists:schools,id'],
|
||||
]);
|
||||
$validData['is_admin'] = $request->get('is_admin') == 'on' ? 1 : 0;
|
||||
$validData['is_tab'] = $request->get('is_tab') == 'on' ? 1 : 0;
|
||||
|
||||
$user->update([
|
||||
'first_name' => $validData['first_name'],
|
||||
'last_name' => $validData['last_name'],
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
value="{{ $user->judging_preference }}"/>
|
||||
<x-form.select name="school_id" colspan="6">
|
||||
<x-slot:label>School</x-slot:label>
|
||||
<option value="">No School</option>
|
||||
@foreach ($schools as $school)
|
||||
<option value="{{ $school->id }}"
|
||||
@if ($user->school_id == $school->id) selected @endif>{{ $school->name }}</option>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ use App\Models\User;
|
|||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
|
||||
use function Pest\Laravel\actingAs;
|
||||
use function Pest\Laravel\assertDatabaseHas;
|
||||
use function Pest\Laravel\delete;
|
||||
use function Pest\Laravel\get;
|
||||
use function Pest\Laravel\patch;
|
||||
|
|
@ -171,6 +172,31 @@ it('allows an administrator to modify a user', function () {
|
|||
->assertSee($newData['judging_preference'])
|
||||
->assertSee($newSchool->name);
|
||||
});
|
||||
it('allows a users school to be set to no school', function () {
|
||||
// Arrange
|
||||
$school = School::factory()->create();
|
||||
$user = User::factory()->create(['school_id' => $school->id]);
|
||||
$newData = [
|
||||
'first_name' => 'New First Name',
|
||||
'last_name' => 'New Last Name',
|
||||
'email' => 'new@emailllllll.com',
|
||||
'cell_phone' => '123-456-7890',
|
||||
'judging_preference' => 'New Judging Preference',
|
||||
'school_id' => '',
|
||||
];
|
||||
actAsAdmin();
|
||||
// Act & Assert
|
||||
$response = patch(route('admin.users.update', $user), $newData);
|
||||
/** @noinspection PhpUnhandledExceptionInspection */
|
||||
$response
|
||||
->assertSessionHasNoErrors()
|
||||
->assertRedirect(route('admin.users.index'));
|
||||
// Assert DB has user id with null school
|
||||
assertDatabaseHas('users', [
|
||||
'id' => $user->id,
|
||||
'school_id' => null,
|
||||
]);
|
||||
});
|
||||
it('has a delete link for the user if not the current user', function () {
|
||||
// Arrange
|
||||
actingAs($this->adminUser);
|
||||
|
|
|
|||
Loading…
Reference in New Issue