/** * @return ISurveyStep[] */ public function getSteps() { $query = new QueryObject(new SurveyStep()); $query->addAlias(QueryAlias::create('Template')); $query->addOrder(QueryOrder::asc('Template.Order')); return new ArrayList(AssociationFactory::getInstance()->getOne2ManyAssociation($this, 'Steps', $query)->toArray()); }
public function getNominationsByNominee($member_id, $offset = 0, $limit = 10) { $query = new QueryObject(new CandidateNomination()); $query->addAlias(QueryAlias::create('Candidate')); $query->addAndCondition(QueryCriteria::equal('Member.ID', $member_id)); return $this->getAll($query, $offset, $limit); }
/** * @param string $dupe_account_email * @return IDupeMemberActionAccountRequest */ public function findByDupeAccount($dupe_account_email) { $query = new QueryObject(new $this->entity_class()); $query->addAlias(QueryAlias::create('DupeAccount')); $query->addAndCondition(QueryCriteria::equal('Member.Email', $dupe_account_email)); return $this->getBy($query); }
public function search() { $output = ''; if (!$this->isJson()) { return $this->httpError(500, 'Content Type not allowed'); } try { $search_params = json_decode($this->request->getBody(), true); $query = new QueryObject(new Consultant()); $query->addAlias(QueryAlias::create('Company')); $query->addAndCondition(QueryCriteria::equal("Active", true)); $location = @explode(',', @$search_params['location_term']); $name = @$search_params['name_term']; $service = @$search_params['service_term']; if (!empty($name)) { $query->addAndCondition(QueryCompoundCriteria::compoundOr(array(QueryCriteria::like('CompanyService.Name', $name), QueryCriteria::like('CompanyService.Overview', $name), QueryCriteria::like('Company.Name', $name)))); } if (!empty($service)) { $query->addAlias(QueryAlias::create('ConsultantServiceOfferedType')); $query->addAndCondition(QueryCriteria::like("ConsultantServiceOfferedType.Type", $service)); } if (is_array($location) && !empty($location[0])) { $query->addAlias(QueryAlias::create('Office')); $query->addAndCondition(QueryCriteria::like("Office.City", $location[0])); } $countries = array_flip(Geoip::getCountryDropDown()); if (is_array($location) && count($location) == 2) { $country = trim($location[1]); if (!empty($country) && array_key_exists($country, $countries)) { $query->addAndCondition(QueryCriteria::like("Office.Country", $countries[$country])); } } else { if (is_array($location) && count($location) == 3) { $state = trim($location[1]); $country = trim($location[2]); if (!empty($country) && array_key_exists($country, $countries)) { $query->addAndCondition(QueryCriteria::like("Office.Country", $countries[$country])); } if (!empty($state)) { $query->addAndCondition(QueryCriteria::like("Office.State", $state)); } } } list($list, $size) = $this->consultants_repository->getAll($query, 0, 1000); foreach ($list as $public_cloud) { $output .= $public_cloud->renderWith('ConsultantsDirectoryPage_CloudBox', array('ConsultantLink' => $this->Link())); } } catch (Exception $ex) { return $this->httpError(500, 'Server Error'); } return empty($output) ? $this->httpError(404, '') : $output; }
function search() { $output = ''; if (!$this->isJson()) { return $this->httpError(500, 'Content Type not allowed'); } try { $search_params = json_decode($this->request->getBody(), true); $query1 = new QueryObject(new Distribution()); $query2 = new QueryObject(new Appliance()); $query1->addAlias(QueryAlias::create('Company')); $query2->addAlias(QueryAlias::create('Company')); $name = @$search_params['name_term']; $service = @$search_params['service_term']; if (!empty($name)) { $query1->addAndCondition(QueryCompoundCriteria::compoundOr(array(QueryCriteria::like('CompanyService.Name', $name), QueryCriteria::like('CompanyService.Overview', $name), QueryCriteria::like('Company.Name', $name)))); $query2->addAndCondition(QueryCompoundCriteria::compoundOr(array(QueryCriteria::like('CompanyService.Name', $name), QueryCriteria::like('CompanyService.Overview', $name), QueryCriteria::like('Company.Name', $name)))); } if (!empty($service)) { $service = explode('-', $service); $query1->addAlias(QueryAlias::create('OpenStackImplementationApiCoverage')->addAlias(QueryAlias::create('OpenStackReleaseSupportedApiVersion')->addAlias(QueryAlias::create('OpenStackComponent')))); $query1->addAndCondition(QueryCompoundCriteria::compoundOr(array(QueryCriteria::like('OpenStackComponent.Name', trim($service[0])), QueryCriteria::like('OpenStackComponent.CodeName', trim($service[1]))))); $query2->addAlias(QueryAlias::create('OpenStackImplementationApiCoverage')->addAlias(QueryAlias::create('OpenStackReleaseSupportedApiVersion')->addAlias(QueryAlias::create('OpenStackComponent')))); $query2->addAndCondition(QueryCompoundCriteria::compoundOr(array(QueryCriteria::like('OpenStackComponent.Name', trim($service[0])), QueryCriteria::like('OpenStackComponent.CodeName', trim($service[1]))))); } $query1->addAndCondition(QueryCriteria::equal("Active", true)); $query2->addAndCondition(QueryCriteria::equal("Active", true)); list($list1, $size1) = $this->distribution_repository->getAll($query1, 0, 1000); list($list2, $size2) = $this->appliance_repository->getAll($query2, 0, 1000); $implementations = array_merge($list1, $list2); foreach ($implementations as $implementation) { $type = $implementation->getMarketPlace()->getName() == IDistribution::MarketPlaceType ? 'distribution' : 'appliance'; $output .= $implementation->renderWith('DistributionsDirectoryPage_ImplementationBox', array('DistroLink' => $this->Link("distribution"), 'ApplianceLink' => $this->Link("appliance"))); } } catch (Exception $ex) { return $this->httpError(500, 'Server Error'); } return empty($output) ? $this->httpError(404, '') : $output; }
public function getConsultants() { $product_name = trim(Convert::raw2sql($this->request->getVar('name'))); $company_id = intval($this->request->getVar('company_id')); $sort = $this->request->getVar('sort'); $query = new QueryObject(new CompanyService()); $query_draft = new QueryObject(new CompanyServiceDraft()); $query_draft->addAndCondition(QueryCriteria::equal('LiveServiceID', 0)); //only drafts without live version $query->addAlias(QueryAlias::create('Company')); $query_draft->addAlias(QueryAlias::create('Company')); if (!empty($product_name)) { $query->addOrCondition(QueryCriteria::like('CompanyService.Name', $product_name)); $query->addOrCondition(QueryCriteria::like('Company.Name', $product_name)); $query_draft->addOrCondition(QueryCriteria::like('CompanyService.Name', $product_name)); $query_draft->addOrCondition(QueryCriteria::like('Company.Name', $product_name)); } if ($company_id > 0) { $query->addAndCondition(QueryCriteria::equal('Company.ID', $company_id)); $query_draft->addAndCondition(QueryCriteria::equal('Company.ID', $company_id)); } //set sorting if (!empty($sort)) { $dir = $this->getSortDir('consultants'); $this->sortCompanyService($query, $sort, $dir); $this->sortCompanyService($query_draft, $sort, $dir); } //get consultants list($list1, $size1) = $this->consultant_repository->getAll($query, 0, 1000); list($list2, $size2) = $this->consultant_draft_repository->getAll($query_draft, 0, 1000); //return on view model return new ArrayList(array_merge($list1, $list2)); }
/** * @param SS_HTTPRequest $request * @param string $template_class * @param string $ss_tpl_name * @return array */ private function buildList(SS_HTTPRequest $request, $template_class = 'SurveyTemplate', $ss_tpl_name = 'SurveyBuilderListSurveys') { Requirements::javascript('themes/openstack/javascript/querystring.jquery.js'); Requirements::javascript('survey_builder/js/survey.sangria.surveys.list.filter.js'); $query_templates = new QueryObject(new SurveyTemplate()); $query_templates->addAndCondition(QueryCriteria::equal('ClassName', $template_class)); list($templates, $count) = $this->survey_template_repository->getAll($query_templates, 0, PHP_INT_MAX); $page = intval($request->getVar('page')); $survey_template_id = intval($request->getVar('survey_template_id')); $question_id = intval($request->getVar('question_id')); $question_value = Convert::raw2sql($request->getVar('question_value')); $question_value2 = Convert::raw2sql($request->getVar('question_value2')); $question_value = !empty($question_value) ? $question_value : $question_value2; $order = Convert::raw2sql($request->getVar('order')); $order_dir = Convert::raw2sql($request->getVar('dir')); if ($page === 0) { $page = 1; } $offset = ($page - 1) * self::SurveysPageSize; $sort_fields = ['id' => 'ID', 'created' => 'Created', 'updated' => 'LastEdited']; $query_surveys = new QueryObject(new Survey()); $selected_template = $survey_template_id > 0 ? $this->survey_template_repository->getById($survey_template_id) : $templates[0]; if ($survey_template_id === 0) { Controller::curr()->redirect($request->getURL(true) . '?survey_template_id=' . $selected_template->ID); } $query_surveys->addAndCondition(QueryCriteria::id('Survey.TemplateID', $selected_template->getIdentifier()))->addAndCondition(QueryCriteria::id('Survey.IsTest', 0)); if ($question_id > 0 && !empty($question_value)) { // filter by question ... $query_surveys->addAlias(QueryAlias::create('Steps')->addAlias(QueryAlias::create('Answers')->addAlias(QueryAlias::create('Question')))); $query_surveys->addAndCondition(QueryCompoundCriteria::compoundAnd([QueryCriteria::id('SurveyQuestionTemplate.ID', $question_id), QueryCriteria::like('SurveyAnswer.Value', $question_value)])); } if (empty($order)) { $query_surveys->addOrder(QueryOrder::asc('ID')); } else { if ($order_dir === 'ASC') { $query_surveys->addOrder(QueryOrder::asc($sort_fields[$order])); } else { $query_surveys->addOrder(QueryOrder::desc($sort_fields[$order])); } } list($surveys, $count_surveys) = $this->survey_repository->getAll($query_surveys, $offset, self::SurveysPageSize); // build pager $pages = ''; $max_page = intval(ceil($count_surveys / self::SurveysPageSize)); for ($i = 1; $i < $max_page; $i++) { $pages .= sprintf("<li %s ><a href=\"%s?%s\">%s</a></li>", $page === $i ? "class=\"active\"" : "", $this->owner->Link($ss_tpl_name), $this->getPagerLink($i), $i); } $pager = <<<HTML <nav> <ul class="pagination pagination-sm"> {$pages} </ul> </nav> HTML; $result = ['Templates' => new ArrayList($templates), 'Surveys' => new ArrayList($surveys), 'Questions' => new ArrayList($selected_template->getAllFilterableQuestions()), 'Pager' => $pager]; return $result; }