private function produceAssignment(Unit $unit, User $student, QuestionRepository $questionRepository, CourseDefinition $courseDefinition) { $assignment = new Assignment(); $assignment->unit = $unit; $assignment->generated_at = new DateTime(); $assignment->student = $student; $this->persist($assignment); $questions = $this->generateQuestions($courseDefinition->get($unit, CourseDefinition::QUESTIONS)); foreach ($questions as $i => $question) { $question->order = $i + 1; $question->assignment = $assignment; $questionRepository->persist($question); } return $assignment; }
/** * Assembles a new question. * @return Model\Entity\Question */ public function assemble() { $question = new Question(); $question->itemKey = $this->assembleQuestionItemKey(); $question->paramsKey = $this->questionItems[$question->itemKey]->assembleParamsKey(); $question->hash = $this->hash; /* Question texts are saved so that they're * available in case the definition * changes and it's been already used somehow */ $question->text = $this->questionItems[$question->itemKey]->getText($question->paramsKey); $question->prefill = $this->questionItems[$question->itemKey]->getPrefill($question->paramsKey); $question->input = $this->questionItems[$question->itemKey]->getInput($question->paramsKey); $this->repository->persist($question); return $question; }
/** * List questions. * * @return Response */ public function Questions() { $questions = $this->questionRepository->getQuestions(); return view('Front::question.questions', ['questions' => $questions]); }