/** * Short description of method prepare * * @access public * @author Joel Bout, <*****@*****.**> * @param array resources results * @param array columns variables * @return mixed */ public function prepare($resources, $columns) { $resultsService = ResultsService::singleton(); /** * @var \taoDelivery_models_classes_execution_DeliveryExecution $result */ foreach ($resources as $result) { $itemresults = $resultsService->getVariables($result, false); foreach ($itemresults as $itemResultUri => $vars) { // cache the item information pertaining to a given itemResult (stable over time) if (common_cache_FileCache::singleton()->has('itemResultItemCache' . $itemResultUri)) { $itemUri = common_cache_FileCache::singleton()->get('itemResultItemCache' . $itemResultUri); $object = new core_kernel_classes_Resource($itemUri); } else { $object = $resultsService->getItemFromItemResult($itemResultUri); if (is_null($object)) { $object = $resultsService->getVariableFromTest($itemResultUri); } if (!is_null($object)) { common_cache_FileCache::singleton()->put($object->getUri(), 'itemResultItemCache' . $itemResultUri); } } if (get_class($object) == "core_kernel_classes_Resource") { $contextIdentifier = (string) $object->getUri(); } else { if (!is_null($object)) { $contextIdentifier = (string) $object->__toString(); } } foreach ($vars as $var) { $var = $var[0]; // cache the variable data /** * @var \taoResultServer_models_classes_Variable $varData */ $varData = $var->variable; if (common_cache_FileCache::singleton()->has('variableDataCache' . $var->uri . '_' . $varData->getIdentifier())) { $varData = common_cache_FileCache::singleton()->get('variableDataCache' . $var->uri . '_' . $varData->getIdentifier()); } else { common_cache_FileCache::singleton()->put($varData, 'variableDataCache' . $var->uri . '_' . $varData->getIdentifier()); } if ($varData->getBaseType() === 'file') { $decodedFile = Datatypes::decodeFile($varData->getValue()); $varData->setValue($decodedFile['name']); } $variableIdentifier = (string) $varData->getIdentifier(); foreach ($columns as $column) { if ($variableIdentifier == $column->getIdentifier() and $contextIdentifier == $column->getContextIdentifier()) { $epoch = $varData->getEpoch(); $readableTime = ""; if ($epoch != "") { $readableTime = "@" . tao_helpers_Date::displayeDate(tao_helpers_Date::getTimeStamp($epoch), tao_helpers_Date::FORMAT_VERBOSE); } $this->cache[get_class($varData)][$result][$column->getContextIdentifier() . $variableIdentifier][(string) $epoch] = array($varData->getValue(), $readableTime); } } } } } }
private function getIrregularities($delivery, $from = '', $to = '') { $export = array(array(__('date'), __('author'), __('test taker'), __('category'), __('subcategory'), __('comment'))); $deliveryLog = ServiceManager::getServiceManager()->get(DeliveryLog::SERVICE_ID); $service = ResultsService::singleton(); $implementation = $service->getReadableImplementation($delivery); $service->setImplementation($implementation); $results = $service->getImplementation()->getResultByDelivery(array($delivery->getUri())); foreach ($results as $res) { $deliveryExecution = \taoDelivery_models_classes_execution_ServiceProxy::singleton()->getDeliveryExecution($res['deliveryResultIdentifier']); $logs = $deliveryLog->get($deliveryExecution->getIdentifier(), 'TEST_IRREGULARITY'); foreach ($logs as $data) { $exportable = array(); if ((empty($from) || $data['created_at'] > $from) && (empty($to) || $data['created_at'] < $to)) { $testTaker = new \core_kernel_classes_Resource($res['testTakerIdentifier']); $author = new \core_kernel_classes_Resource($data['created_by']); $exportable[] = \tao_helpers_Date::displayeDate($data['created_at']); $exportable[] = $author->getLabel(); $exportable[] = $testTaker->getLabel(); $exportable[] = $data['data']['reason']['reasons']['category']; $exportable[] = isset($data['data']['reason']['reasons']['subCategory']) ? $data['data']['reason']['reasons']['subCategory'] : ''; $exportable[] = $data['data']['reason']['comment']; $export[] = $exportable; } } } return $export; }
/** * constructor: initialize the service and the default data * @return Results */ public function __construct() { parent::__construct(); $this->service = ResultsService::singleton(); $this->deliveryService = DeliveryAssemblyService::singleton(); $this->defaultData(); }
public function __construct() { parent::__construct(); $this->service = ResultsService::singleton(); }
/** * @return array */ private function getData() { $delivery = new \core_kernel_classes_Resource($this->params[0]); $resultsService = ResultsService::singleton(); $filter = 'lastSubmitted'; $columns = []; $testtaker = new \tao_models_classes_table_PropertyColumn(new \core_kernel_classes_Property(PROPERTY_RESULT_OF_SUBJECT)); $testTakerColumn[] = $testtaker->toArray(); $cols = array_merge($testTakerColumn, $resultsService->getVariableColumns($delivery, CLASS_OUTCOME_VARIABLE, $filter), $resultsService->getVariableColumns($delivery, CLASS_RESPONSE_VARIABLE, $filter)); $dataProvider = new VariableDataProvider(); foreach ($cols as $col) { $column = \tao_models_classes_table_Column::buildColumnFromArray($col); if (!is_null($column)) { if ($column instanceof VariableColumn) { $column->setDataProvider($dataProvider); } $columns[] = $column; } } $columns[0]->label = __("Test taker"); $rows = $resultsService->getResultsByDelivery($delivery, $columns, $filter); $columnNames = array_reduce($columns, function ($carry, $item) { $carry[] = $item->label; return $carry; }); $result = []; foreach ($rows as $row) { $rowResult = []; foreach ($row['cell'] as $rowKey => $rowVal) { $rowResult[$columnNames[$rowKey]] = $rowVal[0]; } $result[] = $rowResult; } //If there are no executions yet, the file is exported but contains only the header if (empty($result)) { $result = [array_fill_keys($columnNames, '')]; } return $result; }
/** * @return ResultsService */ protected function getClassService() { return ResultsService::singleton(); }
public function __construct() { parent::__construct(); $this->resultClass = new \core_kernel_classes_Class(TAO_DELIVERY_RESULT); $this->resultService = ResultsService::singleton(); }
/** * * @see PHPUnit_Framework_TestCase::setUp() */ public function setUp() { TaoPhpUnitTestRunner::initTest(); common_ext_ExtensionsManager::singleton()->getExtensionById('taoOutcomeUi'); $this->service = ResultsService::singleton(); }
/** * Get result service instance. * @return \oat\taoOutcomeUi\model\ResultsService; */ protected function getResultService(\core_kernel_classes_Resource $delivery) { $resultsService = ResultsService::singleton(); $implementation = $resultsService->getReadableImplementation($delivery); $resultsService->setImplementation($implementation); return $resultsService; }
/** * Short description of method prepare * * @access public * @author Joel Bout, <*****@*****.**> * @param array resources results * @param array columns variables * @return mixed */ public function prepare($resources, $columns) { $resultsService = ResultsService::singleton(); foreach ($resources as $result) { $itemresults = $resultsService->getVariables($result, false); $cellData = array(); foreach ($itemresults as $itemResultUri => $vars) { //cache the item information pertaining to a given itemResult (stable over time) if (common_cache_FileCache::singleton()->has('itemResultItemCache' . tao_helpers_Uri::encode($itemResultUri))) { $itemUri = common_cache_FileCache::singleton()->get('itemResultItemCache' . tao_helpers_Uri::encode($itemResultUri)); $object = new core_kernel_classes_Resource($itemUri); } else { $object = $resultsService->getItemFromItemResult($itemResultUri); if (is_null($object)) { $object = $resultsService->getVariableFromTest($itemResultUri); } if (!is_null($object)) { common_cache_FileCache::singleton()->put($object->getUri(), 'itemResultItemCache' . tao_helpers_Uri::encode($itemResultUri)); } } if (get_class($object) == "core_kernel_classes_Resource") { $contextIdentifier = (string) $object->getUri(); } else { if (!is_null($object)) { $contextIdentifier = (string) $object->__toString(); } } foreach ($vars as $var) { $var = $var[0]; //cache the variable data $varData = (array) $var->variable; if (common_cache_FileCache::singleton()->has('variableDataCache' . $var->uri . '_' . $varData["identifier"])) { $varData = common_cache_FileCache::singleton()->get('variableDataCache' . $var->uri . '_' . $varData["identifier"]); } else { $varData["class"] = $var->class; common_cache_FileCache::singleton()->put($varData, 'variableDataCache' . $var->uri . '_' . $varData["identifier"]); } $type = $varData["class"]; if (isset($varData["value"])) { if (is_array($varData["value"])) { $varData["value"] = json_encode($varData["value"]); } } else { $varData["value"] = $varData["candidateResponse"]; } $varData["value"] = base64_decode($varData["value"]); if ($varData["baseType"] === 'file') { $decodedFile = Datatypes::decodeFile($varData['value']); $varData['value'] = $decodedFile['name']; } $variableIdentifier = (string) $varData["identifier"]; foreach ($columns as $column) { if ($variableIdentifier == $column->getIdentifier() and $contextIdentifier == $column->getContextIdentifier()) { $value = (string) $varData["value"]; $epoch = $varData["epoch"]; $readableTime = ""; if ($epoch != "") { $readableTime = "@" . tao_helpers_Date::displayeDate(tao_helpers_Date::getTimeStamp($epoch), tao_helpers_Date::FORMAT_VERBOSE); } $this->cache[$type][$result->getUri()][$column->getContextIdentifier() . $variableIdentifier][(string) $epoch] = array($value, $readableTime); } } } } } }