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;
     }
 }