107 $this->component_repository
110 $questionList->setTestObjId($this->testOBJ->getId());
111 $questionList->setTestId($this->testOBJ->getTestId());
112 $questionList->setPoolId($nonAvailablePool->
getId());
114 $questionList->loadQuestions();
116 $questions = array();
117 $list = $questionList->getQuestions();
118 foreach ($list as $questionId) {
129 if (strlen($nonAvailablePool->
getTitle())) {
139 $poolQidByTestQidMap = array();
141 foreach ($questions as $questionOBJ) {
144 $testQuestionId = $questionOBJ->getId();
145 $poolQuestionId = $questionOBJ->duplicate(
false,
'',
'', $this->
getOwnerId(), $pool->
getId());
147 $poolQidByTestQidMap[$testQuestionId] = $poolQuestionId;
150 return $poolQidByTestQidMap;
155 foreach ($poolQidByTestQidMap as $testQid => $poolQid) {
163 require_once
'Services/Taxonomy/classes/class.ilTaxNodeAssignment.php';
165 $filteredTaxIds = array();
167 foreach ($taxonomyIds as $taxonomyId) {
169 $this->testOBJ->getType(),
170 $this->testOBJ->getId(),
175 foreach ($relatedQuestionIds as $questionId) {
178 if (count($assignedTaxNodes)) {
179 $filteredTaxIds[] = $taxonomyId;
185 return $filteredTaxIds;
190 require_once
'Modules/TestQuestionPool/classes/class.ilQuestionPoolTaxonomiesDuplicator.php';
192 $taxDuplicator->setSourceObjId($this->testOBJ->getId());
193 $taxDuplicator->setSourceObjType($this->testOBJ->getType());
194 $taxDuplicator->setTargetObjId($pool->
getId());
195 $taxDuplicator->setTargetObjType($pool->
getType());
196 $taxDuplicator->setQuestionIdMapping($poolQidByTestQidMap);
199 $taxDuplicator->getAllTaxonomiesForSourceObject(),
200 array_keys($poolQidByTestQidMap)
203 return $taxDuplicator->getDuplicatedTaxonomiesKeysMap();
208 $originalTaxonomyFilter = array();
210 foreach ($mappedTaxonomyFilter as $testTaxonomyId => $testTaxNodes) {
212 $originalTaxonomyFilter[$poolTaxonomyId] = array();
214 foreach ($testTaxNodes as $testTaxNode) {
216 $originalTaxonomyFilter[$poolTaxonomyId][] = $poolTaxNode;
220 return $originalTaxonomyFilter;
226 if ($definition->getPoolId() != $nonAvailablePoolId) {
230 $definition->setPoolId($derivedPoolId);
234 $definition->getMappedTaxonomyFilter()
237 $definition->saveToDb();
updateTestQuestionStage($poolQidByTestQidMap)
Readable part of repository interface to ilComponentDataDB.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
copyQuestionsToPool(ilObjQuestionPool $pool, $questions)
ilQuestionPoolFactory $poolFactory
getSourcePoolDefinitionList()
getMappedTaxonomyId($originalTaxonomyId)
derive(ilTestRandomQuestionSetNonAvailablePool $nonAvailablePool)
static resetOriginalId(int $questionId)
$sourcePoolDefinitionList
duplicateTaxonomies($poolQidByTestQidMap, ilObjQuestionPool $pool)
setTargetContainerRef($targetContainerRef)
getMappedTaxNodeId($originalTaxNodeId)
getQuestionsForPool(ilTestRandomQuestionSetNonAvailablePool $nonAvailablePool)
__construct(ilDBInterface $ilDB, ilComponentRepository $component_repository, ilObjTest $testOBJ)
ilComponentRepository $component_repository
static saveOriginalId(int $questionId, int $originalId)
getAssignmentsOfItem(int $a_item_id)
Get assignments for item.
updateRelatedSourcePoolDefinitions(ilQuestionPoolDuplicatedTaxonomiesKeysMap $taxKeysMap, $derivedPoolId, $nonAvailablePoolId)
buildOriginalTaxonomyFilterForDerivedPool(ilQuestionPoolDuplicatedTaxonomiesKeysMap $taxKeysMap, $mappedTaxonomyFilter)
static _instantiateQuestion(int $question_id)
createNewPool(ilTestRandomQuestionSetNonAvailablePool $nonAvailablePool)
setSourcePoolDefinitionList($sourcePoolDefinitionList)
filterForQuestionRelatedTaxonomies($taxonomyIds, $relatedQuestionIds)