function __construct($controller, $name)
 {
     // Define fields //////////////////////////////////////
     $CurrentDeploymentID = Session::get('CurrentDeploymentID');
     $CountryCodes = CountryCodes::$iso_3166_countryCodes;
     $CountryCodes['Worldwide'] = 'Worldwide';
     $CountryCodes['Prefer not to say'] = 'Prefer not to say';
     $CountryCodes['Too many to list'] = 'Too many to list';
     $fields = new FieldList(new HiddenField('DeploymentID', 'DeploymentID', $CurrentDeploymentID), new LiteralField('Break', '<p>Each deployment profile can be marked public if you wish for the basic information on this page to appear on openstack.org. If you select private we will treat all of the profile information as confidential information.</p>'), new OptionSetField('IsPublic', 'Would you like to keep this information confidential or allow the Foundation to share information about this deployment publicly?', array('1' => '<strong>Willing to share:</strong> The information on this page may be shared for this deployment', '0' => '<strong>Confidential:</strong> All details provided should be kept confidential to the OpenStack Foundation'), 0), new LiteralField('Break', '<hr/>'), new TextField('Label', 'Deployment Name<BR><p class="clean_text">Please create a friendly label, like “Production OpenStack Deployment”. This name is for your deployment in our survey tool. If several people at your organization work on one deployment, we would <b>really appreciate</b> you all referring to the same deployment by the same name!</p>'), $ddl_stage = new DropdownField('DeploymentStage', 'In what stage is your OpenStack deployment? (make a new deployment profile for each type of deployment)', DeploymentOptions::$stage_options), new MultiDropdownField('CountriesPhysicalLocation', 'In which country / countries is this OpenStack deployment physically located?', $CountryCodes), new MultiDropdownField('CountriesUsersLocation', 'In which country / countries are the users / customers for this deployment physically located?', $CountryCodes), $ddl_type = new DropdownField('DeploymentType', 'Deployment Type', DeploymentOptions::$deployment_type_options), new CustomCheckboxSetField('ProjectsUsed', 'What projects does this deployment use?<BR>Select All That Apply', DeploymentOptions::$projects_used_options), new CustomCheckboxSetField('CurrentReleases', 'What releases does this deployment currently use?<BR>Select All That Apply', DeploymentOptions::$current_release_options), new LiteralField('Break', 'Describe the workloads and frameworks running in this OpenStack environment.<BR>Select All That Apply'), new LiteralField('Break', '<hr/>'), new CustomCheckboxSetField('ServicesDeploymentsWorkloads', '<b>Services Deployments - workloads designed to be accessible for external users / customers</b>', DeploymentOptions::$services_deployment_workloads_options), $other_service_workload = new TextAreaField('OtherServicesDeploymentsWorkloads', ''), new CustomCheckboxSetField('EnterpriseDeploymentsWorkloads', '<b>Enterprise Deployments - workloads designed to be run internally to support business</b>', DeploymentOptions::$enterprise_deployment_workloads_options), $other_enterprise_workload = new TextAreaField('OtherEnterpriseDeploymentsWorkloads', ''), new CustomCheckboxSetField('HorizontalWorkloadFrameworks', '<b>Horizontal Workload Frameworks</b>', DeploymentOptions::$horizontal_workload_framework_options), $other_horizontal_workload = new TextAreaField('OtherHorizontalWorkloadFrameworks', ''));
     $saveButton = new FormAction('SaveDeployment', 'Next Step');
     $nextButton = new CancelFormAction($controller->Link() . 'Deployments', 'Cancel');
     $other_service_workload->addExtraClass('hidden');
     $other_enterprise_workload->addExtraClass('hidden');
     $other_horizontal_workload->addExtraClass('hidden');
     $ddl_type->setEmptyString('-- Select One --');
     $ddl_stage->setEmptyString('-- Select One --');
     $actions = new FieldList($saveButton, $nextButton);
     // Create Validators
     $validator = null;
     parent::__construct($controller, $name, $fields, $actions, $validator);
     if ($CurrentDeploymentID) {
         //Populate the form with the current members data
         if ($Deployment = $this->controller->LoadDeployment($CurrentDeploymentID)) {
             $this->loadDataFrom($Deployment->data());
         } else {
             // HTTP ERROR
             return $this->httpError(403, 'Access Denied.');
         }
     }
     Requirements::javascript('surveys/js/deployment_survey_deployment_details_form.js');
 }
 function __construct($controller, $name)
 {
     $current_user = Member::currentUser();
     $fields = new FieldList($this->first_name_field = new TextField('FirstName', 'First name / Given name', $current_user->FirstName), $this->last_name_field = new TextField('Surname', 'Last name / Family name', $current_user->Surname), $os_activity = new CustomCheckboxSetField('OpenStackActivity', 'Which of the following do you yourself personally do?<BR>Select All That Apply', DeploymentSurveyOptions::$activities_options), $os_relationship = new TextAreaField('OpenStackRelationship', 'Please describe your relationship with OpenStack'), $this->email_field = new TextField('Email', 'Your Email', $current_user->Email), $ok_2_contact = new CheckboxField('OkToContact', 'The OpenStack Foundation and User Committee may communicate with me in the future about my usage.'));
     $os_relationship->addExtraClass('hidden');
     $os_relationship->setColumns(30);
     $ok_2_contact->setValue(0);
     $this->email_field->setDisabled(true);
     $nextButton = new FormAction('NextStep', '  Next Step  ');
     $actions = new FieldList($nextButton);
     $validator = new RequiredFields();
     Requirements::javascript('surveys/js/deployment_survey_aboutyou_form.js');
     parent::__construct($controller, $name, $fields, $actions, $validator);
 }