diff --git a/app/Http/Controllers/CouplesController.php b/app/Http/Controllers/CouplesController.php
index cad560a..dccbc11 100644
--- a/app/Http/Controllers/CouplesController.php
+++ b/app/Http/Controllers/CouplesController.php
@@ -11,4 +11,27 @@ class CouplesController extends Controller
{
return view('couples.show', compact('couple'));
}
+
+ public function edit(Couple $couple)
+ {
+ $this->authorize('edit', $couple);
+
+ return view('couples.edit', compact('couple'));
+ }
+
+ public function update(Couple $couple)
+ {
+ $this->authorize('edit', $couple);
+
+ $coupleData = request()->validate([
+ 'marriage_date' => 'nullable|date|date_format:Y-m-d',
+ 'divorce_date' => 'nullable|date|date_format:Y-m-d',
+ ]);
+
+ $couple->marriage_date = $coupleData['marriage_date'];
+ $couple->divorce_date = $coupleData['divorce_date'];
+ $couple->save();
+
+ return redirect()->route('couples.show', $couple->id);
+ }
}
diff --git a/resources/lang/en/couple.php b/resources/lang/en/couple.php
index 45fdf0f..57faa40 100644
--- a/resources/lang/en/couple.php
+++ b/resources/lang/en/couple.php
@@ -7,6 +7,10 @@ return [
'childs_count' => 'Childs Count',
'grand_childs_count' => 'Grand Childs Count',
+ // Actions
+ 'edit' => 'Edit Marriage',
+ 'update' => 'Update Marriage',
+
// Attributes
'husband' => 'Head of Family',
'wife' => 'Wife',
diff --git a/resources/lang/id/couple.php b/resources/lang/id/couple.php
index 0b27c9b..7264a1b 100644
--- a/resources/lang/id/couple.php
+++ b/resources/lang/id/couple.php
@@ -7,6 +7,10 @@ return [
'childs_count' => 'Jumlah Anak',
'grand_childs_count' => 'Jumlah Cucu',
+ // Actions
+ 'edit' => 'Edit Pernikahan',
+ 'update' => 'Update Pernikahan',
+
// Attributes
'husband' => 'Kepala Keluarga',
'wife' => 'Isteri',
diff --git a/resources/views/couples/edit.blade.php b/resources/views/couples/edit.blade.php
new file mode 100644
index 0000000..5e54449
--- /dev/null
+++ b/resources/views/couples/edit.blade.php
@@ -0,0 +1,55 @@
+@extends('layouts.app')
+
+@section('content')
+
+
+@include('couples.partials.stat')
+
+
+
+
+
{{ trans('couple.update') }}
+ {!! Form::model($couple, ['route' => ['couples.update', $couple], 'method' => 'patch']) !!}
+
+
+
+ {!! FormField::text('marriage_date', ['label' => trans('couple.marriage_date')]) !!}
+
+
+ {!! FormField::text('divorce_date', ['label' => trans('couple.divorce_date')]) !!}
+
+
+
+
+ {!! Form::close() !!}
+
+
+
+
+@endsection
+
+@section ('ext_css')
+
+@endsection
+
+@section ('ext_js')
+
+@endsection
+
+@section ('script')
+
+@endsection
diff --git a/resources/views/couples/show.blade.php b/resources/views/couples/show.blade.php
index 8edd6c7..17cf348 100644
--- a/resources/views/couples/show.blade.php
+++ b/resources/views/couples/show.blade.php
@@ -2,12 +2,19 @@
@section('content')
@include('couples.partials.stat')
-
+
@if ($couple->childs->isEmpty())
{{ trans('app.childs_were_not_recorded') }}
@else
diff --git a/routes/web.php b/routes/web.php
index c929d84..7923150 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -37,6 +37,8 @@ Route::get('users/{user}/marriages', 'UserMarriagesController@index')->name('use
* Couple/Marriages Routes
*/
Route::get('couples/{couple}', ['as'=>'couples.show', 'uses'=>'CouplesController@show']);
+Route::get('couples/{couple}/edit', ['as'=>'couples.edit', 'uses'=>'CouplesController@edit']);
+Route::patch('couples/{couple}', ['as'=>'couples.update', 'uses'=>'CouplesController@update']);
/**
* Backup Restore Database Routes
diff --git a/tests/Feature/EditMarriagesTest.php b/tests/Feature/EditMarriagesTest.php
new file mode 100644
index 0000000..e7a8bda
--- /dev/null
+++ b/tests/Feature/EditMarriagesTest.php
@@ -0,0 +1,48 @@
+create();
+
+ $this->visit(route('couples.show', $couple));
+
+ $this->see($couple->husband->name);
+ $this->see($couple->wife->name);
+ }
+
+ /** @test */
+ public function manager_can_edit_couple_data()
+ {
+ $user = $this->loginAsUser();
+ $couple = factory(Couple::class)->create(['manager_id' => $user->id]);
+
+ $this->visit(route('couples.show', $couple));
+
+ $this->click(trans('couple.edit'));
+ $this->seePageIs(route('couples.edit', $couple));
+
+ $this->submitForm(trans('couple.update'), [
+ 'marriage_date' => '2010-04-04',
+ 'divorce_date' => '2035-04-04',
+ ]);
+
+ $this->seePageIs(route('couples.show', $couple));
+
+ $this->seeInDatabase('couples', [
+ 'id' => $couple->id,
+ 'marriage_date' => '2010-04-04',
+ 'divorce_date' => '2035-04-04',
+ ]);
+ }
+}