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]);
 }
Exemplo n.º 3
0
 /**
  * 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'));
 }
Exemplo n.º 4
0
 /**
  * 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;
 }
Exemplo n.º 12
0
 /**
  * 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);
     }
 }