private function initData() { $this->login(); factory(App\Activity::class, 50)->create(); factory(App\User::class, 10)->create(); factory(App\User::class, 'admin', 1)->create(); factory(App\Group::class, 25)->create()->each(function ($g) { for ($i = 0; $i < 5; $i++) { $g->users()->save(factory(App\User::class)->make(), ['role' => 'member']); } $g->users()->save(factory(App\User::class)->make(), ['role' => 'leader']); }); factory(App\Event::class, 5)->create()->each(function ($event) { $date = $event->time->startOfDay(); $endDate = $event->endDate; do { $occurrence = new EventOccurrence(); $occurrence->event_id = $event->id; $occurrence->date = $date; $occurrence->save(); $date->addWeek(); } while ($date < $endDate); }); $faker = Faker\Factory::create(); $occurrences = EventOccurrence::all(); $activities = Activity::all()->toArray(); foreach ($occurrences as $occurrence) { foreach ($faker->randomElements($activities, $faker->randomDigit) as $activity) { $occurrence->activities()->attach($activity['id']); } } }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @param $guildSlug * @param $occurrenceId * @return \Illuminate\Http\Response */ public function store(Request $request, $guildSlug, $occurrenceId) { $occurrence = EventOccurrence::with(['event', 'event.guild', 'signups', 'signups.character', 'signups.character.user'])->whereHas('event.guild', function ($query) use($guildSlug) { $query->where('slug', $guildSlug); })->findOrFail($occurrenceId); $event = $occurrence->event; $guild = $event->guild; $signups = $occurrence->signups; $character = Character::whereHas('guilds', function ($query) use($guild) { $query->where('guilds.id', $guild->id); })->where(['user_id' => Auth::user()->id])->first(); if ($character == null) { abort(401, 'No characters in that guild'); } foreach ($signups as $signup) { if ($signup->character_id == $character->id) { return $this->update($request, $guildSlug, $occurrenceId, $signup->id); } } $signup = new Signup(); $signup->character_id = $character->id; $signup->event_occurrence_id = $occurrence->id; $signup->status = $request->get('status'); $signup->save(); return redirect()->route('guilds.events.show', [$guildSlug, $occurrenceId]); }
/** * Display the specified resource. * * @param $slug * @return \Illuminate\Http\Response */ public function show($slug) { $guild = Guild::where('slug', $slug)->firstOrFail(); $now = Carbon::now(); if (Input::has('month')) { $now->month = Input::get('month'); } if (Input::has('year')) { $now->year = Input::get('year'); } $startOfMonth = $now->copy()->startOfMonth(); $endOfMonth = $now->copy()->endOfMonth(); $occurrences = EventOccurrence::where('begin_at', '<', $endOfMonth)->where('end_at', '>', $startOfMonth)->whereHas('event', function ($query) use($guild) { $query->where('guild_id', $guild->id); })->with('event')->get(); $events = []; foreach ($occurrences as $occurrence) { $events[$occurrence->begin_at->day][] = $occurrence; } $monthNames = [1 => 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; $dayNames = [1 => 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']; $month = $this->makeMonth($monthNames, $now); $lastRaids = EventOccurrence::with(['event', 'event.guild'])->whereHas('event.guild', function ($query) use($guild) { $query->where('id', $guild->id); })->where('begin_at', '<', Carbon::now())->orderBy('begin_at', 'desc')->limit(2)->get(); $lastRaids = $lastRaids->reverse(); $nextRaids = EventOccurrence::with(['event', 'event.guild'])->whereHas('event.guild', function ($query) use($guild) { $query->where('id', $guild->id); })->where('begin_at', '>', Carbon::now())->orderBy('begin_at')->limit(2)->get(); return view('guilds.show', compact('guild', 'events', 'now', 'month', 'monthNames', 'dayNames', 'lastRaids', 'nextRaids')); }
/** * Display the specified resource. * * @param $guildSlug * @param $occurrenceId * @return \Illuminate\Http\Response */ public function show($guildSlug, $occurrenceId) { $guild = Guild::where('slug', $guildSlug)->firstOrFail(); $occurrence = EventOccurrence::with(['event', 'event.guild'])->whereHas('event.guild', function ($query) use($guild) { $query->where('id', $guild->id); })->findOrFail($occurrenceId); $event = $occurrence->event; $guild = $event->guild; $signups = Signup::where(['event_occurrence_id' => $occurrence->id])->orderBy('created_at')->get(); $comments = Comment::where(['event_occurrence_id' => $occurrence->id])->orderBy('created_at')->get(); $character = Character::whereHas('guilds', function ($query) use($guild) { $query->where('guilds.id', $guild->id); })->where(['user_id' => Auth::user()->id])->firstOrFail(); $ownSignup = null; $isSigned = false; foreach ($signups as $signup) { if ($signup->character_id == $character->id) { $ownSignup = $signup; $isSigned = true; } } if ($ownSignup == null) { $ownSignup = new Signup(); } $statistic = new \stdClass(); foreach (['YES', 'MAYBE', 'NO'] as $status) { $name = strtolower($status); $statistic->{$name} = $signups->filter(function ($signup) use($status) { return $signup->status == $status; })->count(); } return view('guilds.events.show', compact('occurrence', 'event', 'guild', 'signups', 'comments', 'ownSignup', 'isSigned', 'statistic')); }
/** * Removes activity from given event * * @param type $id * @param type $activityId */ public function remove($id, $occId, Request $request) { $eventOccurrence = EventOccurrence::where('event_id', $id)->findOrFail($occId); $activity = Activity::findOrFail($request->input('activityId')); $eventOccurrence->activities()->detach($activity); $eventOccurrence->save(); return redirect()->back(); }
public function scopeUpcoming($query) { $events = EventOccurrence::all()->filter(function ($events) { return Carbon::Parse($events['date']) > Carbon::yesterday(); })->map(function ($value, $key) { return $value['id']; }); return $query->whereIn('id', $events); }
/** * Run the database seeds. * * @return void */ public function run() { // factory(App\Event::class, 5)->create()->each(function ($event) { $date = $event->time->startOfDay(); $endDate = $event->endDate; do { $occurrence = new EventOccurrence(); $occurrence->event_id = $event->id; $occurrence->date = $date; $occurrence->save(); $date->addWeek(); } while ($date < $endDate); }); $faker = Faker\Factory::create(); $occurrences = EventOccurrence::all(); $activities = Activity::all()->toArray(); foreach ($occurrences as $occurrence) { foreach ($faker->randomElements($activities, $faker->randomDigit) as $activity) { $occurrence->activities()->attach($activity['id']); } } }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @param $guildSlug * @param $occurrenceId * @return \Illuminate\Http\Response */ public function store(Request $request, $guildSlug, $occurrenceId) { $occurrence = EventOccurrence::with(['event', 'event.guild'])->whereHas('event.guild', function ($query) use($guildSlug) { $query->where('slug', $guildSlug); })->findOrFail($occurrenceId); $event = $occurrence->event; $guild = $event->guild; $character = Character::whereHas('guilds', function ($query) use($guild) { $query->where('guilds.id', $guild->id); })->where(['user_id' => Auth::user()->id])->first(); if ($character == null) { abort(401, 'No characters in that guild'); } $comment = new Comment($request->all()); $comment->event_occurrence_id = $occurrence->id; $comment->character_id = $character->id; $comment->save(); return redirect()->route('guilds.events.show', [$guildSlug, $occurrenceId]); }
/** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { return EventOccurrence::with(['activities', 'comments'])->findOrFail($id); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function storeOccComment(Request $request, $id, $occId) { EventOccurrence::findOrFail($occId)->comments()->create(['user_id' => Auth::User()->id, 'public' => request('public'), 'comment' => request('comment')]); return back(); }
public function handleActivityPlan(Request $request) { $occurrences = $request->input('occurrences'); $eventPatterns = $request->input('patterns'); // occurrencejen käsittely foreach ($occurrences as $occurrence) { $eventOccurrence = EventOccurrence::findOrFail($occurrence['id']); foreach ($occurrence['activities'] as $activityId) { $activity = Activity::findOrFail($activityId); $eventOccurrence->activities()->attach($activity); } } // eventPatternien käsittely foreach ($eventPatterns as $eventPattern) { $eventPatternReal = EventPattern::findOrFail($eventPattern['id']); $event = new Event(); $event->time = Carbon::createFromFormat('d.m.Y H:i', $eventPattern['date']); $event->endDate = Carbon::createFromFormat('d.m.Y', $eventPattern['datePart']); $event->description = " "; $event->place = " "; $event->name = $eventPatternReal->name; $event->group_id = $request->input('group'); $event->save(); $eventOccurrence = new EventOccurrence(); $eventOccurrence->date = Carbon::createFromFormat('d.m.Y', $eventPattern['datePart']); $eventOccurrence->event_id = $event->id; $eventOccurrence->save(); foreach ($eventPattern['activities'] as $activityId) { $activity = Activity::findOrFail($activityId); $eventOccurrence->activities()->attach($activity); } } return 2; }
/** * Display the specified resource. * * @param int $id * @return Response */ public function show($id) { $event = Event::with(['group', 'eventOccurrences'])->findOrFail($id); $eventOccurrences = EventOccurrence::where('event_id', $id)->paginate(); return view('event', compact('event', 'eventOccurrences')); }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id, $occId) { $eventti = Event::findOrFail($id); if (Gate::allows('manage', $eventti)) { $this->validate($request, ['time' => 'required|date_format:H:i', 'place' => 'required|max:128']); $event = EventOccurrence::where('event_id', $id)->findOrFail($occId); $event->time = Carbon::createFromFormat('H:i', $request->input('time')); $event->place = $request->input('place'); $event->save(); return redirect()->action('EventOccurrenceController@show', [$id, $occId]); } else { return abort(403); } }