function test1() { \TimeSource::mock(2014, 1, 1, 0, 0, 0); $this->addCountriesToTestDB(); $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()); $countryRepo = new CountryRepository(); $gb = $countryRepo->loadByTwoCharCode('GB'); $venue1 = new VenueModel(); $venue1->setTitle("test"); $venue1->setDescription("test test"); $venue1->setCountryId($gb->getId()); $venue2 = new VenueModel(); $venue2->setTitle("test this looks similar"); $venue2->setDescription("test test"); $venue2->setCountryId($gb->getId()); $venueRepo = new VenueRepository(); $venueRepo->create($venue1, $site, $user); $venueRepo->create($venue2, $site, $user); $event = new EventModel(); $event->setSummary("test"); $event->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0)); $event->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0)); $event->setVenueId($venue2->getId()); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); // Test before $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertEquals($venue2->getId(), $event->getVenueId()); $venue2 = $venueRepo->loadById($venue2->getId()); $this->assertFalse($venue2->getIsDeleted()); $this->assertNull($venue2->getIsDuplicateOfId()); // Mark \TimeSource::mock(2014, 1, 1, 2, 0, 0); $venueRepo->markDuplicate($venue2, $venue1, $user); // Test Duplicate $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertEquals($venue1->getId(), $event->getVenueId()); $venue2 = $venueRepo->loadById($venue2->getId()); $this->assertTrue($venue2->getIsDeleted()); $this->assertEquals($venue1->getId(), $venue2->getIsDuplicateOfId()); }
function test1() { \TimeSource::mock(2014, 1, 1, 0, 0, 0); $this->addCountriesToTestDB(); $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()); $countryRepo = new CountryRepository(); $gb = $countryRepo->loadByTwoCharCode('GB'); $venue = new VenueModel(); $venue->setTitle("test"); $venue->setDescription("test test"); $venue->setCountryId($gb->getId()); \TimeSource::mock(2014, 1, 1, 1, 0, 0); $venueRepo = new VenueRepository(); $venueRepo->create($venue, $site, $user); \TimeSource::mock(2014, 1, 1, 2, 0, 0); $venueRepo->delete($venue, $user); $this->checkVenueInTest1($venueRepo->loadById($venue->getId())); $this->checkVenueInTest1($venueRepo->loadBySlug($site, $venue->getSlug())); $vrb = new VenueRepositoryBuilder(); $vrb->setIncludeDeleted(true); $this->assertEquals(1, count($vrb->fetchAll())); $vrb = new VenueRepositoryBuilder(); $vrb->setIncludeDeleted(false); $this->assertEquals(0, count($vrb->fetchAll())); }
public function setFromAppAndEventAndEmail(Application $app, EventModel $eventModel, $email) { $this->event_id = $eventModel->getId(); $this->email = $email; $this->subject = "Can we check the details of your event?"; $venueRepo = new VenueRepository(); $venue = null; if ($eventModel->getVenueId()) { $venue = $venueRepo->loadById($eventModel->getVenueId()); } $area = null; $areaRepo = new AreaRepository(); if ($eventModel->getAreaId()) { $area = $areaRepo->loadById($eventModel->getAreaId()); } else { if ($venue && $venue->getAreaId()) { $area = $areaRepo->loadById($venue->getAreaId()); } } $hrb = new HumanRepositoryBuilder(); $hrb->setHumansForEvent($eventModel); $hrb->setIncludeDeleted(false); $humans = $hrb->fetchAll(); $this->body_html = $app['twig']->render('email/organiserEmail.html.twig', array('event' => $eventModel, 'email' => $this->email, 'venue' => $venue, 'area' => $area, 'humans' => $humans)); if ($app['config']->isDebug) { file_put_contents('/tmp/organiserEmail.html', $this->body_html); } $this->body_text = $app['twig']->render('email/organiserEmail.txt.twig', array('event' => $eventModel, 'email' => $this->email, 'venue' => $venue, 'area' => $area, 'humans' => $humans)); if ($app['config']->isDebug) { file_put_contents('/tmp/organiserEmail.txt', $this->body_text); } $this->created_at = $app['timesource']->getDateTime(); }
protected function build($slug, Request $request, Application $app) { $this->parameters = array('groups' => array(), 'country' => null, 'venue' => null, 'area' => null); if (strpos($slug, "-") > 0) { $slugBits = explode("-", $slug, 2); $slug = $slugBits[0]; } $eventRepository = new EventRepository(); $this->parameters['event'] = $eventRepository->loadBySlug($app['currentSite'], $slug); if (!$this->parameters['event']) { return false; } if ($this->parameters['event']->getGroupId()) { $grb = new GroupRepositoryBuilder(); $grb->setEvent($this->parameters['event']); $this->parameters['groups'] = $grb->fetchAll(); } if ($this->parameters['event']->getVenueID()) { $vr = new VenueRepository(); $this->parameters['venue'] = $vr->loadById($this->parameters['event']->getVenueID()); } if ($this->parameters['event']->getAreaID()) { $ar = new AreaRepository(); $this->parameters['area'] = $ar->loadById($this->parameters['event']->getAreaID()); } elseif ($this->parameters['venue'] && $this->parameters['venue']->getAreaId()) { $ar = new AreaRepository(); $this->parameters['area'] = $ar->loadById($this->parameters['venue']->getAreaID()); } if ($this->parameters['event']->getCountryID()) { $cr = new CountryRepository(); $this->parameters['country'] = $cr->loadById($this->parameters['event']->getCountryID()); } return true; }
protected function build($siteid, $slug, Request $request, Application $app) { $this->parameters = array('group' => null, 'venue' => null, 'country' => null); $sr = new SiteRepository(); $this->parameters['site'] = $sr->loadById($siteid); if (!$this->parameters['site']) { $app->abort(404); } $er = new EventRepository(); $this->parameters['event'] = $er->loadBySlug($this->parameters['site'], $slug); $this->parameters['eventisduplicateof'] = $this->parameters['event']->getIsDuplicateOfId() ? $er->loadById($this->parameters['event']->getIsDuplicateOfId()) : null; if (!$this->parameters['event']) { $app->abort(404); } if ($this->parameters['event']->getGroupId()) { $gr = new GroupRepository(); $this->parameters['group'] = $gr->loadById($this->parameters['event']->getGroupId()); } if ($this->parameters['event']->getCountryID()) { $cr = new CountryRepository(); $this->parameters['country'] = $cr->loadById($this->parameters['event']->getCountryID()); } if ($this->parameters['event']->getVenueID()) { $cr = new VenueRepository(); $this->parameters['venue'] = $cr->loadById($this->parameters['event']->getVenueID()); } }
function test1() { $this->addCountriesToTestDB(); $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()); $countryRepo = new CountryRepository(); $gb = $countryRepo->loadByTwoCharCode('GB'); $venue = new VenueModel(); $venue->setTitle("test"); $venue->setDescription("test test"); $venue->setCountryId($gb->getId()); $venueRepo = new VenueRepository(); $venueRepo->create($venue, $site, $user); $this->checkVenueInTest1($venueRepo->loadById($venue->getId())); $this->checkVenueInTest1($venueRepo->loadBySlug($site, $venue->getSlug())); $grb = new VenueRepositoryBuilder(); $grb->setFreeTextsearch('test'); $this->assertEquals(1, count($grb->fetchAll())); $grb = new VenueRepositoryBuilder(); $grb->setFreeTextsearch('cats'); $this->assertEquals(0, count($grb->fetchAll())); }
protected function build($siteid, $slug, Request $request, Application $app) { $this->parameters = array('group' => null); $sr = new SiteRepository(); $this->parameters['site'] = $sr->loadById($siteid); if (!$this->parameters['site']) { $app->abort(404); } $vr = new VenueRepository(); $this->parameters['venue'] = $vr->loadBySlug($this->parameters['site'], $slug); if (!$this->parameters['venue']) { $app->abort(404); } $this->parameters['venueisduplicateof'] = $this->parameters['venue']->getIsDuplicateOfId() ? $vr->loadById($this->parameters['venue']->getIsDuplicateOfId()) : null; }
function testIntegration2() { $this->addCountriesToTestDB(); \TimeSource::mock(2014, 1, 1, 12, 0, 0); $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()); $countryRepo = new CountryRepository(); $gb = $countryRepo->loadByTwoCharCode('GB'); ## Create venue \TimeSource::mock(2014, 1, 1, 13, 0, 0); $venue = new VenueModel(); $venue->setTitle("test"); $venue->setDescription("test test"); $venue->setCountryId($gb->getId()); $venueRepo = new VenueRepository(); $venueRepo->create($venue, $site, $user); ## Edit venue \TimeSource::mock(2014, 1, 1, 14, 0, 0); $venue = $venueRepo->loadById($venue->getId()); $venue->setDescription("testy"); $venue->setLat(3.6); $venue->setLng(3.7); $venueRepo->edit($venue, $user); ## Delete venue \TimeSource::mock(2014, 1, 1, 15, 0, 0); $venueRepo->delete($venue, $user); ## Now save changed flags on these ..... $venueHistoryRepo = new VenueHistoryRepository(); $stat = $this->app['db']->prepare("SELECT * FROM venue_history"); $stat->execute(); while ($data = $stat->fetch()) { $venueHistory = new VenueHistoryModel(); $venueHistory->setFromDataBaseRow($data); $venueHistoryRepo->ensureChangedFlagsAreSet($venueHistory); } ## Now load and check $historyRepo = new HistoryRepositoryBuilder(); $historyRepo->setVenue($venue); $historyRepo->setIncludeEventHistory(false); $historyRepo->setIncludeGroupHistory(false); $historyRepo->setIncludeVenueHistory(true); $histories = $historyRepo->fetchAll(); $this->assertEquals(3, count($histories)); #the delete $this->assertEquals(FALSE, $histories[0]->getTitleChanged()); $this->assertEquals(false, $histories[0]->getDescriptionChanged()); $this->assertEquals(false, $histories[0]->getCountryIdChanged()); $this->assertEquals(true, $histories[0]->getIsDeletedChanged()); $this->assertEquals(false, $histories[0]->getLatChanged()); $this->assertEquals(false, $histories[0]->getLngChanged()); #the edit $this->assertEquals(FALSE, $histories[1]->getTitleChanged()); $this->assertEquals(true, $histories[1]->getDescriptionChanged()); $this->assertEquals(false, $histories[1]->getCountryIdChanged()); $this->assertEquals(false, $histories[1]->getIsDeletedChanged()); $this->assertEquals(true, $histories[1]->getLatChanged()); $this->assertEquals(true, $histories[1]->getLngChanged()); #the create $this->assertEquals(true, $histories[2]->getTitleChanged()); $this->assertEquals(true, $histories[2]->getDescriptionChanged()); $this->assertEquals(true, $histories[2]->getCountryIdChanged()); $this->assertEquals(false, $histories[2]->getIsDeletedChanged()); $this->assertEquals(false, $histories[2]->getLatChanged()); $this->assertEquals(false, $histories[2]->getLngChanged()); }
protected function build($slug, Request $request, Application $app) { global $CONFIG; $this->parameters = array('group' => null, 'venue' => null, 'country' => null, 'area' => null, 'parentAreas' => array(), 'childAreas' => array(), 'importurl' => null, 'eventIsDuplicateOf' => null); if (strpos($slug, "-")) { $slug = array_shift(explode("-", $slug, 2)); } $eventRepository = new EventRepository(); $this->parameters['event'] = $eventRepository->loadBySlug($app['currentSite'], $slug); if (!$this->parameters['event']) { return false; } if ($this->parameters['event']->getCountryID()) { $cr = new CountryRepository(); $this->parameters['country'] = $cr->loadById($this->parameters['event']->getCountryID()); } $areaID = null; if ($this->parameters['event']->getVenueID()) { $cr = new VenueRepository(); $this->parameters['venue'] = $cr->loadById($this->parameters['event']->getVenueID()); $areaID = $this->parameters['venue']->getAreaId(); } else { if ($this->parameters['event']->getAreaId()) { $areaID = $this->parameters['event']->getAreaId(); } } if ($areaID) { $ar = new AreaRepository(); $this->parameters['area'] = $ar->loadById($areaID); if (!$this->parameters['area']) { return false; } $checkArea = $this->parameters['area']->getParentAreaId() ? $ar->loadById($this->parameters['area']->getParentAreaId()) : null; while ($checkArea) { array_unshift($this->parameters['parentAreas'], $checkArea); $checkArea = $checkArea->getParentAreaId() ? $ar->loadById($checkArea->getParentAreaId()) : null; } } if ($this->parameters['event']->getImportUrlId()) { $iur = new ImportURLRepository(); $this->parameters['importurl'] = $iur->loadById($this->parameters['event']->getImportUrlId()); } $groupRB = new GroupRepositoryBuilder(); $groupRB->setEvent($this->parameters['event']); $this->parameters['groups'] = $groupRB->fetchAll(); if ($this->parameters['event']->getGroupId()) { foreach ($this->parameters['groups'] as $group) { if ($group->getId() == $this->parameters['event']->getGroupId()) { $this->parameters['group'] = $group; } } } if ($this->parameters['event']->getIsDuplicateOfId()) { $this->parameters['eventIsDuplicateOf'] = $eventRepository->loadByID($this->parameters['event']->getIsDuplicateOfId()); } $app['currentUserActions']->set("org.openacalendar", "eventHistory", true); $app['currentUserActions']->set("org.openacalendar", "eventEditDetails", $app['currentUserPermissions']->hasPermission("org.openacalendar", "EVENTS_CHANGE") && !$this->parameters['event']->getIsDeleted() && !$this->parameters['event']->getIsCancelled()); $app['currentUserActions']->set("org.openacalendar", "eventEditDetailsRollback", $app['currentUserActions']->has("org.openacalendar", "eventEditDetails")); $app['currentUserActions']->set("org.openacalendar", "eventEditVenue", $app['currentUserPermissions']->hasPermission("org.openacalendar", "EVENTS_CHANGE") && !$this->parameters['event']->getIsDeleted() && !$this->parameters['event']->getIsCancelled() && $app['currentSite']->getIsFeaturePhysicalEvents()); $app['currentUserActions']->set("org.openacalendar", "eventEditTags", $app['currentUserPermissions']->hasPermission("org.openacalendar", "EVENTS_CHANGE") && !$this->parameters['event']->getIsDeleted() && !$this->parameters['event']->getIsCancelled() && $app['currentSite']->getIsFeatureTag()); $app['currentUserActions']->set("org.openacalendar", "eventEditGroups", $app['currentUserPermissions']->hasPermission("org.openacalendar", "EVENTS_CHANGE") && !$this->parameters['event']->getIsDeleted() && !$this->parameters['event']->getIsCancelled() && $app['currentSite']->getIsFeatureGroup()); $app['currentUserActions']->set("org.openacalendar", "eventEditMedia", $app['currentUserPermissions']->hasPermission("org.openacalendar", "EVENTS_CHANGE") && !$this->parameters['event']->getIsDeleted() && !$this->parameters['event']->getIsCancelled() && $CONFIG->isFileStore()); $app['currentUserActions']->set("org.openacalendar", "eventRecur", $app['currentUserPermissions']->hasPermission("org.openacalendar", "EVENTS_CHANGE") && !$this->parameters['event']->getIsImported() && !$this->parameters['event']->getIsDeleted() && !$this->parameters['event']->getIsCancelled()); $app['currentUserActions']->set("org.openacalendar", "eventDelete", $app['currentUserPermissions']->hasPermission("org.openacalendar", "EVENTS_CHANGE") && !$this->parameters['event']->getIsImported() && !$this->parameters['event']->getIsDeleted()); $app['currentUserActions']->set("org.openacalendar", "eventCancel", $app['currentUserPermissions']->hasPermission("org.openacalendar", "EVENTS_CHANGE") && !$this->parameters['event']->getIsImported() && !$this->parameters['event']->getIsCancelled() && !$this->parameters['event']->getIsDeleted()); $app['currentUserActions']->set("org.openacalendar", "eventUndelete", $app['currentUserPermissions']->hasPermission("org.openacalendar", "EVENTS_CHANGE") && !$this->parameters['event']->getIsImported() && $this->parameters['event']->getIsDeleted()); $app['currentUserActions']->set("org.openacalendar", "eventUncancel", $app['currentUserPermissions']->hasPermission("org.openacalendar", "EVENTS_CHANGE") && !$this->parameters['event']->getIsImported() && $this->parameters['event']->getIsCancelled()); return true; }
protected function run() { $this->localTimeZone = new \DateTimeZone("Europe/London"); $siteRepo = new \repositories\SiteRepository(); $site = $siteRepo->loadById($this->app['config']->singleSiteID); // TODO assumes single site! $areaRepository = new AreaRepository(); $venueRepository = new VenueRepository(); $countryRepository = new CountryRepository(); $countries = array(); $humanPopItRepository = new HumanPopItInfoRepository(); $areaMapItRepo = new AreaMapItInfoRepository(); $out = array('data' => array(), 'areasPastEvents' => array()); $erb = new EventRepositoryBuilder(); $erb->setSite($site); $erb->setIncludeDeleted(true); $erb->setIncludeCancelled(true); $erb->setAfterNow(); foreach ($erb->fetchAll() as $event) { $venue = null; $country = null; $area = null; $humans = array(); if ($event->getCountryId()) { if (!isset($countries[$event->getCountryId()])) { $countries[$event->getCountryId()] = $countryRepository->loadById($event->getCountryId()); } $country = $countries[$event->getCountryId()]; } if ($event->getVenueId()) { $venue = $venueRepository->loadById($event->getVenueId()); } if ($event->getAreaId()) { $area = $areaRepository->loadById($event->getAreaId()); } else { if ($venue && $venue->getAreaId()) { $area = $areaRepository->loadById($venue->getAreaId()); } } $thisOut = $this->addEvent($event, $venue, $area, $country); $thisOut['humans'] = array(); $mapitids = array(); if ($area) { $areamapit = $areaMapItRepo->getByAreaID($area->getId()); if ($areamapit) { $mapitids[] = $areamapit->getMapitId(); } } $hrb = new HumanRepositoryBuilder(); $hrb->setHumansForEvent($event); foreach ($hrb->fetchAll() as $human) { $popit = $humanPopItRepository->getByHumanID($human->getId()); $thisOut['humans'][] = array('popit_id' => $popit->getPopitId()); $arb = new AreaRepositoryBuilder(); $arb->setIncludeDeleted(false); $arb->setHuman($human); foreach ($arb->fetchAll() as $areaForHuman) { if (!$area || $area->getId() != $areaForHuman->getId()) { $areamapit = $areaMapItRepo->getByAreaID($areaForHuman->getId()); if ($areamapit) { $mapitids[] = $areamapit->getMapitId(); } } } } $thisOut['mapitids'] = array_values(array_unique($mapitids)); $out['data'][] = $thisOut; } $arb = new \com\meetyournextmp\repositories\builders\AreaRepositoryBuilder(); $arb->setLimit(1000); $arb->setIncludeDeleted(false); $arb->setIsMapItAreaOnly(true); foreach ($arb->fetchAll() as $area) { $erb = new EventRepositoryBuilder(); $erb->setIncludeDeleted(false); $erb->setIncludeCancelled(false); $erb->setArea($area); $erb->setBeforeNow(); $areamapit = $areaMapItRepo->getByAreaID($area->getId()); $out['areasPastEvents'][$areamapit->getMapitId()] = $erb->fetchCount(); } file_put_contents(APP_ROOT_DIR . DIRECTORY_SEPARATOR . 'webSingleSite' . DIRECTORY_SEPARATOR . 'datadump' . DIRECTORY_SEPARATOR . 'ynmpread.json', json_encode($out)); return array('result' => 'ok'); }