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); }
public function futureEventsCount($data) { $erb = new EventRepositoryBuilder(); $erb->setAfterNow(); $erb->setIncludeCancelled(true); $erb->setIncludeDeleted(false); if ($data instanceof \models\AreaModel) { $erb->setArea($data); } return $erb->fetchCount(); }
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 delete($slug, Request $request, Application $app) { if (!$this->build($slug, $request, $app)) { $app->abort(404, "Venue does not exist."); } if ($this->parameters['venue']->getIsDeleted()) { die("No"); // TODO } $form = $app['form.factory']->create(new VenueDeleteForm()); if ('POST' == $request->getMethod()) { $form->bind($request); if ($form->isValid()) { $eventRepository = new EventRepository(); $eventRepository->moveAllFutureEventsAtVenueToNoSetVenue($this->parameters['venue'], $app['currentUser']); $venueRepository = new VenueRepository(); $venueRepository->delete($this->parameters['venue'], $app['currentUser']); return $app->redirect("/venue/" . $this->parameters['venue']->getSlugForURL()); } } $rb = new EventRepositoryBuilder(); $rb->setVenue($this->parameters['venue']); $rb->setAfterNow(true); $rb->setIncludeDeleted(false); $this->parameters['events'] = $rb->fetchAll(); $this->parameters['form'] = $form->createView(); return $app['twig']->render('site/venue/delete.html.twig', $this->parameters); }
function testRRuleDeleteByExDate1() { global $CONFIG; \TimeSource::mock(2015, 1, 1, 1, 1, 1); $CONFIG->importURLAllowEventsSecondsIntoFuture = 77760000; $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $group = new GroupModel(); $group->setTitle("test"); $group->setDescription("test test"); $group->setUrl("http://www.group.com"); $groupRepo = new GroupRepository(); $groupRepo->create($group, $site, $user); $importURLRepository = new ImportURLRepository(); $importURL = new ImportURLModel(); $importURL->setIsEnabled(true); $importURL->setSiteId($site->getId()); $importURL->setGroupId($group->getId()); $importURL->setTitle("Test"); $importURL->setUrl("http://test.com"); $importURLRepository->create($importURL, $site, $user); // ============================================= Import CREATE $importURLRun = new ImportURLRun($importURL, $site); $importURLRun->setTemporaryFileStorageForTesting(dirname(__FILE__) . '/data/ImportRRuleDeleteByExDate1Part1.ics'); $i = new ImportURLICalHandler(); $i->setImportURLRun($importURLRun); $i->setLimitToSaveOnEachRun(7); $this->assertTrue($i->canHandle()); $r = $i->handle(); // Is it loaded on Imported Events? $ierb = new \repositories\builders\ImportedEventRepositoryBuilder(); $importedEvents = $ierb->fetchAll(); $this->assertEquals(1, count($importedEvents)); $importedEvent = $importedEvents[0]; $reoccur = $importedEvent->getReoccur(); $this->assertEquals(true, is_array($reoccur)); $this->assertEquals(true, isset($reoccur['ical_rrule'])); $this->assertEquals(true, is_array($reoccur['ical_rrule'])); $this->assertEquals("WEEKLY", $reoccur['ical_rrule']["FREQ"]); $this->assertEquals("TH", $reoccur['ical_rrule']["BYDAY"]); // now test real events $erb = new EventRepositoryBuilder(); $erb->setImportedEvent($importedEvent); $erb->setAfterNow(); $events = $erb->fetchAll(); $this->assertTrue(count($events) > 5); $event = $events[0]; $this->assertEquals("2015-02-12T09:00:00+00:00", $event->getStartAtInUTC()->format("c")); $this->assertEquals("2015-02-12T10:00:00+00:00", $event->getEndAtInUTC()->format("c")); $this->assertFalse($event->getIsDeleted()); $event = $events[1]; $this->assertEquals("2015-02-26T09:00:00+00:00", $event->getStartAtInUTC()->format("c")); $this->assertEquals("2015-02-26T10:00:00+00:00", $event->getEndAtInUTC()->format("c")); $this->assertFalse($event->getIsDeleted()); $event = $events[2]; $this->assertEquals("2015-03-12T09:00:00+00:00", $event->getStartAtInUTC()->format("c")); $this->assertEquals("2015-03-12T10:00:00+00:00", $event->getEndAtInUTC()->format("c")); $this->assertFalse($event->getIsDeleted()); \TimeSource::mock(2015, 1, 2, 1, 1, 1); // ============================================= Import With no changes $importURLRun = new ImportURLRun($importURL, $site); $importURLRun->setTemporaryFileStorageForTesting(dirname(__FILE__) . '/data/ImportRRuleDeleteByExDate1Part1.ics'); $i = new ImportURLICalHandler(); $i->setImportURLRun($importURLRun); $i->setLimitToSaveOnEachRun(7); $this->assertTrue($i->canHandle()); $r = $i->handle(); // Is it loaded on Imported Events? $ierb = new \repositories\builders\ImportedEventRepositoryBuilder(); $importedEvents = $ierb->fetchAll(); $this->assertEquals(1, count($importedEvents)); $importedEvent = $importedEvents[0]; $reoccur = $importedEvent->getReoccur(); $this->assertEquals(true, is_array($reoccur)); $this->assertEquals(true, isset($reoccur['ical_rrule'])); $this->assertEquals(true, is_array($reoccur['ical_rrule'])); $this->assertEquals("WEEKLY", $reoccur['ical_rrule']["FREQ"]); $this->assertEquals("TH", $reoccur['ical_rrule']["BYDAY"]); // now test real events $erb = new EventRepositoryBuilder(); $erb->setImportedEvent($importedEvent); $erb->setAfterNow(); $events = $erb->fetchAll(); $this->assertTrue(count($events) > 5); $event = $events[0]; $this->assertEquals("2015-02-12T09:00:00+00:00", $event->getStartAtInUTC()->format("c")); $this->assertEquals("2015-02-12T10:00:00+00:00", $event->getEndAtInUTC()->format("c")); $this->assertFalse($event->getIsDeleted()); $event = $events[1]; $this->assertEquals("2015-02-26T09:00:00+00:00", $event->getStartAtInUTC()->format("c")); $this->assertEquals("2015-02-26T10:00:00+00:00", $event->getEndAtInUTC()->format("c")); $this->assertFalse($event->getIsDeleted()); $event = $events[2]; $this->assertEquals("2015-03-12T09:00:00+00:00", $event->getStartAtInUTC()->format("c")); $this->assertEquals("2015-03-12T10:00:00+00:00", $event->getEndAtInUTC()->format("c")); $this->assertFalse($event->getIsDeleted()); \TimeSource::mock(2015, 1, 3, 1, 1, 1); // ============================================= Import WITH ONE DELETED! $importURLRun = new ImportURLRun($importURL, $site); $importURLRun->setTemporaryFileStorageForTesting(dirname(__FILE__) . '/data/ImportRRuleDeleteByExDate1Part2.ics'); $i = new ImportURLICalHandler(); $i->setImportURLRun($importURLRun); $i->setLimitToSaveOnEachRun(7); $this->assertTrue($i->canHandle()); $r = $i->handle(); // Is it loaded on Imported Events? $ierb = new \repositories\builders\ImportedEventRepositoryBuilder(); $importedEvents = $ierb->fetchAll(); $this->assertEquals(1, count($importedEvents)); $importedEvent = $importedEvents[0]; $reoccur = $importedEvent->getReoccur(); $this->assertEquals(true, is_array($reoccur)); $this->assertEquals(true, isset($reoccur['ical_rrule'])); $this->assertEquals(true, is_array($reoccur['ical_rrule'])); $this->assertEquals("WEEKLY", $reoccur['ical_rrule']["FREQ"]); $this->assertEquals("TH", $reoccur['ical_rrule']["BYDAY"]); // now test real events $erb = new EventRepositoryBuilder(); $erb->setImportedEvent($importedEvent); $erb->setAfterNow(); $erb->setIncludeDeleted(true); $events = $erb->fetchAll(); $this->assertTrue(count($events) > 5); $event = $events[0]; $this->assertEquals("2015-02-12T09:00:00+00:00", $event->getStartAtInUTC()->format("c")); $this->assertEquals("2015-02-12T10:00:00+00:00", $event->getEndAtInUTC()->format("c")); $this->assertFalse($event->getIsDeleted()); $event = $events[1]; $this->assertEquals("2015-02-26T09:00:00+00:00", $event->getStartAtInUTC()->format("c")); $this->assertEquals("2015-02-26T10:00:00+00:00", $event->getEndAtInUTC()->format("c")); $this->assertTrue($event->getIsDeleted()); $event = $events[2]; $this->assertEquals("2015-03-12T09:00:00+00:00", $event->getStartAtInUTC()->format("c")); $this->assertEquals("2015-03-12T10:00:00+00:00", $event->getEndAtInUTC()->format("c")); $this->assertFalse($event->getIsDeleted()); }
/** * * @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); }
public function updateFutureEventsCache(AreaModel $area) { global $DB; $statUpdate = $DB->prepare("UPDATE area_information SET cached_future_events=:count WHERE id=:id"); $erb = new EventRepositoryBuilder(); $erb->setArea($area); $erb->setIncludeDeleted(false); $erb->setIncludeCancelled(false); $erb->setAfterNow(); $count = count($erb->fetchAll()); $statUpdate->execute(array('count' => $count, 'id' => $area->getId())); $area->setCachedFutureEvents($count); }
function disable($slug, Request $request, Application $app) { if (!$this->build($slug, $request, $app)) { $app->abort(404, "Import does not exist."); } if (!$this->parameters['importurl']->getIsEnabled()) { die('NO'); // TODO } if ($request->request->get('disable') == 'yes' && $request->request->get('CSFRToken') == $app['websession']->getCSFRToken()) { $iRepository = new ImportURLRepository(); $iRepository->disable($this->parameters['importurl'], $app['currentUser']); $erb = new EventRepositoryBuilder(); $erb->setAfterNow(); $erb->setIncludeDeleted(false); $erb->setImportURL($this->parameters['importurl']); $eventRepository = new EventRepository(); foreach ($erb->fetchAll() as $event) { $eventRepository->delete($event, $app['currentUser']); } return $app->redirect("/importurl/" . $this->parameters['importurl']->getSlug()); } return $app['twig']->render('site/importurl/disable.html.twig', $this->parameters); }
public function deleteEventsNotSeenAfterRun() { $count = 0; $eventRepo = new EventRepository(); $erb = new EventRepositoryBuilder(); $erb->setImportURL($this->importURL); $erb->setIncludeDeleted(false); $erb->setAfterNow(); foreach ($erb->fetchAll() as $event) { if (!in_array($event->getId(), $this->eventsSeenIDs)) { $eventRepo->delete($event); ++$count; } } return $count; }