function test1() { $this->addCountriesToTestDB(); \TimeSource::mock(2014, 10, 1, 1, 1, 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'); $area = new AreaModel(); $area->setTitle("test"); $area->setDescription("test test"); $areaRepo = new \repositories\AreaRepository(); $areaRepo->create($area, null, $site, $gb, $user); $venue = new VenueModel(); $venue->setTitle("test"); $venue->setDescription("test test"); $venue->setCountryId($gb->getId()); $venue->setAreaId($area->getId()); $venueRepo = new VenueRepository(); $venueRepo->create($venue, $site, $user); $venueDuplicate = new VenueModel(); $venueDuplicate->setTitle("test Duplicate"); $venueRepo->create($venueDuplicate, $site, $user); \TimeSource::mock(2014, 10, 1, 1, 2, 0); $venueRepo->markDuplicate($venueDuplicate, $venue, $user); $event = new EventModel(); $event->setSummary("test"); $event->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0, 'Europe/London')); $event->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0, 'Europe/London')); $event->setVenueId($venue->getId()); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); ## Test $this->assertNotNull($venueRepo->loadBySlug($site, $venue->getSlug())); $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertEquals($venue->getId(), $event->getVenueId()); ## Now Purge! $venueRepo->purge($venue); ## Test $this->assertNull($venueRepo->loadBySlug($site, $venue->getSlug())); $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertNull($event->getVenueId()); }
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())); }
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($slug, Request $request, Application $app) { $repo = new VenueRepository(); $this->venue = $repo->loadBySlug($app['currentSite'], $slug); if (!$this->venue) { return false; } return true; }
protected function build($slug, Request $request, Application $app) { global $CONFIG; $this->parameters = array('country' => null, 'area' => null, 'parentAreas' => array(), 'childAreas' => array(), 'venueIsDuplicateOf' => null); if (strpos($slug, "-")) { $slug = array_shift(explode("-", $slug, 2)); } $vr = new VenueRepository(); $this->parameters['venue'] = $vr->loadBySlug($app['currentSite'], $slug); if (!$this->parameters['venue']) { return false; } if ($this->parameters['venue']->getCountryID()) { $cr = new CountryRepository(); $this->parameters['country'] = $cr->loadById($this->parameters['venue']->getCountryID()); } if ($this->parameters['venue']->getAreaId()) { $ar = new AreaRepository(); $this->parameters['area'] = $ar->loadById($this->parameters['venue']->getAreaId()); 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; } $areaRepoBuilder = new AreaRepositoryBuilder(); $areaRepoBuilder->setSite($app['currentSite']); $areaRepoBuilder->setCountry($this->parameters['country']); $areaRepoBuilder->setParentArea($this->parameters['area']); $areaRepoBuilder->setIncludeDeleted(false); $this->parameters['childAreas'] = $areaRepoBuilder->fetchAll(); } else { $areaRepoBuilder = new AreaRepositoryBuilder(); $areaRepoBuilder->setSite($app['currentSite']); $areaRepoBuilder->setCountry($this->parameters['country']); $areaRepoBuilder->setNoParentArea(true); $areaRepoBuilder->setIncludeDeleted(false); $this->parameters['childAreas'] = $areaRepoBuilder->fetchAll(); } if ($this->parameters['venue']->getIsDuplicateOfId()) { $this->parameters['venueIsDuplicateOf'] = $vr->loadByID($this->parameters['venue']->getIsDuplicateOfId()); } $app['currentUserActions']->set("org.openacalendar", "venueHistory", true); $app['currentUserActions']->set("org.openacalendar", "venueEditDetails", $app['currentUserPermissions']->hasPermission("org.openacalendar", "VENUES_CHANGE") && $app['currentSite']->getIsFeaturePhysicalEvents() && !$this->parameters['venue']->getIsDeleted()); $app['currentUserActions']->set("org.openacalendar", "venueDelete", $app['currentUserPermissions']->hasPermission("org.openacalendar", "VENUES_CHANGE") && $app['currentSite']->getIsFeaturePhysicalEvents() && !$this->parameters['venue']->getIsDeleted()); $app['currentUserActions']->set("org.openacalendar", "venueEditMedia", $app['currentUserPermissions']->hasPermission("org.openacalendar", "VENUES_CHANGE") && $app['currentSite']->getIsFeaturePhysicalEvents() && !$this->parameters['venue']->getIsDeleted() && $CONFIG->isFileStore()); $app['currentUserActions']->set("org.openacalendar", "venueEditPushToChildAreas", $this->parameters['childAreas'] && $app['currentUserPermissions']->hasPermission("org.openacalendar", "VENUES_CHANGE") && $app['currentSite']->getIsFeaturePhysicalEvents() && !$this->parameters['venue']->getIsDeleted()); return true; }
protected function build($slug, Request $request, Application $app) { $this->parameters = array(); if (strpos($slug, "-") > 0) { $slugBits = explode("-", $slug, 2); $slug = $slugBits[0]; } $vr = new VenueRepository(); $this->parameters['venue'] = $vr->loadBySlug($app['currentSite'], $slug); if (!$this->parameters['venue']) { return false; } return true; }
function index($siteid, $slug, Request $request, Application $app) { global $CONFIG; $this->build($siteid, $slug, $request, $app); $form = $app['form.factory']->create(new ActionForm()); if ('POST' == $request->getMethod()) { $form->bind($request); if ($form->isValid()) { $data = $form->getData(); $action = new ActionParser($data['action']); if ($action->getCommand() == 'delete' && !$this->parameters['venue']->getIsDeleted()) { $vr = new VenueRepository(); $vr->delete($this->parameters['venue'], $app['currentUser']); return $app->redirect('/sysadmin/site/' . $this->parameters['site']->getId() . '/venue/' . $this->parameters['venue']->getSlug()); } else { if ($action->getCommand() == 'undelete' && $this->parameters['venue']->getIsDeleted()) { $this->parameters['venue']->setIsDeleted(false); $vr = new VenueRepository(); $vr->undelete($this->parameters['venue'], $app['currentUser']); return $app->redirect('/sysadmin/site/' . $this->parameters['site']->getId() . '/venue/' . $this->parameters['venue']->getSlug()); } else { if ($action->getCommand() == 'isduplicateof') { $vr = new VenueRepository(); $originalVenue = $vr->loadBySlug($this->parameters['site'], $action->getParam(0)); if ($originalVenue && $originalVenue->getId() != $this->parameters['venue']->getId()) { $vr->markDuplicate($this->parameters['venue'], $originalVenue, $app['currentUser']); return $app->redirect('/sysadmin/site/' . $this->parameters['site']->getId() . '/venue/' . $this->parameters['venue']->getSlug()); } } else { if ($action->getCommand() == 'purge' && $CONFIG->sysAdminExtraPurgeVenuePassword && $CONFIG->sysAdminExtraPurgeVenuePassword == $action->getParam(0)) { $vr = new VenueRepository(); $vr->purge($this->parameters['venue']); return $app->redirect('/sysadmin/site/' . $this->parameters['site']->getId() . '/venue/'); } } } } } } $this->parameters['form'] = $form->createView(); return $app['twig']->render('sysadmin/venue/index.html.twig', $this->parameters); }
protected function build($countryCode, $areaSlug, $venueSlug, Request $request, Application $app) { $this->parameters = array('country' => null, 'area' => null, 'venue' => null); if ($areaSlug) { $ar = new AreaRepository(); $this->parameters['area'] = $ar->loadBySlug($app['currentSite'], $areaSlug); } if ($this->parameters['area']) { $cr = new CountryRepository(); $this->parameters['country'] = $cr->loadById($this->parameters['area']->getCountryID()); } else { if ($countryCode) { $cr = new CountryRepository(); $this->parameters['country'] = $cr->loadByTwoCharCode($countryCode); } } if ($venueSlug) { $vr = new VenueRepository(); $this->parameters['venue'] = $vr->loadBySlug($app['currentSite'], $venueSlug); } return true; }
function build(Application $app) { $this->paramaters = array('daysAheadInNextBox' => 3, 'showCharsOfDescription' => 0, 'refreshInMinutes' => 0, 'MAX_EVENT_QUERIES_ON_EVENT_BOARD' => self::$MAX_EVENT_QUERIES_ON_EVENT_BOARD, 'configParameters' => array()); if (isset($_GET['daysAheadInNextBox']) && intval($_GET['daysAheadInNextBox']) >= 0) { $this->paramaters['daysAheadInNextBox'] = intval($_GET['daysAheadInNextBox']); $this->paramaters['configParameters']['daysAheadInNextBox'] = $_GET['daysAheadInNextBox']; } if (isset($_GET['showCharsOfDescription']) && intval($_GET['showCharsOfDescription']) >= 0) { $this->paramaters['showCharsOfDescription'] = intval($_GET['showCharsOfDescription']); $this->paramaters['configParameters']['showCharsOfDescription'] = $_GET['showCharsOfDescription']; } if (isset($_GET['refreshInMinutes']) && intval($_GET['refreshInMinutes']) >= 0) { $this->paramaters['refreshInMinutes'] = intval($_GET['refreshInMinutes']); $this->paramaters['configParameters']['refreshInMinutes'] = $_GET['refreshInMinutes']; } $areaRepository = new AreaRepository(); $groupRepository = new GroupRepository(); $venueRepository = new VenueRepository(); $this->paramaters['data'] = array(); for ($i = 0; $i <= self::$MAX_EVENT_QUERIES_ON_EVENT_BOARD; $i++) { $area = null; if (isset($_GET['eventArea' . $i])) { $area = $this->getIdFromPassedVariable($_GET['eventArea' . $i]); $this->paramaters['configParameters']['eventArea' . $i] = $_GET['eventArea' . $i]; } $group = null; if (isset($_GET['eventGroup' . $i])) { $group = $this->getIdFromPassedVariable($_GET['eventGroup' . $i]); $this->paramaters['configParameters']['eventGroup' . $i] = $_GET['eventGroup' . $i]; } $venue = null; if (isset($_GET['eventVenue' . $i])) { $venue = $this->getIdFromPassedVariable($_GET['eventVenue' . $i]); $this->paramaters['configParameters']['eventVenue' . $i] = $_GET['eventVenue' . $i]; } if ($area || $group || $venue) { $queryData = array('area' => null, 'group' => null, 'venue' => null, 'minorImportance' => false, 'query' => new EventRepositoryBuilder()); $queryData['query']->setSite($app['currentSite']); $queryData['query']->setAfterNow(); $queryData['query']->setIncludeDeleted(false); if ($area) { $areaObj = $areaRepository->loadBySlug($app['currentSite'], $area); if ($areaObj) { $queryData['area'] = $areaObj; $queryData['query']->setArea($areaObj); } } if ($group) { $groupObj = $groupRepository->loadBySlug($app['currentSite'], $group); if ($groupObj) { $queryData['group'] = $groupObj; $queryData['query']->setGroup($groupObj); } } if ($venue) { $venueObj = $venueRepository->loadBySlug($app['currentSite'], $venue); if ($venueObj) { $queryData['venue'] = $venueObj; $queryData['query']->setVenue($venueObj); } } if (isset($_GET['eventMinorImportance' . $i]) && $_GET['eventMinorImportance' . $i] == 'yes') { $queryData['minorImportance'] = true; $this->paramaters['configParameters']['eventMinorImportance' . $i] = 'yes'; } $this->paramaters['data'][] = $queryData; } } if (count($this->paramaters['data']) == 0) { $queryData = array('area' => null, 'group' => null, 'venue' => null, 'minorImportance' => false, 'query' => new EventRepositoryBuilder()); $queryData['query']->setSite($app['currentSite']); $queryData['query']->setAfterNow(); $queryData['query']->setIncludeDeleted(false); $this->paramaters['data'][] = $queryData; } }
function editVenueSearch($slug, Request $request, Application $app) { //var_dump($_POST); die(); if (!$this->build($slug, $request, $app)) { $app->abort(404, "Event does not exist."); } if ($this->parameters['event']->getIsDeleted()) { die("No"); // TODO } $areaRepository = new AreaRepository(); $this->parameters['doesCountryHaveAnyNotDeletedAreas'] = $areaRepository->doesCountryHaveAnyNotDeletedAreas($app['currentSite'], $this->parameters['country']); $this->parameters['searchAddressCode'] = $request->query->get('searchAddressCode'); $this->parameters['searchArea'] = $this->removeSearchPrefixWords($request->query->get('searchArea')); $this->parameters['searchAreaSlug'] = $request->query->get('searchAreaSlug'); $this->parameters['searchAreaObject'] = $request->query->get('searchAreaObject'); $this->parameters['searchAddress'] = $request->query->get('searchAddress'); $this->parameters['searchTitle'] = $request->query->get('searchTitle'); $this->parameters['searchFieldsSubmitted'] = $request->query->get('fieldsSubmitted') == '1'; if ('POST' == $request->getMethod() && $request->request->get('CSFRToken') == $app['websession']->getCSFRToken()) { $venueRepository = new VenueRepository(); if ($request->request->get('venue_slug') && intval($request->request->get('venue_slug'))) { // Intval() check here to make sure we have a int passed and not "no" or "new" $venue = $venueRepository->loadBySlug($app['currentSite'], intval($request->request->get('venue_slug'))); if ($venue) { $this->parameters['event']->setVenueId($venue->getId()); $this->parameters['event']->setAreaId(null); $eventRepository = new EventRepository(); $eventRepository->edit($this->parameters['event'], $app['currentUser']); $gotResult = true; } } if ($gotResult) { $repo = new EventRecurSetRepository(); if ($repo->isEventInSetWithNotDeletedFutureEvents($this->parameters['event'])) { return $app->redirect("/event/" . $this->parameters['event']->getSlugforURL() . '/edit/future'); } else { return $app->redirect("/event/" . $this->parameters['event']->getSlugforURL()); } } } $this->editVenueGetDataIntoParameters($app); return $app['twig']->render('site/event/edit.venue.search.html.twig', $this->parameters); }
function onThisStepProcessPage() { // Firstly, do we change mode? if ($this->request->request->get('action') == 'setvenue') { $this->draftEvent->setDetailsValue('where.mode', $this->MODE_VENUE); return true; } if ($this->request->request->get('action') == 'setnewvenue') { $this->draftEvent->setDetailsValue('where.mode', $this->MODE_NEWVENUE); $venueModel = new VenueModel(); $venueModel->setSiteId($this->site->getId()); $venueModel->setCountryId($this->draftEvent->getDetailsValue('event.country_id')); $venueModel->setTitle($this->request->request->get('fieldTitle')); $venueModel->setAddress($this->request->request->get('fieldAddress')); $venueModel->setAddressCode($this->request->request->get('fieldAddressCode')); if ($this->request->request->get('fieldAreaSlug') && $this->request->request->get('fieldAreaSlug') != -1) { $areaRepo = new AreaRepository(); $area = $areaRepo->loadBySlug($this->site, $this->request->request->get('fieldAreaSlug')); if ($area) { $venueModel->setAreaId($area->getId()); } } foreach ($this->application['extensions']->getExtensionsIncludingCore() as $extension) { $extension->addDetailsToVenue($venueModel); } $this->draftEvent->setDetailsValue('venue.title', $venueModel->getTitle()); $this->draftEvent->setDetailsValue('venue.address', $venueModel->getAddress()); $this->draftEvent->setDetailsValue('venue.address_code', $venueModel->getAddressCode()); $this->draftEvent->setDetailsValue('venue.field_area_search_text', $this->request->request->get('fieldAreaSearchText')); $this->draftEvent->setDetailsValue('venue.area_id', $venueModel->getAreaId()); return true; } if ($this->request->request->get('action') == 'setarea') { // User may have been setting venue and realised they didn't know it. Clear data to make sure it's kept clean. $this->draftEvent->unsetDetailsValue('event.newvenue'); $this->draftEvent->unsetDetailsValue('venue.title'); $this->draftEvent->unsetDetailsValue('venue.address'); $this->draftEvent->unsetDetailsValue('venue.address_code'); $this->draftEvent->unsetDetailsValue('venue.description'); $this->draftEvent->unsetDetailsValue('venue.field_area_search_text'); $this->draftEvent->unsetDetailsValue('venue.area_id'); // Do we ask user for area or not? $countryRepository = new CountryRepository(); $country = $countryRepository->loadById($this->draftEvent->getDetailsValue('event.country_id')); $areaRepository = new AreaRepository(); if ($areaRepository->doesCountryHaveAnyNotDeletedAreas($this->site, $country)) { $this->draftEvent->setDetailsValue('where.mode', $this->MODE_AREA); } else { $this->draftEvent->setDetailsValue('event.noareavenue', true); $this->isAllInformationGathered = true; } return true; } // Secondly, any thing actually set? if ($this->request->request->get('action') == 'setthisarea') { $ar = new AreaRepository(); $area = $ar->loadBySlug($this->site, $this->request->request->get('area_slug')); if ($area) { $this->draftEvent->setDetailsValue('area.id', $area->getId()); $this->draftEvent->setDetailsValue('area.title', $area->getTitle()); $this->isAllInformationGathered = true; return true; } } if ($this->request->request->get('action') == 'setthisvenue') { $vr = new VenueRepository(); $venue = $vr->loadBySlug($this->site, $this->request->request->get('venue_slug')); if ($venue) { $this->draftEvent->setDetailsValue('venue.id', $venue->getId()); $this->draftEvent->setDetailsValue('venue.title', $venue->getTitle()); $this->draftEvent->setDetailsValue('venue.address', $venue->getAddress()); $this->draftEvent->setDetailsValue('venue.address_code', $venue->getAddressCode()); $this->isAllInformationGathered = true; return true; } } if ($this->request->request->get('action') == 'setthisnewvenue') { $venueModel = new VenueModel(); $venueModel->setSiteId($this->site->getId()); $venueModel->setCountryId($this->draftEvent->getDetailsValue('event.country_id')); $venueModel->setTitle($this->request->request->get('fieldTitle')); $venueModel->setAddress($this->request->request->get('fieldAddress')); $venueModel->setAddressCode($this->request->request->get('fieldAddressCode')); $venueModel->setDescription($this->request->request->get('fieldDescription')); $areaRepo = new AreaRepository(); // Slightly ackward we have to set Area ID on venue object, then when extensions have done we need to reload the area object again. if ($this->request->request->get('fieldAreaSlug') && $this->request->request->get('fieldAreaSlug') != -1) { $area = $areaRepo->loadBySlug($this->site, $this->request->request->get('fieldAreaSlug')); if ($area) { $venueModel->setAreaId($area->getId()); } } if ($this->request->request->get('fieldChildAreaSlug') && $this->request->request->get('fieldChildAreaSlug') != -1) { $areaChild = $areaRepo->loadBySlug($this->site, $this->request->request->get('fieldChildAreaSlug')); if ($areaChild) { $area = $areaChild; $venueModel->setAreaId($areaChild->getId()); } } foreach ($this->application['extensions']->getExtensionsIncludingCore() as $extension) { $extension->addDetailsToVenue($venueModel); } $area = null; if ($venueModel->getAreaId() && (!$area || $area->getId() != $venueModel->getAreaId())) { $area = $areaRepo->loadById($venueModel->getAreaId()); } $this->draftEvent->setDetailsValue('venue.title', $venueModel->getTitle()); $this->draftEvent->setDetailsValue('venue.address', $venueModel->getAddress()); $this->draftEvent->setDetailsValue('venue.address_code', $venueModel->getAddressCode()); $this->draftEvent->setDetailsValue('venue.description', $venueModel->getDescription()); if ($venueModel->hasLatLng()) { $this->draftEvent->setDetailsValue('venue.lat', $venueModel->getLat()); $this->draftEvent->setDetailsValue('venue.lng', $venueModel->getLng()); } else { $this->draftEvent->setDetailsValue('venue.lat', null); $this->draftEvent->setDetailsValue('venue.lng', null); } $this->draftEvent->setDetailsValue('venue.field_area_search_text', $this->request->request->get('fieldAreaSearchText')); if ($area) { $this->draftEvent->setDetailsValue('area.id', $area->getId()); $this->draftEvent->setDetailsValue('area.title', $area->getTitle()); } else { $this->draftEvent->setDetailsValue('area.id', null); $this->draftEvent->setDetailsValue('area.title', null); } // are we done? if user has selected -1 for "none" or there are no child areas. oh, and title needed if ($this->request->request->get('fieldChildAreaSlug') == -1 && trim($venueModel->getTitle())) { $this->draftEvent->setDetailsValue('event.newvenue', true); $this->isAllInformationGathered = true; } else { if (count($this->getChildAreasForArea($area, 1)) == 0 && trim($venueModel->getTitle())) { $this->draftEvent->setDetailsValue('event.newvenue', true); $this->isAllInformationGathered = true; } } $this->draftEvent->setDetailsValue('where.setthisnewvenue.submitted', true); return true; } if ($this->request->request->get('action') == 'setnoareavenue') { $this->draftEvent->setDetailsValue('event.noareavenue', true); $this->isAllInformationGathered = true; return true; } }