Example #1
0
 function getCMSFields()
 {
     // Get arrays to related dropdowns
     $deployments = Deployment::get()->filter('IsPublic', 1);
     if ($deployments) {
         $deployments = $deployments->map('ID', 'OrgAndLabel', '(Select one)', true);
     }
     $industries = UserStoriesIndustry::get()->filter('Active', 1);
     if ($industries) {
         $industries = $industries->map('ID', 'IndustryName', '(Select one)', true);
     }
     $fields = parent::getCMSFields();
     $CountryCodes = CountryCodes::$iso_3166_countryCodes;
     $fields->addFieldsToTab('Root.Main', array(new CustomUploadField('SummaryImg', 'Summary Image'), new DropdownField('DeploymentID', 'Deployment', $deployments), new DropdownField('UserStoriesIndustryID', 'Industry', $industries), new DropdownField('DeploymentType', 'Deployment Type', DeploymentOptions::$deployment_type_options), $ddl_country = new DropdownField('PrimaryCountry', 'Country', $CountryCodes)));
     $ddl_country->setEmptyString('-- Select One --');
     $fields->addFieldsToTab('Root.CaseStudy', array(new CheckboxField('ShowCaseStudy', 'Show Case Study?'), new TextField('CaseStudyTitle', 'Case Study Title'), new TextField('CompanyName', 'Company Name'), new TextField('CompanyURL', 'Company URL'), new TextField('ThirdPartyURL', '3rd Party Site URL'), new HtmlEditorField('CaseStudyBody', 'Case Study Body'), new CustomUploadField('CaseStudyImg', 'Case Study Image'), new TextField('ObjectivesTitle', 'Objectives Title'), new HtmlEditorField('ObjectivesBody', 'Objectives Body'), new TextField('CompanyHeadquarters', 'Company Headquarters'), new TextField('CompanySize', 'Company Size'), new TextField('CompanyIndustry', 'Company Industry'), new CheckboxSetField('ProjectsUsed', 'ProjectsUsed', array('Openstack Compute (Nova)' => 'Openstack Compute (Nova)', 'Openstack Block Storage (Cinder)' => 'Openstack Block Storage (Cinder)', 'Openstack Object Storage (Swift)' => 'Openstack Object Storage (Swift)', 'Openstack Network' => 'Openstack Network (Neutron)', 'Openstack Dashboard (Horizon)' => 'Openstack Dashboard (Horizon)', 'Openstack Identity Service (Keystone)' => 'Openstack Identity Service (Keystone)', 'Openstack Image Service (Glance)' => 'Openstack Image Service (Glance)', 'Heat' => 'OpenStack Orchestration (Heat)', 'Ceilometer' => 'OpenStack Metering (Ceilometer)', 'OpenStack Bare Metal (Ironic)' => 'OpenStack Bare Metal (Ironic)', 'OpenStack Database as a Service (Trove)' => 'OpenStack Database as a Service (Trove)'))));
     $fields->addFieldsToTab('Root.Video', array(new CheckboxField('ShowVideo', 'Show Video?'), new TextField('Video', 'YouTube URL')));
     // Reuse fields from Page Model, and change their label to match Specs
     $fields->renameField('Title', 'Deployment Display Name');
     $fields->renameField('Content', 'Summary');
     return $fields;
 }
 function DeploymentsAsJSON()
 {
     $Deployments = Deployment::get();
     $f = new JSONDataFormatter();
     echo $f->convertDataObjectSet($Deployments);
 }
 function Deployments()
 {
     $sort = $this->owner->request->getVar('sort');
     $sort_dir = $this->owner->getSortDir('deployments');
     $date_from = Convert::raw2sql(trim($this->owner->request->getVar('date-from')));
     $date_to = Convert::raw2sql(trim($this->owner->request->getVar('date-to')));
     $free_text = Convert::raw2sql(trim($this->owner->request->getVar('free-text')));
     $range = self::getSurveyRange('ViewDeploymentDetails');
     if ($range == SurveyType::MARCH_2015) {
         $range_filter = "AND Deployment.Created >= '" . SURVEY_START_DATE . "'";
     } else {
         $range_filter = "AND Deployment.Created < '" . SURVEY_START_DATE . "'";
     }
     $sort_query = '';
     if (!empty($sort)) {
         switch (strtolower(trim($sort))) {
             case 'date':
                 $sort_query = "Deployment.UpdateDate";
                 $sort_dir = strtoupper($sort_dir);
                 break;
             default:
                 $sort_query = "ID";
                 $sort_dir = 'DESC';
                 break;
         }
     }
     $where_query = "IsPublic = 1 " . $range_filter;
     $res = Deployment::get();
     if (!empty($date_from) && !empty($date_to)) {
         $start = new \DateTime($date_from);
         $start->setTime(00, 00, 00);
         $end = new \DateTime($date_to);
         $end->setTime(23, 59, 59);
         $where_query .= " AND ( Deployment.UpdateDate >= '{$start->format('Y-m-d H:i:s')}' AND Deployment.UpdateDate <= '{$end->format('Y-m-d H:i:s')}')";
     }
     if (!empty($free_text)) {
         $where_query .= " AND ( Org.Name LIKE '%{$free_text}%' OR Label LIKE '%{$free_text}%' ) ";
         $res = $res->innerJoin('Org', 'Org.ID = Deployment.OrgID');
     }
     $res = $res->where($where_query);
     if (!empty($sort_query) && !empty($sort_dir)) {
         $res->sort($sort_query, $sort_dir);
     }
     return $res;
 }
 public function LoadDeployment($id)
 {
     if ($id && is_numeric($id) && ($CurrentDeployment = Deployment::get()->byID($id))) {
         $DeploymentSurvey = $CurrentDeployment->DeploymentSurvey();
         if ($DeploymentSurvey && $DeploymentSurvey->MemberID == Member::currentUserID()) {
             return $CurrentDeployment;
         }
     }
     return NULL;
 }
 /**
  * @param int $batch_size
  * @return mixed
  */
 public static function getNotDigestSent($batch_size)
 {
     Deployment::get()->filter('SendDigest', 0)->sort('UpdateDate', 'ASC')->limit($batch_size);
 }