Record paddock state changes
This commit is contained in:
@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
|
|||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Paddock;
|
use App\Paddock;
|
||||||
|
use App\PaddockStateChange;
|
||||||
use Redirect;
|
use Redirect;
|
||||||
|
|
||||||
class PaddockController extends Controller
|
class PaddockController extends Controller
|
||||||
@@ -85,11 +86,26 @@ class PaddockController extends Controller
|
|||||||
'name' => 'required',
|
'name' => 'required',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
// Was there a state change?
|
||||||
|
$paddock = Paddock::find($id);
|
||||||
|
$state_changed = FALSE;
|
||||||
|
if ($paddock->isClosed && ($request->state === 'opened')) {
|
||||||
|
$state_changed = TRUE;
|
||||||
|
} else if (!$paddock->isClosed && ($request->state === 'closed')) {
|
||||||
|
$state_changed = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Record the state change, if needs be
|
||||||
|
if ($state_changed) {
|
||||||
|
$change = new PaddockStateChange(['state' => $request->state]);
|
||||||
|
$paddock->state_changes()->save($change);
|
||||||
|
}
|
||||||
|
|
||||||
$update = [
|
$update = [
|
||||||
'name' => $request->name,
|
'name' => $request->name,
|
||||||
'isClosed' => $request->state !== 'opened',
|
'isClosed' => $request->state !== 'opened',
|
||||||
];
|
];
|
||||||
Paddock::where('id', $id)->update($update);
|
$paddock->update($update);
|
||||||
|
|
||||||
return Redirect::to('paddocks')
|
return Redirect::to('paddocks')
|
||||||
->with('success', 'Enclos mis à jour.');
|
->with('success', 'Enclos mis à jour.');
|
||||||
|
|||||||
10
app/Http/Controllers/PaddockStateChangeController.php
Normal file
10
app/Http/Controllers/PaddockStateChangeController.php
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class PaddockStateChangeController extends Controller
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
@@ -15,4 +15,12 @@ class Paddock extends Model
|
|||||||
'name',
|
'name',
|
||||||
'isClosed',
|
'isClosed',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the state changes for a paddock
|
||||||
|
*/
|
||||||
|
public function state_changes() {
|
||||||
|
return $this->hasMany('App\PaddockStateChange');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
16
app/PaddockStateChange.php
Normal file
16
app/PaddockStateChange.php
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class PaddockStateChange extends Model
|
||||||
|
{
|
||||||
|
protected $fillable = [
|
||||||
|
'state',
|
||||||
|
];
|
||||||
|
|
||||||
|
public function paddock() {
|
||||||
|
return $this->belongsTo('App\Paddock');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class CreatePaddockStateChangesTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('paddock_state_changes', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->integer('paddock_id')->unsigned();
|
||||||
|
$table->foreign('paddock_id')->references('id')->on('paddocks');
|
||||||
|
$table->string('state');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('paddock_state_changes');
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user