/**
  * Edit a Test Center instance
  * @return void
  */
 public function editCenter()
 {
     $clazz = $this->getCurrentClass();
     $testCenter = $this->getCurrentInstance();
     $formContainer = new \tao_actions_form_Instance($clazz, $testCenter);
     $myForm = $formContainer->getForm();
     if ($myForm->isSubmited()) {
         if ($myForm->isValid()) {
             $binder = new \tao_models_classes_dataBinding_GenerisFormDataBinder($testCenter);
             $testCenter = $binder->bind($myForm->getValues());
             $this->setData("selectNode", \tao_helpers_Uri::encode($testCenter->getUri()));
             $this->setData('message', $this->convert('Test center saved'));
             $this->setData('reload', true);
         }
     }
     $childrenProperty = new \core_kernel_classes_Property(TestCenterService::PROPERTY_CHILDREN_URI);
     $childrenForm = \tao_helpers_form_GenerisTreeForm::buildTree($testCenter, $childrenProperty);
     $childrenForm->setHiddenNodes(array($testCenter->getUri()));
     $childrenForm->setTitle($this->convert('Define sub-centers'));
     $this->setData('childrenForm', $childrenForm->render());
     $administratorProperty = new \core_kernel_classes_Property(TestCenterService::PROPERTY_ADMINISTRATOR_URI);
     $administratorForm = \tao_helpers_form_GenerisTreeForm::buildReverseTree($testCenter, $administratorProperty);
     $administratorForm->setData('title', $this->convert('Assign administrator'));
     $this->setData('administratorForm', $administratorForm->render());
     $proctorProperty = new \core_kernel_classes_Property(ProctorManagementService::PROPERTY_ASSIGNED_PROCTOR_URI);
     $proctorForm = \tao_helpers_form_GenerisTreeForm::buildReverseTree($testCenter, $proctorProperty);
     $proctorForm->setData('title', $this->convert('Assign proctors'));
     $this->setData('proctorForm', $proctorForm->render());
     $this->setData('formTitle', $this->convert('Edit test center'));
     $this->setData('testCenter', $testCenter->getUri());
     $this->setData('myForm', $myForm->render());
     $this->setView('form_test_center.tpl');
 }
示例#2
0
 public function setReverseValues()
 {
     if (!tao_helpers_Request::isAjax()) {
         throw new common_exception_IsAjaxAction(__FUNCTION__);
     }
     $values = tao_helpers_form_GenerisTreeForm::getSelectedInstancesFromPost();
     $resource = new core_kernel_classes_Resource($this->getRequestParameter('resourceUri'));
     $property = new core_kernel_classes_Property($this->getRequestParameter('propertyUri'));
     $currentValues = array();
     foreach ($property->getDomain() as $domain) {
         $instances = $domain->searchInstances(array($property->getUri() => $resource), array('recursive' => true, 'like' => false));
         $currentValues = array_merge($currentValues, array_keys($instances));
     }
     $toAdd = array_diff($values, $currentValues);
     $toRemove = array_diff($currentValues, $values);
     $success = true;
     foreach ($toAdd as $uri) {
         $subject = new core_kernel_classes_Resource($uri);
         $success = $success && $subject->setPropertyValue($property, $resource);
     }
     foreach ($toRemove as $uri) {
         $subject = new core_kernel_classes_Resource($uri);
         $success = $success && $subject->removePropertyValue($property, $resource);
     }
     echo json_encode(array('saved' => $success));
 }
 /**
  * Edit a Test Center instance
  * @return void
  */
 public function editCenter()
 {
     $clazz = $this->getCurrentClass();
     $testcenter = $this->getCurrentInstance();
     $formContainer = new \tao_actions_form_Instance($clazz, $testcenter);
     $myForm = $formContainer->getForm();
     if ($myForm->isSubmited()) {
         if ($myForm->isValid()) {
             $binder = new \tao_models_classes_dataBinding_GenerisFormDataBinder($testcenter);
             $testcenter = $binder->bind($myForm->getValues());
             $this->setData("selectNode", \tao_helpers_Uri::encode($testcenter->getUri()));
             $this->setData('message', __('Test center saved'));
             $this->setData('reload', true);
         }
     }
     $memberProperty = new \core_kernel_classes_Property(TestCenterService::PROPERTY_MEMBERS_URI);
     $memberForm = \tao_helpers_form_GenerisTreeForm::buildReverseTree($testcenter, $memberProperty);
     $memberForm->setData('title', __('Select test takers for the test center'));
     $this->setData('memberForm', $memberForm->render());
     $groupProperty = new \core_kernel_classes_Property(TestCenterService::PROPERTY_DELIVERY_URI);
     $groupForm = \tao_helpers_form_GenerisTreeForm::buildTree($testcenter, $groupProperty);
     $groupForm->setData('title', __('Select deliveries available at the test center'));
     $this->setData('groupForm', $groupForm->render());
     $proctorProperty = new \core_kernel_classes_Property(TestCenterService::PROPERTY_PROCTORS_URI);
     $proctorForm = \tao_helpers_form_GenerisTreeForm::buildReverseTree($testcenter, $proctorProperty);
     $proctorForm->setData('title', __('Select proctors for the test center'));
     $this->setData('proctorForm', $proctorForm->render());
     $this->setData('formTitle', __('Edit test center'));
     $this->setData('myForm', $myForm->render());
     $this->setView('form_test_center.tpl');
 }
 /**
  * Render the tree to select the campaign for a delivery
  * @return void
  */
 public function selectDeliveryCampaigns()
 {
     //get the deliveries related to this delivery campaign
     $prop = new core_kernel_classes_Property(TAO_DELIVERY_CAMPAIGN_PROP);
     $tree = tao_helpers_form_GenerisTreeForm::buildTree($this->getCurrentInstance(), $prop);
     $this->setData('tree', $tree->render());
     $this->setView('sas' . DIRECTORY_SEPARATOR . 'generisTreeSelect.tpl', 'tao');
 }
 public static function renderDeliveryTree(\core_kernel_classes_Resource $group)
 {
     // ensure constant is known since this helper can be called out of context
     \common_ext_ExtensionsManager::singleton()->getExtensionById('taoDeliveryRdf')->load();
     $property = new \core_kernel_classes_Property(PROPERTY_GROUP_DELVIERY);
     $tree = \tao_helpers_form_GenerisTreeForm::buildTree($group, $property);
     $tree->setData('title', __('Deliveries'));
     return $tree->render();
 }
 public static function renderCampaignTree(core_kernel_classes_Resource $delivery)
 {
     // ensure constant is known since this helper can be called out of context
     common_ext_ExtensionsManager::singleton()->getExtensionById('taoCampaign')->load();
     $property = new core_kernel_classes_Property(TAO_DELIVERY_CAMPAIGN_PROP);
     $tree = tao_helpers_form_GenerisTreeForm::buildTree($delivery, $property);
     $tree->setData('title', __('Add to delivery campaign'));
     return $tree->render();
 }
示例#7
0
 public function assignUsers()
 {
     $role = $this->getCurrentInstance();
     $prop = new core_kernel_classes_Property(PROPERTY_USER_ROLES);
     $tree = tao_helpers_form_GenerisTreeForm::buildReverseTree($role, $prop);
     $tree->setData('title', __('Assign User to role'));
     $tree->setData('dataUrl', _url('getUsers'));
     $this->setData('userTree', $tree->render());
     $this->setView('roles/assignUsers.tpl');
 }
 /**
  * Edit a delivery instance
  *
  * @access public
  * @author CRP Henri Tudor - TAO Team - {@link http://www.tao.lu}
  * @return void
  */
 public function editDelivery()
 {
     $clazz = $this->getCurrentClass();
     $delivery = $this->getCurrentInstance();
     $formContainer = new taoDelivery_actions_form_Delivery($clazz, $delivery);
     $myForm = $formContainer->getForm();
     $myForm->evaluate();
     if ($myForm->isSubmited()) {
         if ($myForm->isValid()) {
             $propertyValues = $myForm->getValues();
             // then save the property values as usual
             $binder = new tao_models_classes_dataBinding_GenerisFormDataBinder($delivery);
             $delivery = $binder->bind($propertyValues);
             $this->setData("selectNode", tao_helpers_Uri::encode($delivery->getUri()));
             $this->setData('message', __('Delivery saved'));
             $this->setData('reload', true);
         }
     }
     $this->setData('label', $delivery->getLabel());
     // history
     $this->setData('date', taoDelivery_models_classes_DeliveryAssemblyService::singleton()->getCompilationDate($delivery));
     if (taoDelivery_models_classes_execution_ServiceProxy::singleton()->implementsMonitoring()) {
         $execs = taoDelivery_models_classes_execution_ServiceProxy::singleton()->getExecutionsByDelivery($delivery);
         $this->setData('exec', count($execs));
     }
     // define the groups related to the current delivery
     $property = new core_kernel_classes_Property(PROPERTY_GROUP_DELVIERY);
     $tree = tao_helpers_form_GenerisTreeForm::buildReverseTree($delivery, $property);
     $tree->setTitle(__('Assigned to'));
     $tree->setTemplate(Template::getTemplate('widgets/assignGroup.tpl'));
     $this->setData('groupTree', $tree->render());
     // testtaker brick
     $this->setData('assemblyUri', $delivery->getUri());
     // define the subjects excluded from the current delivery
     $property = new core_kernel_classes_Property(TAO_DELIVERY_EXCLUDEDSUBJECTS_PROP);
     $excluded = $delivery->getPropertyValues($property);
     $this->setData('ttexcluded', count($excluded));
     $users = taoDelivery_models_classes_AssignmentService::singleton()->getAssignedUsers($delivery);
     $assigned = array_diff(array_unique($users), $excluded);
     $this->setData('ttassigned', count($assigned));
     $this->setData('formTitle', __('Properties'));
     $this->setData('myForm', $myForm->render());
     if (common_ext_ExtensionsManager::singleton()->isEnabled('taoCampaign')) {
         $this->setData('campaign', taoCampaign_helpers_Campaign::renderCampaignTree($delivery));
     }
     $this->setView('Delivery/editDelivery.tpl');
 }
 /**
  * Edit a delviery instance
  * @return void
  */
 public function editCampaign()
 {
     $clazz = $this->getCurrentClass();
     $campaign = $this->getCurrentInstance();
     $formContainer = new tao_actions_form_Instance($clazz, $campaign);
     $myForm = $formContainer->getForm();
     if ($myForm->isSubmited()) {
         if ($myForm->isValid()) {
             $binder = new tao_models_classes_dataBinding_GenerisFormDataBinder($campaign);
             $campaign = $binder->bind($myForm->getValues());
             $this->setData("selectNode", tao_helpers_Uri::encode($campaign->getUri()));
             $this->setData('message', __('Campaign saved'));
             $this->setData('reload', true);
         }
     }
     //get the deliveries related to this delivery campaign
     $prop = new core_kernel_classes_Property(TAO_DELIVERY_CAMPAIGN_PROP);
     $tree = tao_helpers_form_GenerisTreeForm::buildReverseTree($campaign, $prop);
     $this->setData('deliveryTree', $tree->render());
     $this->setData('formTitle', __('Edit Campaign'));
     $this->setData('myForm', $myForm->render());
     $this->setView('form_campaign.tpl');
 }
 /**
  * save the related items from the checkbox tree or from the sequence box
  * @return void
  */
 public function saveItems()
 {
     if (!tao_helpers_Request::isAjax()) {
         throw new Exception("wrong request mode");
     }
     $saved = false;
     $candidates = tao_helpers_form_GenerisTreeForm::getSelectedInstancesFromPost();
     foreach ($this->getRequestParameters() as $key => $value) {
         if (preg_match("/^instance_/", $key)) {
             $candidates[] = tao_helpers_Uri::decode($value);
         }
     }
     $items = array();
     foreach ($candidates as $uri) {
         $item = new core_kernel_classes_Resource($uri);
         $itemModel = $item->getOnePropertyValue(new core_kernel_classes_Property(TAO_ITEM_MODEL_PROPERTY));
         $supported = false;
         if (!is_null($itemModel)) {
             foreach ($itemModel->getPropertyValues(new core_kernel_classes_Property(TAO_ITEM_MODELTARGET_PROPERTY)) as $targeturi) {
                 if ($targeturi == TAO_ITEM_ONLINE_TARGET) {
                     $supported = true;
                     break;
                 }
             }
         }
         if ($supported) {
             array_push($items, $item);
         } else {
             throw new common_Exception($item->getLabel() . ' cannot be added to a test');
         }
     }
     if ($this->service->setTestItems($this->getCurrentInstance(), $items)) {
         $saved = true;
     }
     $this->returnJson(array('saved' => $saved));
 }