function index($username, Request $request, Application $app) { if (!$this->build($username, $request, $app)) { $app->abort(404, "User does not exist."); } $erb = new EventRepositoryBuilder(); $erb->setAfterNow(); $erb->setUserAccount($this->parameters['user'], false, false, true, false); $this->parameters['events'] = $erb->fetchAll(); return $app['twig']->render('index/publicuser/index.html.twig', $this->parameters); }
function index(Application $app) { $erb = new EventRepositoryBuilder(); $erb->setSite($app['currentSite']); $erb->setAfterNow(); $erb->setIncludeDeleted(false); $erb->setIncludeAreaInformation(true); $erb->setIncludeVenueInformation(true); $erb->setIncludeMediasSlugs(true); if ($app['currentUser']) { $erb->setUserAccount($app['currentUser'], true); } $erb->setLimit(100); $events = $erb->fetchAll(); return $app['twig']->render('site/index/index.html.twig', array('events' => $events)); }
function testUserWatchingParentAreaWithVenue() { TimeSource::mock(2014, 01, 01, 9, 0, 0); $this->addCountriesToTestDB(); $countryRepo = new CountryRepository(); $areaRepo = new AreaRepository(); $userRepo = new UserAccountRepository(); $siteRepo = new SiteRepository(); $venueRepo = new \repositories\VenueRepository(); $eventRepository = new EventRepository(); $userWatchesAreaRepo = new \repositories\UserWatchesAreaRepository(); $GB = $countryRepo->loadByTwoCharCode("GB"); $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo->create($user); $userWatchesMain = new UserAccountModel(); $userWatchesMain->setEmail("*****@*****.**"); $userWatchesMain->setUsername("test1"); $userWatchesMain->setPassword("password1"); $userRepo->create($userWatchesMain); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo->create($site, $user, array($countryRepo->loadByTwoCharCode('GB')), $this->getSiteQuotaUsedForTesting()); $area = new AreaModel(); $area->setTitle("Scotland"); $areaRepo->create($area, null, $site, $GB); $areaChild = new AreaModel(); $areaChild->setTitle("Edinburgh"); $areaRepo->create($areaChild, $area, $site, $GB); $venue = new \models\VenueModel(); $venue->setTitle("Castle"); $venue->setAreaId($areaChild->getId()); $venueRepo->create($venue, $site, $user); $event = new EventModel(); $event->setSummary("test"); $event->setDescription("test test"); $event->setStartAt(getUTCDateTime(2014, 11, 10, 19, 0, 0)); $event->setEndAt(getUTCDateTime(2014, 11, 10, 21, 0, 0)); $eventRepository->create($event, $site, $user); $event->setVenueId($venue->getId()); TimeSource::mock(2014, 01, 01, 9, 1, 0); $eventRepository->edit($event); // have to update child cache $areaRepo->buildCacheAreaHasParent($area); $areaRepo->buildCacheAreaHasParent($areaChild); // test before $erb = new EventRepositoryBuilder(); $erb->setUserAccount($userWatchesMain, false, true, true, true); $events = $erb->fetchAll(); $this->assertEquals(0, count($events)); $erb = new EventRepositoryBuilder(); $erb->setUserAccount($userWatchesMain, false, true, true, false); $events = $erb->fetchAll(); $this->assertEquals(0, count($events)); // test watching main group gets event $userWatchesAreaRepo->startUserWatchingArea($userWatchesMain, $area); $erb = new EventRepositoryBuilder(); $erb->setUserAccount($userWatchesMain, false, true, true, true); $events = $erb->fetchAll(); $this->assertEquals(1, count($events)); $erb = new EventRepositoryBuilder(); $erb->setUserAccount($userWatchesMain, false, true, true, false); $events = $erb->fetchAll(); $this->assertEquals(0, count($events)); }
/** * * @return type array(array(), array(), array(), boolean) - upcoming events, other events, user at event data, flag if any to send */ public function getDataForUpcomingEventsEmail() { $flag = false; $start = \TimeSource::getDateTime(); $end = \TimeSource::getDateTime(); if ($this->email_upcoming_events_days_notice > 0) { $interval = new \DateInterval("P" . $this->email_upcoming_events_days_notice . "D"); $start->add($interval); $end->add($interval); } $start->setTime(0, 0, 0); $end->setTime(23, 59, 59); $upcomingEvents = array(); $allEvents = array(); $userAtEvent = array(); $userAtEventRepo = new UserAtEventRepository(); $erb = new EventRepositoryBuilder(); $erb->setAfterNow(); $erb->setIncludeDeleted(false); $erb->setIncludeCancelled(true); $erb->setUserAccount($this, false, true); foreach ($erb->fetchAll() as $event) { $userAtEvent[$event->getId()] = $userAtEventRepo->loadByUserAndEvent($this, $event); if ($start->getTimestamp() <= $event->getStartAt()->getTimestamp() && $event->getStartAt()->getTimestamp() <= $end->getTimestamp()) { $upcomingEvents[] = $event; if ($this->email_upcoming_events == 'w') { $flag = true; } else { if ($this->email_upcoming_events == 'a') { if ($userAtEvent[$event->getId()] && $userAtEvent[$event->getId()]->getIsPlanAttending()) { $flag = true; } } else { if ($this->email_upcoming_events == 'm') { if ($userAtEvent[$event->getId()] && ($userAtEvent[$event->getId()]->getIsPlanAttending() || $userAtEvent[$event->getId()]->getIsPlanMaybeAttending())) { $flag = true; } } } } } $allEvents[] = $event; } return array($upcomingEvents, $allEvents, $userAtEvent, $flag); }