33 protected \ILIAS\Exercise\InternalDomainService
$domain;
34 protected \ILIAS\Exercise\InternalGUIService
$gui;
51 ?
int $a_user_id =
null 55 $service = $DIC->exercise()->internal();
57 $this->domain = $domain =
$service->domain();
59 $this->
user = $domain->user();
60 $ilCtrl = $gui->ctrl();
61 $ilTabs = $gui->tabs();
62 $lng = $domain->lng();
63 $tpl = $gui->ui()->mainTemplate();
66 $a_user_id = $this->
user->getId();
69 $this->assignment = $a_ass;
70 $this->exercise = $a_exercise;
71 $this->user_id = $a_user_id;
73 $this->type_guis = $gui->assignment()->types();
76 if (!$this->exercise->members_obj->isAssigned($a_user_id)) {
77 $this->exercise->members_obj->assignMember($a_user_id);
81 $public_submissions =
false;
82 if ($this->exercise->getShowSubmissions() &&
83 $this->exercise->getTimestamp() - time() <= 0) {
84 $public_submissions =
true;
86 $this->submission =
new ilExSubmission($a_ass, $a_user_id,
null,
false, $public_submissions);
89 $this->
ctrl = $ilCtrl;
90 $this->tabs_gui = $ilTabs;
93 $this->request = $DIC->exercise()->internal()->gui()->request();
94 $this->domain = $DIC->exercise()->internal()->domain();
105 $cmd = $ilCtrl->getCmd(
"listPublicSubmissions");
108 case "ilexsubmissionteamgui":
111 $this->tabs_gui->clearTargets();
112 $this->tabs_gui->setBackTarget(
113 $this->
lng->txt(
"back"),
114 $this->
ctrl->getLinkTarget($this,
"returnToParent")
119 $this->tabs_gui->addTab(
121 $this->
lng->txt(
"exc_submission"),
122 $this->
ctrl->getLinkTargetByClass(
"ilexsubmission" . $this->submission->getSubmissionType() .
"gui",
"")
126 $gui = $this->gui->getTeamSubmissionGUI($this->exercise, $this->submission);
127 $ilCtrl->forwardCommand($gui);
130 case "ilexsubmissiontextgui":
132 $ilCtrl->forwardCommand($gui);
135 case "ilexsubmissionfilegui":
137 $ilCtrl->forwardCommand($gui);
140 case "ilexsubmissionobjectgui":
142 $ilCtrl->forwardCommand($gui);
145 case "ilexpeerreviewgui":
154 $this->
ctrl->forwardCommand($peer_gui);
161 if ($this->type_guis->isExAssTypeGUIClass($class)) {
162 $type_gui = $this->type_guis->getByClassName($class);
163 $type_gui->setSubmission($this->submission);
164 $type_gui->setExercise($this->exercise);
165 $ilCtrl->forwardCommand($type_gui);
168 $this->{$cmd .
"Object"}();
173 public static function getOverviewContent(
179 $ilCtrl = $DIC->ctrl();
181 if (!$a_submission->
canView()) {
185 $ilCtrl->setParameterByClass(
"ilExSubmissionGUI",
"ass_id", $a_submission->
getAssignment()->getId());
195 $class =
"ilExSubmission" . $submission_type .
"GUI";
197 $class::getOverviewContent($a_info, $a_submission);
200 $ilCtrl->
getHTML($sub_gui, array(
201 "mode" => self::MODE_OVERVIEW_CONTENT,
203 "submission" => $a_submission
207 $ilCtrl->setParameterByClass(
"ilExSubmissionGUI",
"ass_id",
"");
215 switch ($par[
"mode"]) {
217 case self::MODE_OVERVIEW_CONTENT:
218 $type_gui = $this->type_guis->getById($par[
"submission"]->getAssignment()->getType());
219 $type_gui->getOverviewContent($par[
"info"], $par[
"submission"]);
231 if (!$this->exercise->getShowSubmissions()) {
235 $ilTabs->clearTargets();
236 $ilTabs->setBackTarget(
238 $ilCtrl->getLinkTarget($this,
"returnToParent")
243 $this->tpl->setContent($tab->getHTML());
247 $this->tpl->setContent($tbl->getHTML());
256 $file = $this->request->getFile();
259 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"exc_select_one_file"),
true);
260 $this->
ctrl->redirect($this,
"view");
263 $this->domain->assignment()->tutorFeedbackFile($this->assignment->getId())
264 ->deliver($this->user_id, $file);
276 if (!$state->isGlobalFeedbackFileAccessible($this->submission)) {
277 $ilCtrl->redirect($this,
"returnToParent");
280 $this->domain->assignment()->sampleSolution($this->assignment->getId())->deliver();
285 $file = $this->request->getFile();
288 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"exc_select_one_file"),
true);
289 $this->
ctrl->redirect($this,
"view");
294 if ($state->areInstructionsVisible()) {
296 $files = $this->assignment->getFiles();
298 foreach ($files as $lfile) {
299 if ($lfile[
"name"] == $file) {
300 $this->domain->assignment()->instructionFiles($this->assignment->getId())->deliver($lfile[
"fullpath"], $file);
313 $this->
ctrl->returnToParent($this);
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
downloadFeedbackFileObject()
Download feedback file.
listPublicSubmissionsObject()
ILIAS Exercise InternalDomainService $domain
ilExAssignmentTypesGUI $type_guis
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
getNextClass($a_gui_class=null)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getInstanceByIds(int $a_ass_id, int $a_user_id=0)
__construct(ilObjExercise $a_exercise, ilExAssignment $a_ass, ?int $a_user_id=null)
ilExAssignment $assignment
ilExSubmission $submission
const MODE_OVERVIEW_CONTENT
downloadGlobalFeedbackFileObject()
static getOverviewContent(ilInfoScreenGUI $a_info, ilExSubmission $a_submission)
ilGlobalTemplateInterface $tpl
Exercise submission //TODO: This class has many static methods related to delivered "files"...
ILIAS Exercise InternalGUIService $gui
Exercise gui request wrapper.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Object-based submissions (ends up as static file)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...