diff --git a/app/Http/Controllers/Admin/MunicipalityController.php b/app/Http/Controllers/Admin/MunicipalityController.php index adfd3d9..1d55279 100644 --- a/app/Http/Controllers/Admin/MunicipalityController.php +++ b/app/Http/Controllers/Admin/MunicipalityController.php @@ -11,10 +11,56 @@ class MunicipalityController extends Controller { public function index() { - $municipalities = Municipality::all(); + $municipalities = Municipality::orderBy('name')->get(); return view('admin.municipalities.index', compact('municipalities')); } + public function create() + { + return view('admin.municipalities.create'); + } + + public function store(Request $request) + { + $request->merge(['is_active' => $request->has('is_active')]); + + $validated = $request->validate([ + 'name' => 'required|string|max:255|unique:municipalities', + 'zip_code' => 'required|string|max:10', + 'is_active' => 'boolean' + ]); + + Municipality::create($validated); + + return redirect()->route('admin.municipalities.index')->with('success', 'Commune créée avec succès.'); + } + + public function edit(Municipality $municipality) + { + return view('admin.municipalities.edit', compact('municipality')); + } + + public function update(Request $request, Municipality $municipality) + { + $request->merge(['is_active' => $request->has('is_active')]); + + $validated = $request->validate([ + 'name' => 'required|string|max:255|unique:municipalities,name,' . $municipality->id, + 'zip_code' => 'required|string|max:10', + 'is_active' => 'boolean' + ]); + + $municipality->update($validated); + + return redirect()->route('admin.municipalities.index')->with('success', 'Commune mise à jour avec succès.'); + } + + public function destroy(Municipality $municipality) + { + $municipality->delete(); + return redirect()->route('admin.municipalities.index')->with('success', 'Commune supprimée avec succès.'); + } + public function toggle(Municipality $municipality) { $municipality->update(['is_active' => !$municipality->is_active]); diff --git a/resources/views/admin/municipalities/create.blade.php b/resources/views/admin/municipalities/create.blade.php new file mode 100644 index 0000000..109e3f6 --- /dev/null +++ b/resources/views/admin/municipalities/create.blade.php @@ -0,0 +1,41 @@ +@extends('layouts.app') + +@section('content') +