コード例 #1
0
 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']);
         }
     }
 }
コード例 #2
0
 /**
  * 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']);
         }
     }
 }
コード例 #3
0
 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;
 }
コード例 #4
0
 public function storeNoRedirect(Request $request)
 {
     $this->validate($request, ['name' => 'required|max:64', 'date' => 'required|date_format:d.m.Y|after:' . Carbon::now(), 'time' => 'required|date_format:H:i', 'place' => 'required|max:128']);
     $event = new Event();
     $event->name = $request->input('name');
     $event->time = Carbon::createFromFormat('d.m.Y H:i', $request->input('date') . ' ' . $request->input('time'));
     $event->place = $request->input('place');
     $event->description = $request->input('description');
     $event->group_id = $request->input('groupId');
     $group = Group::FindOrFail($request->input('groupId'));
     if (Gate::allows('manageForGroup', $group)) {
         $days = collect($request->input('days'));
         $date = Carbon::createFromFormat('d.m.Y', $request->input('date'));
         $endDate = $date->copy();
         $startDate = $date->copy();
         $interval = $request->input('interval');
         if ($request->input('repeat') != NULL) {
             $ending = $request->input('ending');
             $endDate = $ending == "afterYear" ? $endDate->addYear() : Carbon::createFromFormat('d.m.Y', $request->input('endDate'));
         }
         $event->endDate = $endDate;
         $event->save();
         do {
             if ($days->contains($date->dayOfWeek) && $startDate->diffInWeeks($date) % $interval == 0 || $request->input('repeat') == NULL) {
                 $occurrence = new EventOccurrence();
                 $occurrence->event_id = $event->id;
                 $occurrence->date = $date;
                 $occurrence->save();
             }
             $date->addDay();
         } while ($date < $endDate);
         return redirect('activity_planning/planner');
     } else {
         return abort(403);
     }
 }