19 declare(strict_types=1);
42 $this->stagingPoolQuestionList->setTestObjId($this->testOBJ->getId());
43 $this->stagingPoolQuestionList->setTestId($this->testOBJ->getTestId());
54 foreach ($sourcePoolDefinitionList as $definition) {
56 $questionStage->mergeQuestionCollection($questions);
59 return $questionStage;
71 return $questionStage;
82 return $combinationCollection->getUniqueQuestionCollection();
88 $this->stagingPoolQuestionList->resetQuestionList();
90 $this->stagingPoolQuestionList->setPoolId($definition->
getPoolId());
94 $this->stagingPoolQuestionList->addTaxonomyFilter($taxId, $nodeIds);
104 $this->stagingPoolQuestionList->setTypeFilter($definition->
getTypeFilter());
108 $this->stagingPoolQuestionList->loadQuestions();
110 return $this->stagingPoolQuestionList->getQuestions();
117 foreach ($questionIds as $questionId) {
120 $setQuestion->setQuestionId($questionId);
121 $setQuestion->setSourcePoolDefinitionId($definition->
getId());
123 $setQuestionCollection->addQuestion($setQuestion);
126 return $setQuestionCollection;
152 foreach ($questionSet->getQuestions() as $setQuestion) {
155 $setQuestion->setSequencePosition($position++);
163 $nextId = $this->db->nextId(
'tst_test_rnd_qst');
165 $this->db->insert(
'tst_test_rnd_qst', [
166 'test_random_question_id' => [
'integer', $nextId],
167 'active_fi' => [
'integer', $testSession->
getActiveId()],
170 'pass' => [
'integer', $testSession->
getPass()],
171 'tstamp' => [
'integer', time()],
185 if ($this->testOBJ->getShuffleQuestions()) {
208 $sourcePoolDefinitionList,
209 $stagingPoolQuestionList
219 $sourcePoolDefinitionList,
220 $stagingPoolQuestionList
getSrcPoolDefListRelatedQuestUniqueCollection(ilTestRandomQuestionSetSourcePoolDefinitionList $sourcePoolDefinitionList)
static getInstance(ilDBInterface $db, ilLanguage $lng, TestLogger $logger, ilObjTest $testOBJ, ilTestRandomQuestionSetConfig $questionSetConfig, ilTestRandomQuestionSetSourcePoolDefinitionList $sourcePoolDefinitionList, ilTestRandomQuestionSetStagingPoolQuestionList $stagingPoolQuestionList)
isQuestionAmountConfigurationModePerPool()
getSourcePoolDefinitionId()
handleQuestionOrdering(ilTestRandomQuestionSetQuestionCollection $questionSet)
buildSetQuestionCollection(ilTestRandomQuestionSetSourcePoolDefinition $definition, $questionIds)
__construct(protected ilDBInterface $db, protected ilLanguage $lng, protected TestLogger $logger, protected ilObjTest $testOBJ, protected ilTestRandomQuestionSetConfig $questionSetConfig, protected ilTestRandomQuestionSetSourcePoolDefinitionList $sourcePoolDefinitionList, protected ilTestRandomQuestionSetStagingPoolQuestionList $stagingPoolQuestionList)
getRandomQuestionCollection($requiredAmount)
getQuestionIdsForSourcePoolDefinitionIds(ilTestRandomQuestionSetSourcePoolDefinition $definition)
hasTypeFilter(ilTestRandomQuestionSetSourcePoolDefinition $definition)
getSrcPoolDefRelatedQuestCollection(ilTestRandomQuestionSetSourcePoolDefinition $definition)
hasTaxonomyFilter(ilTestRandomQuestionSetSourcePoolDefinition $definition)
getSrcPoolDefListRelatedQuestCombinationCollection(ilTestRandomQuestionSetSourcePoolDefinitionList $sourcePoolDefinitionList)
fetchQuestionsFromStageRandomly(ilTestRandomQuestionSetQuestionCollection $questionStage, $requiredQuestionAmount)
performBuild(ilTestSession $testSession)
storeQuestionSet(ilTestSession $testSession, $questionSet)
getMappedTaxonomyFilter()
get the mapped taxonomy filter conditions
storeQuestion(ilTestSession $testSession, ilTestRandomQuestionSetQuestion $setQuestion)