Esempio n. 1
0
 /**
  * @param User $user The user to check participation status for.
  * @return ActivityParticipation|null Return the ActivityParticipation for the supplied user. Returns null if users doesn't participate.
  */
 public function getParticipation(User $user, HelpingCommittee $h = null)
 {
     if ($h == null) {
         return ActivityParticipation::where('activity_id', $this->id)->where('user_id', $user->id)->whereNull('committees_activities_id')->first();
     } else {
         return ActivityParticipation::where('activity_id', $this->id)->where('user_id', $user->id)->where('committees_activities_id', $h->id)->first();
     }
 }
Esempio n. 2
0
 public function deleteHelp(Request $request, $id)
 {
     $help = HelpingCommittee::findOrFail($id);
     foreach ($help->users as $user) {
         $name = $user->name;
         $email = $user->email;
         $helptitle = $help->activity->event->title;
         Mail::queue('emails.committeehelpnotneeded', ['user' => $user, 'help' => $help], function ($m) use($name, $email, $helptitle) {
             $m->replyTo('*****@*****.**', 'S.A. Proto');
             $m->to($email, $name);
             $m->subject('The activity ' . $helptitle . ' doesn\'t need your help anymore.');
         });
     }
     foreach (ActivityParticipation::withTrashed()->where('committees_activities_id', $help->id)->get() as $participation) {
         $participation->delete();
     }
     $help->delete();
     $request->session()->flash('flash_message', 'Removed ' . $help->committee->name . ' as helping committee.');
     return Redirect::back();
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int $id The id of the participation to be removed.
  * @return \Illuminate\Http\Response
  */
 public function destroy($participation_id, Request $request)
 {
     $participation = ActivityParticipation::findOrFail($participation_id);
     $notify = false;
     if ($participation->user->id != Auth::id()) {
         if (!Auth::user()->can('board')) {
             abort(403);
         }
         $notify = true;
     }
     if ($participation->committees_activities_id === null) {
         if ($participation->activity->closed) {
             abort(500, "This activity is closed, you cannot change participation anymore.");
         }
         if (!$participation->activity->canUnsubscribe() && !$participation->backup && !Auth::user()->can('board')) {
             abort(500, "You cannot unsubscribe for this event at this time.");
         }
         $backupparticipation = $participation->backup ? null : ActivityParticipation::where('activity_id', $participation->activity->id)->whereNull('committees_activities_id')->where('backup', true)->first();
         if ($backupparticipation !== null) {
             $backupparticipation->backup = false;
             $backupparticipation->save();
             $name = $backupparticipation->user->name;
             $email = $backupparticipation->user->email;
             $activitytitle = $backupparticipation->activity->event->title;
             Mail::queue('emails.takenfrombackup', ['participation' => $backupparticipation], function ($m) use($name, $email, $activitytitle) {
                 $m->replyTo('*****@*****.**', 'S.A. Proto');
                 $m->to($email, $name);
                 $m->subject('Moved from back-up list to participants for ' . $activitytitle . '.');
             });
         }
         if ($notify) {
             $name = $participation->user->name;
             $email = $participation->user->email;
             $activitytitle = $participation->activity->event->title;
             Mail::queue('emails.unsubscribeactivity', ['activity' => ['id' => $participation->activity->event->id, 'title' => $activitytitle, 'name' => $participation->user->calling_name]], function ($m) use($name, $email, $activitytitle) {
                 $m->replyTo('*****@*****.**', 'S.A. Proto');
                 $m->to($email, $name);
                 $m->subject('You have been signed out for ' . $activitytitle . '.');
             });
         }
         $request->session()->flash('flash_message', $participation->user->name . ' is not attending ' . $participation->activity->event->title . ' anymore.');
         $participation->delete();
     } else {
         $request->session()->flash('flash_message', $participation->user->name . ' is not helping with ' . $participation->activity->event->title . ' anymore.');
         if ($notify) {
             $name = $participation->user->name;
             $email = $participation->user->email;
             $activitytitle = $participation->activity->event->title;
             Mail::queue('emails.unsubscribehelpactivity', ['participation' => $participation], function ($m) use($name, $email, $activitytitle) {
                 $m->queue('*****@*****.**', 'S.A. Proto');
                 $m->to($email, $name);
                 $m->subject('You don\'t help with ' . $activitytitle . ' anymore.');
             });
         }
         $participation->delete();
     }
     return Redirect::back();
 }