function editHumans($slug, Request $request, Application $app)
 {
     if (!$this->build($slug, $request, $app)) {
         $app->abort(404, "Event does not exist.");
     }
     $humanRepo = new HumanRepository();
     if ('POST' == $request->getMethod() && $request->request->get('CSFRToken') == $app['websession']->getCSFRToken()) {
         if ($request->request->get('addHuman')) {
             $data = $request->request->get('addHuman');
             if (!is_array($data)) {
                 $data = array($data);
             }
             foreach ($data as $slug) {
                 $human = $humanRepo->loadBySlug($app['currentSite'], $slug);
                 if ($human) {
                     $humanRepo->addHumanToEvent($human, $this->parameters['event'], $app['currentUser']);
                 }
             }
         } elseif ($request->request->get('removeHuman')) {
             $human = $humanRepo->loadBySlug($app['currentSite'], $request->request->get('removeHuman'));
             if ($human) {
                 $humanRepo->removeHumanFromEvent($human, $this->parameters['event'], $app['currentUser']);
             }
         }
         if ($request->request->get("returnTo") == 'event') {
             return $app->redirect("/event/" . $this->parameters['event']->getSlugforURL());
         }
     }
     $trb = new HumanRepositoryBuilder();
     $trb->setSite($app['currentSite']);
     $trb->setIncludeDeleted(false);
     $trb->setHumansForEvent($this->parameters['event']);
     $this->parameters['humans'] = $trb->fetchAll();
     $this->parameters['filterLimitToArea'] = $request->query->get('limitToArea') != 'no';
     $this->parameters['filterFreeTextSearch'] = $request->query->get('freeTextSearch');
     $trb = new HumanRepositoryBuilder();
     $trb->setSite($app['currentSite']);
     $trb->setIncludeDeleted(false);
     $trb->setHumansNotForEvent($this->parameters['event']);
     if ($this->parameters['area'] && $this->parameters['filterLimitToArea']) {
         $trb->setArea($this->parameters['area']);
     }
     if ($this->parameters['filterFreeTextSearch']) {
         $trb->setFreeTextsearch($this->parameters['filterFreeTextSearch']);
     }
     $trb->setLimit(200);
     $this->parameters['humansToAdd'] = $trb->fetchAll();
     return $app['twig']->render('site/event/edit.humans.html.twig', $this->parameters);
 }
 function tweetHumans($slug, Request $request, Application $app)
 {
     if (!$this->build($slug, $request, $app)) {
         $app->abort(404, "Area does not exist.");
     }
     $trb = new HumanRepositoryBuilder();
     $trb->setSite($app['currentSite']);
     $trb->setIncludeDeleted(false);
     $trb->setArea($this->parameters['area']);
     $trb->setLimit(200);
     $this->parameters['humans'] = array();
     foreach ($trb->fetchAll() as $human) {
         if ($human->getTwitter()) {
             $this->parameters['humans'][] = $human;
         }
     }
     // =================================== If no Candidates
     if (!$this->parameters['humans']) {
         return $app['twig']->render('site/area/tweetToCandidates.noHumans.html.twig', $this->parameters);
     }
     // =================================== If Tweeting
     if ($request->request->has("action") and $request->request->has("action") == 'tweet') {
         $humanSlugs = $request->request->get('human');
         $foundHumans = false;
         $tweet = ".";
         if (is_array($humanSlugs)) {
             foreach ($this->parameters['humans'] as $human) {
                 if (in_array($human->getSlug(), $humanSlugs)) {
                     $tweet .= '@' . $human->getTwitter() . ' ';
                     $foundHumans = true;
                 }
             }
         }
         if ($foundHumans) {
             $tweet .= 'Could you add your #ge2015 events to ' . 'https://' . $app['config']->webIndexDomain . '/area/' . $this->parameters['area']->getSlugForURL();
             $url = 'https://twitter.com/intent/tweet?text=' . urlencode($tweet);
             return $app->redirect($url);
         }
     }
     // =================================== Show Form
     return $app['twig']->render('site/area/tweetToCandidates.html.twig', $this->parameters);
 }
 public function getParameters()
 {
     $out = array();
     $trb = new HumanRepositoryBuilder();
     $trb->setSite($this->app['currentSite']);
     $trb->setIncludeDeleted(false);
     $trb->setHumansForEvent($this->parameters['event']);
     $out['humans'] = $trb->fetchAll();
     if (count($out['humans']) == 0 && $this->app['currentUserActions']->has("org.openacalendar", "eventEditDetails") && $this->parameters['area'] && !$this->parameters['event']->isInPast()) {
         $trb = new HumanRepositoryBuilder();
         $trb->setSite($this->app['currentSite']);
         $trb->setIncludeDeleted(false);
         $trb->setArea($this->parameters['area']);
         $trb->setLimit(100);
         $out['humansToAdd'] = $trb->fetchAll();
     } else {
         $out['humansToAdd'] = array();
     }
     return $out;
 }