From 2f0a54ed7722560dca901aefbd3707bb613c621c Mon Sep 17 00:00:00 2001 From: TorstenS Date: Sat, 10 Oct 2020 11:34:23 +0200 Subject: [PATCH] =?UTF-8?q?Touranmeldung=20durchf=C3=BChren=20+=20zur?= =?UTF-8?q?=C3=BCckziehen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/Http/Controllers/TourController.php | 13 ++++++ motorradig/app/Tour.php | 13 +++++- motorradig/app/User.php | 8 ++++ motorradig/database/seeds/BookingSeeder.php | 40 ++++++++++++++----- .../resources/views/tour/show.blade.php | 9 ++++- motorradig/routes/web.php | 2 + 6 files changed, 71 insertions(+), 14 deletions(-) diff --git a/motorradig/app/Http/Controllers/TourController.php b/motorradig/app/Http/Controllers/TourController.php index f7450a0..782c038 100644 --- a/motorradig/app/Http/Controllers/TourController.php +++ b/motorradig/app/Http/Controllers/TourController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Tour; +use App\Booking; use Illuminate\Http\Request; use Illuminate\Http\File; use Illuminate\Support\Facades\Storage; @@ -177,4 +178,16 @@ class TourController extends Controller // } + public function join($tour_id) { + $user=Auth::user(); + Tour::join($tour_id,$user->id); + return redirect('/tour'); + } + + public function cancelBooking($tour_id) { + $user=Auth::user(); + Booking::where('tour_id', $tour_id)->where('user_id', $user->id)->delete(); + return redirect('/tour'); + } + } diff --git a/motorradig/app/Tour.php b/motorradig/app/Tour.php index f33c539..0b200fa 100644 --- a/motorradig/app/Tour.php +++ b/motorradig/app/Tour.php @@ -3,6 +3,7 @@ namespace App; use Illuminate\Database\Eloquent\Model; +use Carbon\Carbon; class Tour extends Model { @@ -25,14 +26,22 @@ class Tour extends Model } public static function join($tour_id,$user_id) { + error_log("Tour::join, tour_id=".$tour_id.", user_id=".$user_id); + /* Booking::firstOrCreate( ['tour_id',$tour_id], ['user_id',$user_id], - ['updated_at', \Carbon::now()] + ['updated_at', Carbon::now()] ); + */ + $booking = Booking::firstOrCreate( + ['tour_id' => $tour_id, 'user_id' => $user_id], + ['tour_id' => $tour_id, 'user_id' => $user_id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now() ] + ); + error_log($booking); } - public static function leave($tour_id, $user_id) { + public static function cancel($tour_id, $user_id) { Booking::where('tour_id',$tour_id)->where('user_id',$user_id)->delete(); } } diff --git a/motorradig/app/User.php b/motorradig/app/User.php index e79dab7..148f121 100644 --- a/motorradig/app/User.php +++ b/motorradig/app/User.php @@ -36,4 +36,12 @@ class User extends Authenticatable protected $casts = [ 'email_verified_at' => 'datetime', ]; + + public static function has_tour($tour_id, $user_id) { + $tour=Tour::find($tour_id); + $user=User::first($user_id); + $booking=Booking::where('tour_id', $tour_id)->where('user_id', $user_id); + if ($booking) return true; + return false; + } } diff --git a/motorradig/database/seeds/BookingSeeder.php b/motorradig/database/seeds/BookingSeeder.php index 94532b7..14992de 100644 --- a/motorradig/database/seeds/BookingSeeder.php +++ b/motorradig/database/seeds/BookingSeeder.php @@ -13,38 +13,58 @@ class BookingSeeder extends Seeder { DB::table('bookings')->insert([ 'user_id' => 1, - 'tour_id' => 1 + 'tour_id' => 1, + 'created_at' => Carbon::now(), + 'updated_at' => Carbon::now(), ]); DB::table('bookings')->insert([ 'user_id' => 2, - 'tour_id' => 1 + 'tour_id' => 1, + 'created_at' => Carbon::now(), + 'updated_at' => Carbon::now(), ]); DB::table('bookings')->insert([ 'user_id' => 3, - 'tour_id' => 1 + 'tour_id' => 1, + 'created_at' => Carbon::now(), + 'updated_at' => Carbon::now(), ]); DB::table('bookings')->insert([ 'user_id' => 4, - 'tour_id' => 2 - ]);DB::table('bookings')->insert([ + 'tour_id' => 2, + 'created_at' => Carbon::now(), + 'updated_at' => Carbon::now(), + ]); + + DB::table('bookings')->insert([ 'user_id' => 5, - 'tour_id' => 2 + 'tour_id' => 2, + 'created_at' => Carbon::now(), + 'updated_at' => Carbon::now(), ]); DB::table('bookings')->insert([ 'user_id' => 2, - 'tour_id' => 3 + 'tour_id' => 3, + 'created_at' => Carbon::now(), + 'updated_at' => Carbon::now(), ]); DB::table('bookings')->insert([ 'user_id' => 3, - 'tour_id' => 3 + 'tour_id' => 3, + 'created_at' => Carbon::now(), + 'updated_at' => Carbon::now(), ]); DB::table('bookings')->insert([ 'user_id' => 4, - 'tour_id' => 3 + 'tour_id' => 3, + 'created_at' => Carbon::now(), + 'updated_at' => Carbon::now(), ]); DB::table('bookings')->insert([ 'user_id' => 6, - 'tour_id' => 3 + 'tour_id' => 3, + 'created_at' => Carbon::now(), + 'updated_at' => Carbon::now(), ]); } } diff --git a/motorradig/resources/views/tour/show.blade.php b/motorradig/resources/views/tour/show.blade.php index 7b04c70..f93b6e4 100644 --- a/motorradig/resources/views/tour/show.blade.php +++ b/motorradig/resources/views/tour/show.blade.php @@ -64,10 +64,15 @@ - +
Bearbeiten
Ok - Teilnehmen + + @if(!App\Tour::has_participant($tour->id, Auth::user()->id)) + Teilnehmen + @else + Absagen + @endif diff --git a/motorradig/routes/web.php b/motorradig/routes/web.php index 7244809..9ff9d6b 100644 --- a/motorradig/routes/web.php +++ b/motorradig/routes/web.php @@ -44,6 +44,8 @@ Route::get('/admin/edit_activities', 'AdminController@edit_activities'); Route::post('/admin/store_activities', 'AdminController@store_activities'); Route::resource('/tour', TourController::class); +Route::get('/tour/{tour_id}/join', 'TourController@join'); +Route::get('/tour/{tour_id}/cancelBooking', 'TourController@cancelBooking'); Auth::routes();