Browse Source

Add user dependency records info on deletion confirm page

This is used for consideration before manager deleting
a user from the system

Add managedUsers and managedCouples relation on
User model
pull/16/head
Nafies Luthfi 8 years ago
parent
commit
b8a9430022
  1. 14
      app/User.php
  2. 28
      resources/lang/en/user.php
  3. 28
      resources/lang/id/user.php
  4. 13
      resources/views/users/edit.blade.php
  5. 24
      tests/Unit/UserTest.php

14
app/User.php

@ -2,9 +2,9 @@
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Ramsey\Uuid\Uuid;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
@ -218,4 +218,14 @@ class User extends Authenticatable
{
return $this->belongsTo(User::class);
}
public function managedUsers()
{
return $this->hasMany(User::class, 'manager_id');
}
public function managedCouples()
{
return $this->hasMany(Couple::class, 'manager_id');
}
}

28
resources/lang/en/user.php

@ -19,18 +19,15 @@ return [
'marriages' => 'Marriages',
// Actions
'edit' => 'Edit Profile',
'set_father' => 'Set Father',
'set_mother' => 'Set Mother',
'set_parent' => 'Set Parent',
'add_spouse' => 'Add Spouse',
'add_wife' => 'Add Wife',
'add_husband' => 'Add Husband',
'add_child' => 'Add Child',
'edit' => 'Edit Profile',
'set_father' => 'Set Father',
'set_mother' => 'Set Mother',
'set_parent' => 'Set Parent',
'add_spouse' => 'Add Spouse',
'add_wife' => 'Add Wife',
'add_husband' => 'Add Husband',
'add_child' => 'Add Child',
'add_child_from_existing_couples' => 'Parent (select spouse of :name)',
'delete' => 'Delete User',
'delete_confirm' => 'Are you sure to delete this user?',
'delete_confirm_button' => 'Yes, I am sure',
// Attributes
'name' => 'Name',
@ -52,4 +49,13 @@ return [
// Photo
'reupload_photo' => 'Re-upload Photo',
'update_photo' => 'Update Photo',
// Deletion confirm attributes
'delete' => 'Delete User',
'delete_confirm' => 'Are you sure to delete this user?',
'delete_confirm_button' => 'Yes, I am sure',
'spouses_count' => 'Number of Spouse',
'childs_count' => 'Number of Child',
'managed_user' => 'Number of Managed Users',
'managed_couple' => 'Number of Managed Couples',
];

28
resources/lang/id/user.php

@ -19,18 +19,15 @@ return [
'marriages' => 'Pernikahan',
// Actions
'edit' => 'Edit Profil',
'set_father' => 'Set Ayah',
'set_mother' => 'Set Ibu',
'set_parent' => 'Set Orang Tua',
'add_spouse' => 'Tambah Pasangan',
'add_wife' => 'Tambah Isteri',
'add_husband' => 'Tambah Suami',
'add_child' => 'Tambah Anak',
'edit' => 'Edit Profil',
'set_father' => 'Set Ayah',
'set_mother' => 'Set Ibu',
'set_parent' => 'Set Orang Tua',
'add_spouse' => 'Tambah Pasangan',
'add_wife' => 'Tambah Isteri',
'add_husband' => 'Tambah Suami',
'add_child' => 'Tambah Anak',
'add_child_from_existing_couples' => 'Dari Pernikahan (pilih pasangan :name)',
'delete' => 'Hapus User',
'delete_confirm' => 'Anda yakin akan menghapus user ini?',
'delete_confirm_button' => 'Saya yakin hapus user ini',
// Attributes
'name' => 'Nama',
@ -52,4 +49,13 @@ return [
// Photo
'reupload_photo' => 'Upload ulang Foto',
'update_photo' => 'Update Foto',
// Deletion confirm attributes
'delete' => 'Hapus User',
'delete_confirm' => 'Anda yakin akan menghapus user ini?',
'delete_confirm_button' => 'Saya yakin hapus user ini',
'spouses_count' => 'Jumlah Pasangan',
'childs_count' => 'Jumlah Anak',
'managed_user' => 'Jumlah User Dikelola',
'managed_couple' => 'Jumlah Pasangan Dikelola',
];

13
resources/views/users/edit.blade.php

@ -7,6 +7,19 @@
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-default">
<div class="panel-heading"><h3 class="panel-title">{{ __('user.delete') }} : {{ $user->name }}</h3></div>
<div class="panel-body">
<table class="table table-condensed">
<tr><td>{{ __('user.name') }}</td><td>{{ $user->name }}</td></tr>
<tr><td>{{ __('user.nickname') }}</td><td>{{ $user->nickname }}</td></tr>
<tr><td>{{ __('user.gender') }}</td><td>{{ $user->gender }}</td></tr>
<tr><td>{{ __('user.father') }}</td><td>{{ $user->father_id ? $user->father->name : '' }}</td></tr>
<tr><td>{{ __('user.mother') }}</td><td>{{ $user->mother_id ? $user->mother->name : '' }}</td></tr>
<tr><td>{{ __('user.childs_count') }}</td><td>{{ $user->childs()->count() }}</td></tr>
<tr><td>{{ __('user.spouses_count') }}</td><td>{{ $user->marriages()->count() }}</td></tr>
<tr><td>{{ __('user.managed_user') }}</td><td>{{ $user->managedUsers()->count() }}</td></tr>
<tr><td>{{ __('user.managed_couple') }}</td><td>{{ $user->managedCouples()->count() }}</td></tr>
</table>
</div>
<div class="panel-body">{{ __('user.delete_confirm') }}</div>
<div class="panel-footer">
{!! FormField::delete(

24
tests/Unit/UserTest.php

@ -3,8 +3,10 @@
namespace Tests\Unit;
use App\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use App\Couple;
use Tests\TestCase;
use Illuminate\Support\Collection;
use Illuminate\Foundation\Testing\RefreshDatabase;
class UserTest extends TestCase
{
@ -81,4 +83,24 @@ class UserTest extends TestCase
$this->assertTrue($user->manager instanceof User);
}
/** @test */
public function a_user_has_many_managed_users_relation()
{
$user = factory(User::class)->create();
$managedUser = factory(User::class)->create(['manager_id' => $user->id]);
$this->assertInstanceOf(Collection::class, $user->managedUsers);
$this->assertInstanceOf(User::class, $user->managedUsers->first());
}
/** @test */
public function a_user_has_many_managed_couples_relation()
{
$user = factory(User::class)->create();
$managedCouple = factory(Couple::class)->create(['manager_id' => $user->id]);
$this->assertInstanceOf(Collection::class, $user->managedCouples);
$this->assertInstanceOf(Couple::class, $user->managedCouples->first());
}
}
Loading…
Cancel
Save