5 require_once
"./Services/Object/classes/class.ilObjectGUI.php";
33 $this->
ilObjectGUI($a_data,$a_id,$a_call_by_reference,
false);
35 $lng->loadLanguageModule(
"exercise");
36 $lng->loadLanguageModule(
"exc");
37 $this->ctrl->saveParameter($this,
38 array(
"ass_id",
"part_id",
"fsmode"));
40 if (
$_GET[
"ass_id"] > 0)
42 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
49 return $this->files ? $this->files : array();
54 $this->files = $a_files;
61 $next_class = $this->ctrl->getNextClass($this);
62 $cmd = $this->ctrl->getCmd();
68 case "ilfilesystemgui":
69 if(
$_GET[
"fsmode"] ==
"peer")
71 $ilCtrl->saveParameter($this, array(
"fu"));
74 $parts = explode(
"__",
$_GET[
"fu"]);
75 $giver_id = $parts[0];
78 if($giver_id == $ilUser->getId() ||
79 $peer_id == $ilUser->getId())
107 $ilTabs->clearTargets();
108 $ilTabs->setBackTarget($lng->txt(
"back"),
109 $ilCtrl->getLinkTarget($this,
"editPeerReview"));
111 include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
115 include_once(
"./Services/FileSystem/classes/class.ilFileSystemGUI.php");
116 $fs_gui =
new ilFileSystemGUI($fstorage->getPeerReviewUploadPath($peer_id, $giver_id));
118 $fs_gui->setAllowDirectories(
false);
119 $fs_gui->setTitle($this->ass->getTitle().
": ".
120 $lng->txt(
"exc_peer_review").
" - ".
121 $lng->txt(
"exc_peer_review_give"));
122 $ret = $this->ctrl->forwardCommand($fs_gui);
124 else if (
$_GET[
"fsmode"] ==
"feedback" ||
125 $_GET[
"fsmode"] ==
"feedbackpart")
128 $ilCtrl->saveParameter($this, array(
"member_id"));
131 $ilTabs->clearTargets();
133 if (
$_GET[
"fsmode"] !=
"feedbackpart")
135 $ilTabs->setBackTarget($lng->txt(
"back"),
136 $ilCtrl->getLinkTarget($this,
"members"));
140 $ilTabs->setBackTarget($lng->txt(
"back"),
141 $ilCtrl->getLinkTarget($this,
"showParticipant"));
146 include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
150 include_once(
"./Services/User/classes/class.ilUserUtil.php");
151 $noti_rec_ids = array();
154 $team_id = $this->ass->getTeamId((
int)
$_GET[
"member_id"]);
155 $feedback_id =
"t".$team_id;
157 foreach($this->ass->getTeamMembers($team_id) as $team_user_id)
160 $noti_rec_ids[] = $team_user_id;
162 $fs_title = implode(
" / ", $fs_title);
166 $feedback_id = $noti_rec_ids = (int)
$_GET[
"member_id"];
170 include_once(
"./Services/FileSystem/classes/class.ilFileSystemGUI.php");
171 $fs_gui =
new ilFileSystemGUI($fstorage->getFeedbackPath($feedback_id));
173 $fs_gui->setAllowDirectories(
false);
174 $fs_gui->setTitle($lng->txt(
"exc_fb_files").
" - ".
177 $pcommand = $fs_gui->getLastPerformedCommand();
178 if (is_array($pcommand) && $pcommand[
"cmd"] ==
"create_file")
180 $this->
object->sendFeedbackFileNotification($pcommand[
"name"],
181 $noti_rec_ids, (
int) $_GET[
"ass_id"]);
183 $ret = $this->ctrl->forwardCommand($fs_gui);
188 $ilTabs->activateTab(
"ass_files");
189 include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
192 include_once(
"./Services/FileSystem/classes/class.ilFileSystemGUI.php");
194 $fs_gui->
setTitle($lng->txt(
"exc_instruction_files"));
195 $fs_gui->setTableId(
"excassfil".
$_GET[
"ass_id"]);
196 $fs_gui->setAllowDirectories(
false);
197 $ret = $this->ctrl->forwardCommand($fs_gui);
201 case "ilinfoscreengui":
202 $ilTabs->activateTab(
"info");
206 case 'ilpermissiongui':
207 $ilTabs->activateTab(
"permissions");
208 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
210 $ret =& $this->ctrl->forwardCommand($perm_gui);
213 case "illearningprogressgui":
214 $ilTabs->activateTab(
"learning_progress");
215 include_once
'./Services/Tracking/classes/class.ilLearningProgressGUI.php';
218 $this->object->getRefId(),
219 $_GET[
'user_id'] ?
$_GET[
'user_id'] : $ilUser->getId());
220 $this->ctrl->forwardCommand($new_gui);
221 $this->tabs_gui->setTabActive(
'learning_progress');
224 case 'ilrepositorysearchgui':
225 $ilTabs->activateTab(
"grades");
226 include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
230 $rep_search->setTitle($this->lng->txt(
"exc_add_participant"));
231 $rep_search->setCallback($this,
'addMembersObject');
234 $this->tabs_gui->setTabActive(
'members');
235 $this->ctrl->setReturn($this,
'members');
237 #$this->__setSubTabs('members'); 238 #$this->tabs_gui->setSubTabActive('members'); 242 $this->ctrl->saveParameterByClass(
'ilRepositorySearchGUI',
'ctx', 1);
244 $rep_search->setTitle($this->lng->txt(
"exc_team_member_add"));
245 $rep_search->setCallback($this,
'addTeamMemberActionObject');
249 $this->ctrl->setReturn($this,
'submissionScreenTeam');
251 $ret =& $this->ctrl->forwardCommand($rep_search);
254 case 'ilobjectcopygui':
255 $ilCtrl->saveParameter($this,
'new_type');
256 $ilCtrl->setReturnByClass(get_class($this),
'create');
258 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
261 $this->ctrl->forwardCommand($cp);
265 $ilTabs->activateTab(
"export");
266 include_once(
"./Services/Export/classes/class.ilExportGUI.php");
268 $exp_gui->addFormat(
"xml");
269 $ret = $this->ctrl->forwardCommand($exp_gui);
272 case 'ilshoppurchasegui':
273 include_once
'./Services/Payment/classes/class.ilShopPurchaseGUI.php';
276 $this->ctrl->forwardCommand($sp);
279 case "ilcommonactiondispatchergui":
280 include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
282 $this->ctrl->forwardCommand($gui);
285 case "ilcertificategui":
287 $this->tabs_gui->activateTab(
"settings");
288 $this->tabs_gui->activateSubTab(
"certificate");
289 include_once
"./Services/Certificate/classes/class.ilCertificateGUI.php";
290 include_once
"./Modules/Exercise/classes/class.ilExerciseCertificateAdapter.php";
292 $this->ctrl->forwardCommand($output_gui);
296 $this->ass->updatePeerReviewTimestamp((
int)
$_REQUEST[
"peer_id"]);
298 include_once(
"./Services/Rating/classes/class.ilRatingGUI.php");
300 $rating_gui->setObject($this->ass->getId(),
"ass",
301 (int)$_REQUEST[
"peer_id"],
"peer");
302 $this->ctrl->forwardCommand($rating_gui);
303 $ilCtrl->redirect($this,
"editPeerReview");
307 $this->ctrl->setParameter($this,
"fsmode",
"");
349 $ilUser->getId(),
$_REQUEST[
"delivered"]);
355 $ilCtrl->redirect($this,
"submissionScreen");
368 $this->tabs_gui->clearTargets();
369 $this->tabs_gui->setBackTarget($this->lng->txt(
"back"),
370 $this->ctrl->getLinkTarget($this,
"submissionScreen"));
375 if (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0))
378 $ilCtrl->redirect($this,
"submissionScreen");
381 if (!is_array(
$_POST[
"delivered"]) || count(
$_POST[
"delivered"]) == 0)
384 $ilCtrl->redirect($this,
"submissionScreen");
388 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
390 $cgui->setFormAction($ilCtrl->getFormAction($this));
391 $cgui->setHeaderText($lng->txt(
"info_delete_sure"));
392 $cgui->setCancel($lng->txt(
"cancel"),
"submissionScreen");
393 $cgui->setConfirm($lng->txt(
"delete"),
"deleteDelivered");
398 foreach (
$_POST[
"delivered"] as $i)
402 foreach ($files as $f)
404 if ($f[
"returned_id"] == $i)
406 $title = $f[
"filetitle"];
409 $cgui->addItem(
"delivered[]", $i, $title);
412 $tpl->setContent($cgui->getHTML());
428 if (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0))
431 $ilCtrl->redirect($this,
"submissionScreen");
434 if (count(
$_POST[
"delivered"]) && (mktime() < $this->ass->getDeadline() ||
435 $this->ass->getDeadline() == 0))
437 $this->
object->deleteDeliveredFiles($this->object->getId(), (int)
$_GET[
"ass_id"],
438 $_POST[
"delivered"], $ilUser->id);
440 $this->
object->handleSubmission((
int)
$_GET[
'ass_id']);
448 $ilCtrl->redirect($this,
"submissionScreen");
461 $this->tabs_gui->activateTab(
"submissions");
466 if (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0))
472 $ilToolbar->addButton($this->lng->txt(
"file_add"),
473 $this->ctrl->getLinkTarget($this,
"uploadForm"));
475 $ilToolbar->addButton($this->lng->txt(
"header_zip"),
476 $this->ctrl->getLinkTarget($this,
"uploadZipForm"));
479 include_once(
"./Modules/Exercise/classes/class.ilExcDeliveredFilesTableGUI.php");
481 $this->tpl->setContent(
$tab->getHTML());
489 if (mktime() < $this->ass->getDeadline() || ($this->ass->getDeadline() == 0))
491 $this->tabs_gui->clearTargets();
492 $this->tabs_gui->setBackTarget($this->lng->txt(
"back"),
493 $this->ctrl->getLinkTarget($this,
"submissionScreen"));
496 $ilHelp->setScreenIdComponent(
"exc");
497 $ilHelp->setScreenId(
"upload_submission");
500 $this->tpl->setContent($this->form->getHTML());
504 $this->ctrl->redirect($this,
"submissionScreen");
513 if (mktime() < $this->ass->getDeadline() || ($this->ass->getDeadline() == 0))
515 $this->tabs_gui->clearTargets();
516 $this->tabs_gui->setBackTarget($this->lng->txt(
"back"),
517 $this->ctrl->getLinkTarget($this,
"submissionScreen"));
520 $this->tpl->setContent($this->form->getHTML());
524 $this->ctrl->redirect($this,
"submissionScreen");
535 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
539 include_once(
"./Services/Form/classes/class.ilFileWizardInputGUI.php");
543 $this->form->addItem($fi);
545 $this->form->addCommandButton(
"deliverFile", $lng->txt(
"upload"));
546 $this->form->addCommandButton(
"submissionScreen", $lng->txt(
"cancel"));
548 $this->form->setTitle($lng->txt(
"file_add"));
549 $this->form->setFormAction($ilCtrl->getFormAction($this));
559 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
563 include_once(
"./Services/Form/classes/class.ilFileInputGUI.php");
566 $this->form->addItem($fi);
568 $this->form->addCommandButton(
"deliverUnzip", $lng->txt(
"upload"));
569 $this->form->addCommandButton(
"submissionScreen", $lng->txt(
"cancel"));
571 $this->form->setTitle($lng->txt(
"header_zip"));
572 $this->form->setFormAction($ilCtrl->getFormAction($this));
585 if (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0))
592 foreach ($_FILES[
"deliver"][
"name"] as $k => $v)
595 "name" => $_FILES[
"deliver"][
"name"][$k],
596 "type" => $_FILES[
"deliver"][
"type"][$k],
597 "tmp_name" => $_FILES[
"deliver"][
"tmp_name"][$k],
598 "error" => $_FILES[
"deliver"][
"error"][$k],
599 "size" => $_FILES[
"deliver"][
"size"][$k],
601 if(!$this->object->deliverFile(
$file, (
int)
$_GET[
"ass_id"], $ilUser->id))
616 $this->
object->handleSubmission((
int)$_GET[
'ass_id']);
618 $ilCtrl->redirect($this,
"submissionScreen");
631 if (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0))
637 if (preg_match(
"/zip/",$_FILES[
"deliver"][
"type"]) == 1)
639 if($this->object->processUploadedFile($_FILES[
"deliver"][
"tmp_name"],
"deliverFile",
false,
640 (
int)
$_GET[
"ass_id"]))
643 $this->
object->handleSubmission((
int)$_GET[
'ass_id']);
647 $ilCtrl->redirect($this,
"submissionScreen");
665 $this->ctrl->redirect($this,
"view");
672 $feedback_id =
"t".$ass->getTeamId($ilUser->getId());
676 $feedback_id = $ilUser->getId();
680 include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
682 $files = $storage->getFeedbackFiles($feedback_id);
684 foreach($files as $fb_file)
686 if($fb_file ==
$file)
694 echo
"FILE DOES NOT EXIST";
699 $not_started_yet =
false;
700 if ($ass->getStartTime() > 0 && time() - $ass->getStartTime() <= 0)
702 $not_started_yet =
true;
706 if (!$not_started_yet)
708 $p = $storage->getFeedbackFilePath($feedback_id,
$file);
730 $this->ctrl->redirect($this,
"view");
734 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
737 foreach($files as $lfile)
739 if($lfile[
"name"] ==
$file)
747 echo
"FILE DOES NOT EXIST";
753 $not_started_yet =
false;
754 if ($ass->getStartTime() > 0 && time() - $ass->getStartTime() <= 0)
756 $not_started_yet =
true;
760 if (!$not_started_yet)
762 include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
764 $p = $storage->getAssignmentFilePath(
$file);
773 $a_new_object->saveData();
776 ilUtil::redirect(
"ilias.php?baseClass=ilExerciseHandlerGUI&ref_id=".$a_new_object->
getRefId().
"&cmd=addAssignment");
784 $a_form->
setTitle($this->lng->txt(
"exc_edit_exercise"));
787 $section->setTitle($this->lng->txt(
'exc_passing_exc'));
793 $op1 =
new ilRadioOption($this->lng->txt(
"exc_pass_all"),
"all",
794 $this->lng->txt(
"exc_pass_all_info"));
795 $radg->addOption($op1);
796 $op2 =
new ilRadioOption($this->lng->txt(
"exc_pass_minimum_nr"),
"nr",
797 $this->lng->txt(
"exc_pass_minimum_nr_info"));
798 $radg->addOption($op2);
803 $ni->setMaxLength(4);
804 $ni->setRequired(
true);
805 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
807 $min = max($mand, 1);
808 $ni->setMinValue($min,
true);
809 $ni->setInfo($this->lng->txt(
"exc_min_nr_info"));
810 $op2->addSubItem($ni);
815 $subcompl =
new ilRadioGroupInputGUI($this->lng->txt(
"exc_passed_status_determination"),
"completion_by_submission");
816 $op1 =
new ilRadioOption($this->lng->txt(
"exc_completion_by_tutor"), 0,
"");
817 $subcompl->addOption($op1);
818 $op2 =
new ilRadioOption($this->lng->txt(
"exc_completion_by_submission"), 1,$this->lng->txt(
"exc_completion_by_submission_info"));
819 $subcompl->addOption($op2);
828 $section->setTitle($this->lng->txt(
'exc_publishing'));
832 $cb =
new ilCheckboxInputGUI($this->lng->txt(
"exc_show_submissions"),
"show_submissions");
833 $cb->
setInfo($this->lng->txt(
"exc_show_submissions_info"));
837 $section->setTitle($this->lng->txt(
'exc_notification'));
841 $cbox =
new ilCheckboxInputGUI($this->lng->txt(
"exc_submission_notification"),
"notification");
842 $cbox->
setInfo($this->lng->txt(
"exc_submission_notification_info"));
853 $a_values[
"desc"] = $this->
object->getLongDescription();
854 $a_values[
"show_submissions"] = $this->
object->getShowSubmissions();
855 $a_values[
"pass_mode"] = $this->
object->getPassMode();
856 if ($a_values[
"pass_mode"] ==
"nr")
858 $a_values[
"pass_nr"] = $this->
object->getPassNr();
861 include_once
"./Services/Notification/classes/class.ilNotification.php";
864 $this->
object->getId());
866 $a_values[
'completion_by_submission'] = (int) $this->object->isCompletionBySubmissionEnabled();
872 $this->
object->setShowSubmissions($a_form->
getInput(
"show_submissions"));
873 $this->
object->setPassMode($a_form->
getInput(
"pass_mode"));
874 if ($this->object->getPassMode() ==
"nr")
876 $this->
object->setPassNr($a_form->
getInput(
"pass_nr"));
879 $this->
object->setCompletionBySubmission($a_form->
getInput(
'completion_by_submission') == 1 ? true :
false);
881 include_once
"./Services/Notification/classes/class.ilNotification.php";
883 $ilUser->getId(), $this->
object->getId(),
884 (bool)$a_form->
getInput(
"notification"));
889 $this->ctrl->redirect($this,
"view");
898 if(!$this->object->addUploadedFile($_FILES[
"zipfile"],
true))
902 $this->ctrl->redirect($this,
"edit");
912 if(!$this->object->addUploadedFile($_FILES[
"file"]))
916 $this->ctrl->redirect($this,
"edit");
929 if (
$_POST[
"downloadReturned"])
931 $this->
object->members_obj->deliverReturnedFiles(key(
$_POST[
"downloadReturned"]));
946 case "redirectFeedbackMail":
950 case "delete_member":
964 $peer_review_mask_filename =
false;
966 if (!$ilAccess->checkAccess(
"write",
"", $this->object->getRefId()))
968 if ($ilAccess->checkAccess(
"read",
"", $this->object->getRefId()) &&
969 $this->object->getShowSubmissions() &&
970 $this->
object->getTimestamp() - time() <= 0)
978 if(!($ilAccess->checkAccess(
"read",
"", $this->object->getRefId()) &&
979 $ass->hasPeerReviewAccess((
int) $_GET[
"member_id"])))
985 $peer_review_mask_filename =
true;
991 $this->object->getId(), (int)
$_GET[
"ass_id"], (
int)
$_GET[
"member_id"],
992 false, $peer_review_mask_filename))
994 $this->ctrl->redirect($this,
"members");
1006 $peer_review_mask_filename =
false;
1008 if (!$ilAccess->checkAccess(
"write",
"", $this->object->getRefId()))
1012 if(!($ilAccess->checkAccess(
"read",
"", $this->object->getRefId()) &&
1013 $ass->hasPeerReviewAccess((
int) $_GET[
"member_id"])))
1019 $peer_review_mask_filename =
true;
1024 $this->object->getId(), (int)
$_GET[
"ass_id"], (
int)
$_GET[
"member_id"],
1025 true, $peer_review_mask_filename))
1027 $this->ctrl->redirect($this,
"members");
1037 if(!strlen(trim(
$_POST[
'user_login'])))
1043 $users = explode(
',',
$_POST[
'user_login']);
1045 $user_ids = array();
1046 foreach($users as $user)
1065 $user_ids[] = $user_id;
1089 if(!count($a_user_ids))
1095 if(!$this->object->members_obj->assignMembers($a_user_ids))
1120 $this->ctrl->redirect($this,
"members");
1132 $ilTabs->activateTab(
"grades");
1134 include_once
'Services/Tracking/classes/class.ilLPMarks.php';
1140 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
1143 if (
$_GET[
"ass_id"] ==
"")
1146 $_GET[
"ass_id"] = $a[
"id"];
1150 if (count($ass) > 1)
1153 foreach ($ass as $a)
1157 include_once(
"./Services/Form/classes/class.ilSelectInputGUI.php");
1161 $ilToolbar->addInputItem(
$si);
1163 $ilToolbar->addFormButton($this->lng->txt(
"exc_select_ass"),
1164 "selectAssignment");
1165 $ilToolbar->addSeparator();
1169 include_once
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
1174 'auto_complete_name' => $lng->txt(
'user'),
1175 'submit_name' => $lng->txt(
'add'),
1176 'add_search' =>
true,
1177 'add_from_container' =>
$_GET[
"ref_id"]
1182 $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
1184 $ilToolbar->addSeparator();
1187 $ilToolbar->addButton($this->lng->txt(
"exc_multi_feedback"),
1188 $this->ctrl->getLinkTarget($this,
"showMultiFeedback"));
1190 if (count($ass) > 0)
1193 foreach($ass as $item)
1195 if($item[
"id"] ==
$_GET[
"ass_id"])
1197 $ctype = $item[
"type"];
1202 $ilToolbar->addSeparator();
1203 $ilToolbar->addFormButton($lng->txt(
"exc_list_text_assignment"),
"listTextAssignment");
1207 $ilToolbar->addSeparator();
1208 $ilToolbar->addFormButton($lng->txt(
"download_all_returned_files"),
"downloadAll");
1211 include_once(
"./Modules/Exercise/classes/class.ilExerciseMemberTableGUI.php");
1213 $tpl->setContent($exc_tab->getHTML());
1229 $ilTabs->activateTab(
"grades");
1244 $ilTabs->activateTab(
"grades");
1248 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
1250 $members = $this->
object->members_obj->getMembers();
1252 if (count($members) == 0)
1259 foreach ($members as $mem_id)
1263 include_once(
"./Services/User/classes/class.ilObjUser.php");
1265 $mems[$mem_id] = $name;
1271 if (
$_GET[
"part_id"] ==
"" && count($mems) > 0)
1273 $_GET[
"part_id"] = key($mems);
1277 if (count($mems) > 1)
1280 foreach ($mems as $k => $m)
1283 $m[
"lastname"].
", ".$m[
"firstname"].
" [".$m[
"login"].
"]";
1285 include_once(
"./Services/Form/classes/class.ilSelectInputGUI.php");
1289 $ilToolbar->addInputItem(
$si);
1291 $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
1292 $ilToolbar->addFormButton($this->lng->txt(
"exc_select_part"),
1293 "selectParticipant");
1296 if (count($mems) > 0)
1298 include_once(
"./Modules/Exercise/classes/class.ilExParticipantTableGUI.php");
1300 $this->
object,
$_GET[
"part_id"]);
1301 $tpl->setContent($part_tab->getHTML());
1316 $ilTabs->activateTab(
"grades");
1331 $ilTabs->activateTab(
"grades");
1334 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
1336 $mems = $mem_obj->getMembers();
1338 if (count($mems) > 0)
1340 $ilToolbar->addButton($lng->txt(
"exc_export_excel"),
1341 $ilCtrl->getLinkTarget($this,
"exportExcel"));
1344 include_once(
"./Modules/Exercise/classes/class.ilExGradesTableGUI.php");
1346 $this->
object, $mem_obj);
1347 $tpl->setContent($grades_tab->getHTML());
1359 if (
$_GET[
"member_id"] !=
"")
1367 $members = array(
$_GET[
"member_id"]);
1370 else if(count(
$_POST[
"member"]) > 0)
1374 foreach(array_keys(
$_POST[
"member"]) as $user_id)
1378 $members = array_unique($members);
1382 $members = array_keys(
$_POST[
"member"]);
1389 foreach($members as $user_id)
1394 $logins = implode($logins,
",");
1396 require_once
'Services/Mail/classes/class.ilMailFormCall.php';
1401 $this->ctrl->redirect($this,
"members");
1413 foreach($this->object->members_obj->getMembers() as $member_id)
1417 (int)
$_GET[
"ass_id"], $member_id);
1423 $members[$member_id] = $tmp_obj->getFirstname() .
" " . $tmp_obj->getLastname();
1429 (int)
$_GET[
"ass_id"], $members);
1442 include_once
"./Modules/Group/classes/class.ilObjGroup.php";
1444 $all_members = array();
1445 foreach($a_result as $group)
1449 $members = $tmp_grp_obj->getGroupMemberIds();
1450 $all_members = array_merge($all_members,$members);
1453 $all_members = array_unique($all_members);
1454 foreach($all_members as $member)
1456 $result[] = array(
"id" => $member);
1465 include_once
"./Services/Object/classes/class.ilObjectFactory.php";
1467 foreach($a_result as $obj)
1470 $this->tpl->setCurrentBlock(
"OBJ_SELECT_ROW");
1471 $this->tpl->setVariable(
"OBJ_ROW_TITLE",$tmp_obj->getTitle());
1472 $this->tpl->setVariable(
"OBJ_ROW_ID",$tmp_obj->getRefId());
1473 $this->tpl->setVariable(
"OBJ_ROW_DESCRIPTION",$tmp_obj->getDescription());
1474 $this->tpl->parseCurrentBlock();
1478 $this->tpl->setCurrentBlock(
"OBJ_SELECT");
1479 $this->tpl->setVariable(
"OBJ_SELECT_TITLE",$this->lng->txt(
"title"));
1480 $this->tpl->setVariable(
"OBJ_SELECT_DESCRIPTION",$this->lng->txt(
"description"));
1482 $this->tpl->setVariable(
"OBJ_BTN1_VALUE",$this->lng->txt(
"select"));
1483 $this->tpl->setVariable(
"OBJ_BTN2_VALUE",$this->lng->txt(
"cancel"));
1484 $this->tpl->parseCurrentBlock();
1496 if(!count(
$_POST[
"member"]))
1506 foreach(array_keys(
$_POST[
"member"]) as $user_id)
1509 foreach($tmembers as $tuser_id)
1511 $members[$tuser_id] = 1;
1517 $members =
$_POST[
"member"];
1520 $this->
object->sendAssignment($this->object->getId(),
1521 (int)
$_GET[
"ass_id"], $members);
1525 $ilCtrl->redirect($this,
"members");
1536 $ilTabs->activateTab(
"grades");
1538 if (!is_array(
$_POST[
"member"]) || count(
$_POST[
"member"]) == 0)
1541 $ilCtrl->redirect($this,
"members");
1545 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
1547 $cgui->setFormAction($ilCtrl->getFormAction($this));
1548 $cgui->setHeaderText($lng->txt(
"exc_msg_sure_to_deassign_participant"));
1549 $cgui->setCancel($lng->txt(
"cancel"),
"members");
1550 $cgui->setConfirm($lng->txt(
"remove"),
"deassignMembers");
1556 foreach(array_keys(
$_POST[
"member"]) as $user_id)
1559 foreach($tmembers as $tuser_id)
1561 $members[$tuser_id] = 1;
1567 $members =
$_POST[
"member"];
1570 include_once(
"./Services/User/classes/class.ilUserUtil.php");
1571 foreach ($members as $k => $m)
1573 $cgui->addItem(
"member[$k]", $m,
1577 $tpl->setContent($cgui->getHTML());
1590 if(is_array(
$_POST[
"member"]))
1592 foreach(array_keys(
$_POST[
"member"]) as $usr_id)
1594 $this->
object->members_obj->deassignMember((
int) $usr_id);
1597 $ilCtrl->redirect($this,
"members");
1602 $ilCtrl->redirect($this,
"members");
1610 if(!isset(
$_POST[
'comments_value']))
1615 $this->
object->members_obj->setNoticeForMember(
$_GET[
"member_id"],
1644 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
1648 $saved_for = array();
1650 foreach(
$_POST[
"id"] as $key => $value)
1654 if (!$a_force_all &&
$_POST[
"member"][$key] !=
"1")
1661 $saved_for[] = $uname[
"lastname"].
", ".$uname[
"firstname"];
1666 $ass_id = (int)
$_GET[
"ass_id"];
1667 $user_id = (int) $key;
1671 $ass_id = (int) $key;
1672 $user_id = (int)
$_GET[
"part_id"];
1678 $team_id = $this->ass->getTeamId($user_id);
1679 $user_ids = $this->ass->getTeamMembers($team_id);
1681 if (count(
$_POST[
"member"]) > 0)
1683 foreach($user_ids as $user_id)
1685 if($user_id != $key)
1688 $saved_for[] = $uname[
"lastname"].
", ".$uname[
"firstname"];
1695 $user_ids = array($user_id);
1698 foreach($user_ids as $user_id)
1721 if (count($saved_for) > 0)
1723 $save_for_str =
"(".implode($saved_for,
" - ").
")";
1725 if($save_for_str || $a_part_view)
1731 $ilCtrl->redirect($this,
"members");
1735 $ilCtrl->redirect($this,
"showParticipant");
1744 for($i=0; $i<24; $i++)
1746 $hours[$i] = $i < 10 ?
"0".$i : $i;
1751 for($i=0;$i<60;$i++)
1753 $minutes[$i] = $i < 10 ?
"0".$i : $i;
1758 for($i=1; $i<32; $i++)
1760 $days[$i] = $i < 10 ?
"0".$i : $i;
1765 for($i=1; $i<13; $i++)
1767 $month[$i] = $i < 10 ?
"0".$i : $i;
1772 for($i = date(
"Y",time());$i < date(
"Y",time()) + 3;++$i)
1782 foreach($a_result as $user)
1784 if(!$this->object->members_obj->isAssigned($user[
"id"]))
1786 $filtered[] = $user;
1790 return $filtered ? $filtered : array();
1802 $ilTabs->addSubTab(
"assignment", $lng->txt(
"exc_assignment_view"),
1803 $ilCtrl->getLinkTarget($this,
"members"));
1804 $ilTabs->addSubTab(
"participant", $lng->txt(
"exc_participant_view"),
1805 $ilCtrl->getLinkTarget($this,
"showParticipant"));
1806 $ilTabs->addSubTab(
"grades", $lng->txt(
"exc_grades_overview"),
1807 $ilCtrl->getLinkTarget($this,
"showGradesOverview"));
1808 $ilTabs->activateSubTab($a_activate);
1820 $ilTabs->addSubTab(
"content", $lng->txt(
"view"),
1821 $ilCtrl->getLinkTarget($this,
"showOverview"));
1822 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id))
1824 $ilTabs->addSubTab(
"list_assignments", $lng->txt(
"edit"),
1825 $ilCtrl->getLinkTarget($this,
"listAssignments"));
1827 $ilTabs->activateSubTab($a_activate);
1840 $ilHelp->setScreenIdComponent(
"exc");
1842 if ($ilAccess->checkAccess(
"read",
"", $this->object->getRefId()))
1844 $tabs_gui->addTab(
"content",
1845 $lng->txt(
"exc_assignments"),
1846 $this->ctrl->getLinkTarget($this,
"showOverview"));
1849 $next_class = strtolower($this->ctrl->getNextClass());
1850 if ($ilAccess->checkAccess(
"visible",
"", $this->object->getRefId()))
1852 $tabs_gui->addTab(
"info",
1853 $lng->txt(
"info_short"),
1854 $this->ctrl->getLinkTargetByClass(
"ilinfoscreengui",
"showSummary"));
1858 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id))
1864 $tabs_gui->addTab(
"settings",
1865 $lng->txt(
"settings"),
1866 $this->ctrl->getLinkTarget($this,
'edit'));
1868 $tabs_gui->addTab(
"grades",
1869 $lng->txt(
"exc_submissions_and_grades"),
1870 $this->ctrl->getLinkTarget($this,
'members'));
1874 $save_sort_order =
$_GET[
"sort_order"];
1875 $save_sort_by =
$_GET[
"sort_by"];
1876 $save_offset =
$_GET[
"offset"];
1879 include_once
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
1882 $tabs_gui->addTab(
'learning_progress',
1883 $lng->txt(
'learning_progress'),
1884 $this->ctrl->getLinkTargetByClass(array(
'ilobjexercisegui',
'illearningprogressgui'),
''));
1887 $_GET[
"sort_order"] = $save_sort_order;
1888 $_GET[
"sort_by"] = $save_sort_by;
1889 $_GET[
"offset"] = $save_offset;
1892 if ($ilAccess->checkAccess(
"write",
"", $this->object->getRefId()))
1894 $tabs_gui->addTab(
"export",
1895 $lng->txt(
"export"),
1896 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
""));
1901 if ($ilAccess->checkAccess(
"edit_permission",
"", $this->ref_id))
1903 $tabs_gui->addTab(
'permissions',
1904 $lng->txt(
"perm_settings"),
1905 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm"));
1916 $this->ctrl->setCmd(
"showSummary");
1917 $this->ctrl->setCmdClass(
"ilinfoscreengui");
1928 $ilTabs->activateTab(
"info");
1932 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
1935 $info->enablePrivateNotes();
1937 $info->enableNews();
1938 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"]))
1940 $info->enableNewsEditing();
1941 $info->setBlockProperty(
"news",
"settings",
true);
1948 $info->addSection($this->lng->txt(
"exc_overview"));
1949 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
1953 foreach ($ass as $a)
1956 if ($a[
"mandatory"])
1961 $info->addProperty($lng->txt(
"exc_assignments"), $cnt);
1962 $info->addProperty($lng->txt(
"exc_mandatory"), $mcnt);
1963 if ($this->object->getPassMode() !=
"nr")
1965 $info->addProperty($lng->txt(
"exc_pass_mode"),
1966 $lng->txt(
"exc_msg_all_mandatory_ass"));
1970 $info->addProperty($lng->txt(
"exc_pass_mode"),
1971 sprintf($lng->txt(
"exc_msg_min_number_ass"), $this->
object->getPassNr()));
1975 include_once(
"Services/Tracking/classes/class.ilLPMarks.php");
1976 if ($ilAccess->checkAccess(
"read",
"", $this->ref_id))
1981 $st = $this->
object->determinStatusOfUser($ilUser->getId());
1982 $status = $st[
"overall_status"];
1983 if ($lpcomment !=
"" || $mark !=
"" || $status !=
"notgraded")
1985 $info->addSection($this->lng->txt(
"exc_feedback_from_tutor"));
1986 if ($lpcomment !=
"")
1988 $info->addProperty($this->lng->txt(
"exc_comment"),
1993 $info->addProperty($this->lng->txt(
"exc_mark"),
2003 if ($status !=
"notgraded")
2005 $img =
'<img src="'.ilUtil::getImagePath(
"scorm/".$status.
".svg").
'" '.
2006 ' alt="'.$lng->txt(
"exc_".$status).
'" title="'.$lng->txt(
"exc_".$status).
2010 if ($st[
"failed_a_mandatory"])
2012 $add =
" (".$lng->txt(
"exc_msg_failed_mandatory").
")";
2014 else if ($status ==
"failed")
2016 $add =
" (".$lng->txt(
"exc_msg_missed_minimum_number").
")";
2018 $info->addProperty($this->lng->txt(
"status"),
2019 $img.
" ".$this->lng->txt(
"exc_".$status).$add);
2025 $this->ctrl->forwardCommand($info);
2031 $this->tabs_gui->activateSubTab(
"edit");
2032 return parent::editObject();
2037 $this->tabs_gui->addSubTab(
"edit",
2038 $this->lng->txt(
"general_settings"),
2039 $this->ctrl->getLinkTarget($this,
"edit"));
2041 include_once
"Services/Certificate/classes/class.ilCertificate.php";
2044 $this->tabs_gui->addSubTab(
"certificate",
2045 $this->lng->txt(
"certificate"),
2046 $this->ctrl->getLinkTarget($this,
"certificate"));
2055 public static function _goto($a_target, $a_raw)
2060 $parts = explode(
"_", $a_raw);
2061 if(
sizeof($parts) == 2)
2063 $ass_id = (int)$parts[1];
2066 if ($ilAccess->checkAccess(
"read",
"", $a_target))
2070 $_GET[
"ass_id_goto"] = $ass_id;
2072 $_GET[
"ref_id"] = $a_target;
2073 $_GET[
"cmd"] =
"showOverview";
2074 $_GET[
"baseClass"] =
"ilExerciseHandlerGUI";
2075 include(
"ilias.php");
2078 else if ($ilAccess->checkAccess(
"visible",
"", $a_target))
2080 $_GET[
"ref_id"] = $a_target;
2081 $_GET[
"cmd"] =
"infoScreen";
2082 $_GET[
"baseClass"] =
"ilExerciseHandlerGUI";
2083 include(
"ilias.php");
2086 else if ($ilAccess->checkAccess(
"read",
"", ROOT_FOLDER_ID))
2093 $ilErr->raiseError($lng->txt(
"msg_no_perm_read"), $ilErr->FATAL);
2103 if (is_object($this->
object))
2106 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"showOverview"),
"",
$_GET[
"ref_id"]);
2123 $ilTabs->activateTab(
"content");
2126 $ilToolbar->addButton($lng->txt(
"exc_add_assignment"),
2127 $ilCtrl->getLinkTarget($this,
"addAssignment"));
2129 include_once(
"./Modules/Exercise/classes/class.ilAssignmentsTableGUI.php");
2131 $tpl->setContent(
$t->getHTML());
2139 global
$tpl, $ilTabs;
2143 $ilTabs->activateTab(
"content");
2147 $tpl->setContent($this->form->getHTML());
2160 $lng->loadLanguageModule(
"form");
2161 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
2163 $this->form->setTableWidth(
"600px");
2164 if ($a_mode ==
"edit")
2166 $this->form->setTitle($lng->txt(
"exc_edit_assignment"));
2170 $this->form->setTitle($lng->txt(
"exc_new_assignment"));
2172 $this->form->setFormAction($ilCtrl->getFormAction($this));
2175 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
2179 if(!$ilSetting->get(
'disable_wsp_blogs'))
2183 if($ilSetting->get(
'user_portfolios'))
2187 if(
sizeof($types) > 1)
2189 $ty =
new ilSelectInputGUI($this->lng->txt(
"exc_assignment_type"),
"type");
2191 $ty->setRequired(
true);
2198 $this->form->addItem($ty);
2203 $ti->setRequired(
true);
2204 $this->form->addItem($ti);
2208 $this->form->addItem($cb);
2212 $edit_date->setShowTime(
true);
2213 $cb->addSubItem($edit_date);
2219 $this->form->addItem($dcb);
2224 $dcb->addSubItem($edit_date);
2228 $cb->
setInfo($this->lng->txt(
"exc_mandatory_info"));
2229 $cb->setChecked(
true);
2230 $this->form->addItem($cb);
2235 $desc_input->setUseRte(
true);
2236 $desc_input->setRteTagSet(
"mini");
2237 $this->form->addItem($desc_input);
2240 if ($a_mode ==
"create")
2244 $this->form->addItem($files);
2249 $peer->
setInfo($this->lng->txt(
"exc_peer_review_ass_setting_info"));
2250 $this->form->addItem($peer);
2252 if ($a_mode ==
"create")
2254 $peer->setInfo($lng->txt(
"exc_peer_review_info"));
2257 $peer_min =
new ilNumberInputGUI($lng->txt(
"exc_peer_review_min_number"),
"peer_min");
2258 $peer_min->
setInfo($lng->txt(
"exc_peer_review_min_number_info"));
2259 $peer_min->setRequired(
true);
2260 $peer_min->setValue(5);
2261 $peer_min->setSize(3);
2262 $peer_min->setValue(2);
2263 $peer->addSubItem($peer_min);
2266 $peer_dl->
setInfo($lng->txt(
"exc_peer_review_deadline_info"));
2267 $peer_dl->enableDateActivation(
"",
"peer_dl_tgl");
2268 $peer_dl->setShowTime(
true);
2269 $peer->addSubItem($peer_dl);
2272 $peer_file->
setInfo($lng->txt(
"exc_peer_review_file_info"));
2273 $peer->addSubItem($peer_file);
2275 $peer_prsl =
new ilCheckboxInputGUI($lng->txt(
"exc_peer_review_personal"),
"peer_prsl");
2276 $peer_prsl->
setInfo($lng->txt(
"exc_peer_review_personal_info"));
2277 $peer->addSubItem($peer_prsl);
2279 if($a_mode !=
"create" &&
2281 $this->ass->getDeadline() && $this->ass->getDeadline() < time())
2283 $peer_prsl->setDisabled(
true);
2290 $this->form->addItem($fb);
2295 $fb->addSubItem($fb_file);
2298 if($a_mode !=
"create" &&
2300 $this->ass->getFeedbackFile())
2302 $fb_file->setRequired(
false);
2309 $fb->addSubItem($fb_date);
2311 $fb_cron =
new ilCheckboxInputGUI($lng->txt(
"exc_global_feedback_file_cron"),
"fb_cron");
2312 $fb_cron->
setInfo($lng->txt(
"exc_global_feedback_file_cron_info"));
2313 $fb->addSubItem($fb_cron);
2316 if ($a_mode ==
"create")
2318 $this->form->addCommandButton(
"saveAssignment", $lng->txt(
"save"));
2319 $this->form->addCommandButton(
"listAssignments", $lng->txt(
"cancel"));
2323 $this->form->addCommandButton(
"updateAssignment", $lng->txt(
"save"));
2324 $this->form->addCommandButton(
"listAssignments", $lng->txt(
"cancel"));
2338 $ilTabs->activateTab(
"content");
2342 if ($this->form->checkInput())
2344 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
2354 $this->form->getItemByPostVar(
"start_time")->getDate();
2356 $this->form->getItemByPostVar(
"deadline")->getDate();
2360 $this->form->getItemByPostVar(
"start_time")
2361 ->setAlert($lng->txt(
"exc_start_date_should_be_before_end_date"));
2362 $this->form->getItemByPostVar(
"deadline")
2363 ->setAlert($lng->txt(
"exc_start_date_should_be_before_end_date"));
2370 $this->form->getItemByPostVar(
"peer")
2371 ->setAlert($lng->txt(
"exc_team_upload_not_supported"));
2375 if(!
$_POST[
"deadline_cb"])
2379 $this->form->getItemByPostVar(
"peer")
2380 ->setAlert($lng->txt(
"exc_needs_deadline"));
2386 $this->form->getItemByPostVar(
"fb")
2387 ->setAlert($lng->txt(
"exc_needs_deadline"));
2397 $peer_dl = $this->form->getItemByPostVar(
"peer_dl")->getDate();
2399 $end_date = $this->form->getItemByPostVar(
"deadline")->getDate();
2403 if ($peer_dl < $end_date)
2405 $this->form->getItemByPostVar(
"peer_dl")
2406 ->setAlert($lng->txt(
"exc_peer_deadline_mismatch"));
2415 $this->form->setValuesByPost();
2416 $tpl->setContent($this->form->getHtml());
2421 $ass->setTitle(
$_POST[
"title"]);
2422 $ass->setInstruction(
$_POST[
"instruction"]);
2423 $ass->setExerciseId($this->object->getId());
2424 $ass->setMandatory(
$_POST[
"mandatory"]);
2425 $ass->setType(
$_POST[
"type"]);
2427 if (
$_POST[
"start_time_cb"])
2430 $this->form->getItemByPostVar(
"start_time")->getDate();
2435 $ass->setStartTime(null);
2439 if (
$_POST[
"deadline_cb"])
2442 $this->form->getItemByPostVar(
"deadline")->getDate();
2447 $ass->setDeadline(null);
2452 $ass->setPeerReview(
$_POST[
"peer"]);
2453 $ass->setPeerReviewMin(
$_POST[
"peer_min"]);
2454 $ass->setPeerReviewFileUpload(
$_POST[
"peer_file"]);
2456 if($ass->getDeadline() && $ass->getDeadline() > time())
2458 $ass->setPeerReviewPersonalized(
$_POST[
"peer_prsl"]);
2461 if(
$_POST[
"peer_dl_tgl"])
2463 $peer_dl = $this->form->getItemByPostVar(
"peer_dl")->getDate();
2464 $ass->setPeerReviewDeadline($peer_dl->get(
IL_CAL_UNIX));
2468 $ass->setPeerReviewDeadline(null);
2472 $ass->setFeedbackCron(
$_POST[
"fb_cron"]);
2473 $ass->setFeedbackDate(
$_POST[
"fb_date"]);
2478 $ass->uploadAssignmentFiles($_FILES[
"files"]);
2480 if($_FILES[
"fb_file"][
"tmp_name"])
2482 $ass->handleFeedbackFileUpload($_FILES[
"fb_file"]);
2492 $ilCtrl->setParameter($this,
"ass_id", $ass->getId());
2493 $ilCtrl->redirect($this,
"adoptTeamAssignmentsForm");
2497 $ilCtrl->redirect($this,
"listAssignments");
2501 $this->form->setValuesByPost();
2502 $tpl->setContent($this->form->getHtml());
2516 $ilTabs->activateTab(
"ass_settings");
2520 $tpl->setContent($this->form->getHTML());
2532 $values[
"title"] = $ass->getTitle();
2533 if ($ass->getStartTime() > 0)
2535 $values[
"start_time_cb"] =
true;
2537 $values[
"mandatory"] = $ass->getMandatory();
2538 $values[
"instruction"] = $ass->getInstruction();
2539 $values[
"type"] = $ass->getType();
2540 if ($ass->getDeadline() > 0)
2542 $values[
"deadline_cb"] =
true;
2546 $this->form->removeItemByPostVar(
"peer");
2547 $this->form->removeItemByPostVar(
"peer_min");
2548 $this->form->removeItemByPostVar(
"peer_dl");
2552 if ($ass->getPeerReviewDeadline() > 0)
2554 $values[
"peer_dl_tgl"] =
true;
2556 $peer_dl = $this->form->getItemByPostVar(
"peer_dl");
2557 $peer_dl->
setDate($peer_dl_date);
2560 $this->form->setValuesByArray($values);
2562 if ($ass->getStartTime() > 0)
2565 $ed_item = $this->form->getItemByPostVar(
"start_time");
2566 $ed_item->
setDate($edit_date);
2569 if($ass->getFeedbackFile())
2571 $this->form->getItemByPostVar(
"fb")->setChecked(
true);
2572 $this->form->getItemByPostVar(
"fb_file")->setValue(basename($ass->getFeedbackFilePath()));
2574 $this->form->getItemByPostVar(
"fb_cron")->setChecked($ass->hasFeedbackCron());
2575 $this->form->getItemByPostVar(
"fb_date")->setValue($ass->getFeedbackDate());
2597 $ed_item->
setDate($edit_date);
2645 $ilTabs->activateTab(
"content");
2648 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
2652 if ($this->form->checkInput())
2655 $protected_peer_review_groups =
false;
2656 if($ass->getPeerReview() &&
2657 $ass->hasPeerReviewGroups())
2659 $protected_peer_review_groups =
true;
2662 $this->form->getItemByPostVar(
"deadline")->setAlert(null);
2663 $this->form->getItemByPostVar(
"peer_min")->setAlert(null);
2670 if(!$protected_peer_review_groups)
2674 if (
$_POST[
"deadline_cb"])
2677 $this->form->getItemByPostVar(
"deadline")->getDate()->get(
IL_CAL_UNIX);
2680 if (
$_POST[
"start_time_cb"] && $end_date)
2684 $this->form->getItemByPostVar(
"start_time")->getDate()->get(
IL_CAL_UNIX);
2685 if ($start_date >= $end_date)
2687 $this->form->getItemByPostVar(
"start_time")
2688 ->setAlert($lng->txt(
"exc_start_date_should_be_before_end_date"));
2689 $this->form->getItemByPostVar(
"deadline")
2690 ->setAlert($lng->txt(
"exc_start_date_should_be_before_end_date"));
2699 $this->form->getItemByPostVar(
"peer")
2700 ->setAlert($lng->txt(
"exc_needs_deadline"));
2705 $this->form->getItemByPostVar(
"fb")
2706 ->setAlert($lng->txt(
"exc_needs_deadline"));
2714 $end_date = $ass->getDeadline();
2721 $peer_dl = $this->form->getItemByPostVar(
"peer_dl")->getDate();
2725 if ($peer_dl < $end_date)
2727 $this->form->getItemByPostVar(
"peer_dl")
2728 ->setAlert($lng->txt(
"exc_peer_deadline_mismatch"));
2736 $this->form->setValuesByPost();
2738 $tpl->setContent($this->form->getHtml());
2742 $ass->setTitle(
$_POST[
"title"]);
2743 $ass->setInstruction(
$_POST[
"instruction"]);
2744 $ass->setExerciseId($this->object->getId());
2745 $ass->setMandatory(
$_POST[
"mandatory"]);
2746 $ass->setType(
$_POST[
"type"]);
2748 if (
$_POST[
"start_time_cb"])
2751 $this->form->getItemByPostVar(
"start_time")->getDate();
2756 $ass->setStartTime(null);
2759 if(!$protected_peer_review_groups)
2762 if (
$_POST[
"deadline_cb"])
2764 $date = $this->form->getItemByPostVar(
"deadline")->getDate();
2769 $ass->setDeadline(null);
2774 $ass->setPeerReview(
$_POST[
"peer"]);
2775 $ass->setPeerReviewMin(
$_POST[
"peer_min"]);
2776 $ass->setPeerReviewFileUpload(
$_POST[
"peer_file"]);
2778 if($ass->getDeadline() && $ass->getDeadline() > time())
2780 $ass->setPeerReviewPersonalized(
$_POST[
"peer_prsl"]);
2785 if(
$_POST[
"peer_dl_tgl"])
2787 $peer_dl = $this->form->getItemByPostVar(
"peer_dl")->getDate();
2788 $ass->setPeerReviewDeadline($peer_dl->get(
IL_CAL_UNIX));
2792 $ass->setPeerReviewDeadline(null);
2796 $this->form->getItemByPostVar(
"fb_file")->getDeletionFlag())
2798 $ass->deleteFeedbackFile();
2799 $ass->setFeedbackFile(null);
2801 else if($_FILES[
"fb_file"][
"tmp_name"])
2803 $ass->handleFeedbackFileUpload($_FILES[
"fb_file"]);
2806 $ass->setFeedbackCron(
$_POST[
"fb_cron"]);
2807 $ass->setFeedbackDate(
$_POST[
"fb_date"]);
2811 $ilCtrl->redirect($this,
"editAssignment");
2815 $this->form->setValuesByPost();
2817 $tpl->setContent($this->form->getHtml());
2831 $ilTabs->activateTab(
"content");
2834 if (!is_array(
$_POST[
"id"]) || count(
$_POST[
"id"]) == 0)
2837 $ilCtrl->redirect($this,
"listAssignments");
2841 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
2843 $cgui->setFormAction($ilCtrl->getFormAction($this));
2844 $cgui->setHeaderText($lng->txt(
"exc_conf_del_assignments"));
2845 $cgui->setCancel($lng->txt(
"cancel"),
"listAssignments");
2846 $cgui->setConfirm($lng->txt(
"delete"),
"deleteAssignments");
2848 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
2850 foreach (
$_POST[
"id"] as $i)
2855 $tpl->setContent($cgui->getHTML());
2869 if (is_array(
$_POST[
"id"]))
2871 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
2872 foreach(
$_POST[
"id"] as $id)
2884 $ilCtrl->redirect($this,
"listAssignments");
2896 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
2900 $ilCtrl->redirect($this,
"listAssignments");
2912 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
2916 $ilCtrl->redirect($this,
"listAssignments");
2926 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
2928 $tpl->setDescription(
"");
2930 $ilTabs->clearTargets();
2931 $ilHelp->setScreenIdComponent(
"exc");
2933 $ilTabs->setBackTarget($lng->txt(
"back"),
2934 $ilCtrl->getLinkTarget($this,
"listAssignments"));
2936 $ilTabs->addTab(
"ass_settings",
2937 $lng->txt(
"settings"),
2938 $ilCtrl->getLinkTarget($this,
"editAssignment"));
2940 $ilTabs->addTab(
"ass_files",
2941 $lng->txt(
"exc_instruction_files"),
2942 $ilCtrl->getLinkTargetByClass(
"ilfilesystemgui",
"listFiles"));
2960 include_once(
"./Services/Tracking/classes/class.ilLearningProgress.php");
2962 $this->
object->getRefId(),
'exc');
2964 $ilTabs->activateTab(
"content");
2968 if($this->object->hasUserCertificate($ilUser->getId()))
2970 include_once
"./Modules/Exercise/classes/class.ilExerciseCertificateAdapter.php";
2971 include_once
"./Services/Certificate/classes/class.ilCertificate.php";
2975 $ilToolbar->addButton($this->lng->txt(
"certificate"),
2976 $this->ctrl->getLinkTarget($this,
"outCertificate"));
2980 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
2981 include_once(
"./Services/Accordion/classes/class.ilAccordionGUI.php");
2983 $acc->setId(
"exc_ow_".$this->object->getId());
2985 include_once(
"./Modules/Exercise/classes/class.ilExAssignmentGUI.php");
2988 foreach ($ass_data as $ass)
2991 $force_open =
false;
2992 if(isset(
$_GET[
"ass_id_goto"]) &&
2993 (
int)
$_GET[
"ass_id_goto"] == $ass[
"id"])
2998 $acc->addItem($ass_gui->getOverviewHeader($ass),
2999 $ass_gui->getOverviewBody($ass),
3003 if (count($ass_data) < 2)
3005 $acc->setBehaviour(
"FirstOpen");
3009 $acc->setUseSessionStorage(
true);
3012 $tpl->setContent($acc->getHTML());
3020 global
$tpl, $ilTabs;
3024 if(!$this->object->getShowSubmissions())
3026 $this->ctrl->redirect($this,
"view");
3029 $ilTabs->activateTab(
"content");
3034 include_once(
"./Modules/Exercise/classes/class.ilPublicSubmissionsTableGUI.php");
3036 $this->
object, (
int)
$_GET[
"ass_id"]);
3037 $tpl->setContent(
$tab->getHTML());
3042 include_once
"Modules/Exercise/classes/class.ilExAssignmentListTextTableGUI.php";
3044 $tpl->setContent($tbl->getHTML());
3054 $this->
object->exportGradesExcel();
3066 include_once
'Services/Tracking/classes/class.ilLPMarks.php';
3068 if (is_array(
$_POST[
"lcomment"]))
3070 foreach (
$_POST[
"lcomment"] as $k => $v)
3072 $marks_obj =
new ilLPMarks($this->object->getId(), (int) $k);
3075 $marks_obj->update();
3079 $ilCtrl->redirect($this,
"showGradesOverview");
3088 include_once
"./Services/Notification/classes/class.ilNotification.php";
3091 include_once
"./Modules/Exercise/classes/class.ilExerciseMailNotification.php";
3094 $not->setAssignmentId($assignment_id);
3095 $not->setRefId($this->ref_id);
3096 $not->setRecipients($users);
3108 $this->tabs_gui->setTabActive(
"content");
3111 if (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0))
3116 $tpl =
new ilTemplate(
"tpl.exc_select_resource.html",
true,
true,
"Modules/Exercise");
3117 $tpl->setVariable(
"TXT_TITLE", $this->lng->txt(
"exc_create_blog").
": ".$this->ass->getTitle());
3119 $tpl->setVariable(
"FORM_ACTION", $this->ctrl->getFormAction($this));
3120 $tpl->setVariable(
"TXT_SUBMIT", $this->lng->txt(
"save"));
3121 $tpl->setVariable(
"TXT_CANCEL", $this->lng->txt(
"cancel"));
3122 $tpl->setVariable(
"CMD_SUBMIT",
"saveBlog");
3123 $tpl->setVariable(
"CMD_CANCEL",
"showOverview");
3127 $this->tpl->setContent($tpl->get());
3136 $this->tabs_gui->clearTargets();
3137 $this->tabs_gui->setBackTarget($this->lng->txt(
"back"), $this->ctrl->getLinkTarget($this,
"showOverview"));
3142 if (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0))
3147 $tpl =
new ilTemplate(
"tpl.exc_select_resource.html",
true,
true,
"Modules/Exercise");
3148 $tpl->setVariable(
"TXT_TITLE", $this->lng->txt(
"exc_select_blog").
": ".$this->ass->getTitle());
3150 $tpl->setVariable(
"FORM_ACTION", $this->ctrl->getFormAction($this));
3151 $tpl->setVariable(
"TXT_SUBMIT", $this->lng->txt(
"save"));
3152 $tpl->setVariable(
"TXT_CANCEL", $this->lng->txt(
"cancel"));
3153 $tpl->setVariable(
"CMD_SUBMIT",
"setSelectedBlog");
3154 $tpl->setVariable(
"CMD_CANCEL",
"showOverview");
3158 $this->tpl->setContent($tpl->get());
3171 $parent_node =
$_POST[
"node"];
3173 include_once
"Modules/Blog/classes/class.ilObjBlog.php";
3174 include_once
"Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php";
3175 include_once
"Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php";
3178 $blog->setTitle($this->object->getTitle().
" - ".$this->ass->getTitle());
3183 $node_id =
$tree->insertObject($parent_node, $blog->getId());
3186 $access_handler->setPermissions($parent_node, $node_id);
3188 $this->
object->addResourceObject($node_id, $this->ass->getId(), $ilUser->getId());
3191 $this->ctrl->redirect($this,
"showOverview");
3200 include_once
"Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php";
3203 if($node && $node[
"type"] ==
"blog")
3206 $this->
object->addResourceObject($node[
"wsp_id"], $this->ass->getId(), $ilUser->getId());
3209 $this->ctrl->setParameter($this,
"blog_id", $node[
"wsp_id"]);
3210 $this->ctrl->redirect($this,
"askDirectionSubmission");
3229 foreach($submitted as $item)
3231 $files[] = $item[
"returned_id"];
3241 $this->tabs_gui->setTabActive(
"content");
3244 include_once
"Services/Utilities/classes/class.ilConfirmationGUI.php";
3250 $this->ctrl->setParameter($this,
"blog_id",
$_REQUEST[
"blog_id"]);
3251 $txt = $this->lng->txt(
"exc_direct_submit_blog");
3255 $this->ctrl->setParameter($this,
"prtf_id",
$_REQUEST[
"prtf_id"]);
3256 $txt = $this->lng->txt(
"exc_direct_submit_portfolio");
3258 $conf->setFormAction($this->ctrl->getFormAction($this,
"directSubmit"));
3260 $conf->setHeaderText(
$txt);
3261 $conf->setConfirm($this->lng->txt(
"exc_direct_submit"),
"directSubmit");
3262 $conf->setCancel($this->lng->txt(
"cancel"),
"showOverview");
3264 $tpl->setContent($conf->getHTML());
3277 $this->ctrl->setParameter($this,
"blog_id",
"");
3283 $this->ctrl->setParameter($this,
"prtf_id",
"");
3294 $this->ctrl->redirect($this,
"showOverview");
3307 if($this->
object && $this->ass)
3309 $blog_id = $a_blog_id;
3311 include_once
"Modules/Blog/classes/class.ilObjBlogGUI.php";
3313 if($blog_gui->object)
3315 $file = $blog_gui->buildExportFile();
3323 "tmp_name" =>
$file,
3326 $this->
object->deliverFile($meta, $this->ass->getId(), $ilUser->getId(),
true);
3329 $this->
object->handleSubmission($this->ass->getId());
3347 if($this->
object && $this->ass)
3349 $prtf_id = $a_portfolio_id;
3351 include_once
"Modules/Portfolio/classes/class.ilObjPortfolio.php";
3353 if($prtf->getTitle())
3355 include_once
"Modules/Portfolio/classes/class.ilPortfolioHTMLExport.php";
3357 $file = $export->buildExportFile();
3365 "tmp_name" =>
$file,
3368 $this->
object->deliverFile($meta, $this->ass->getId(), $ilUser->getId(),
true);
3371 $this->
object->handleSubmission($this->ass->getId());
3385 $this->tabs_gui->clearTargets();
3386 $this->tabs_gui->setBackTarget($this->lng->txt(
"back"), $this->ctrl->getLinkTarget($this,
"showOverview"));
3391 if (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0))
3396 $tpl =
new ilTemplate(
"tpl.exc_select_resource.html",
true,
true,
"Modules/Exercise");
3398 include_once
"Modules/Portfolio/classes/class.ilObjPortfolio.php";
3402 $tpl->setCurrentBlock(
"item");
3403 foreach($portfolios as $portfolio)
3405 $tpl->setVariable(
"ITEM_ID", $portfolio[
"id"]);
3406 $tpl->setVariable(
"ITEM_TITLE", $portfolio[
"title"]);
3407 $tpl->parseCurrentBlock();
3411 $tpl->setVariable(
"TXT_TITLE", $this->lng->txt(
"exc_select_portfolio").
": ".$this->ass->getTitle());
3412 $tpl->setVariable(
"FORM_ACTION", $this->ctrl->getFormAction($this));
3413 $tpl->setVariable(
"TXT_SUBMIT", $this->lng->txt(
"save"));
3414 $tpl->setVariable(
"TXT_CANCEL", $this->lng->txt(
"cancel"));
3415 $tpl->setVariable(
"CMD_SUBMIT",
"setSelectedPortfolio");
3416 $tpl->setVariable(
"CMD_CANCEL",
"showOverview");
3420 $this->tpl->setContent($tpl->get());
3425 include_once
"Services/Form/classes/class.ilPropertyFormGUI.php";
3427 $form->setTitle($this->lng->txt(
"exc_create_portfolio").
": ".$this->ass->getTitle());
3428 $form->setFormAction($this->ctrl->getFormAction($this,
"setSelectedPortfolioTemplate"));
3432 $prtt->addOption(
new ilRadioOption($this->lng->txt(
"exc_create_portfolio_no_template"), -1));
3433 foreach($a_templates as $id => $title)
3437 $prtt->setValue(-1);
3438 $form->addItem($prtt);
3440 $form->addCommandButton(
"setSelectedPortfolioTemplate", $this->lng->txt(
"save"));
3441 $form->addCommandButton(
"showOverview", $this->lng->txt(
"cancel"));
3450 include_once
"Modules/Portfolio/classes/class.ilObjPortfolioTemplate.php";
3452 if(!
sizeof($templates))
3454 $this->ctrl->redirect($this,
"showOverview");
3457 $this->tabs_gui->clearTargets();
3458 $this->tabs_gui->setBackTarget($this->lng->txt(
"back"), $this->ctrl->getLinkTarget($this,
"showOverview"));
3465 $this->tpl->setContent($a_form->getHTML());
3472 include_once
"Modules/Portfolio/classes/class.ilObjPortfolioTemplate.php";
3474 if(!
sizeof($templates))
3476 $this->ctrl->redirect($this,
"showOverview");
3480 if($form->checkInput())
3482 $prtt = $form->getInput(
"prtt");
3483 if($prtt > 0 && array_key_exists($prtt, $templates))
3485 $title = $this->
object->getTitle().
" - ".$this->ass->getTitle();
3486 $this->ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"exc_id", $this->object->getRefId());
3487 $this->ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"ass_id", $this->ass->getId());
3488 $this->ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"pt", $title);
3489 $this->ctrl->setParameterByClass(
"ilObjPortfolioGUI",
"prtt", $prtt);
3490 $this->ctrl->redirectByClass(array(
"ilPersonalDesktopGUI",
"ilPortfolioRepositoryGUI",
"ilObjPortfolioGUI"),
"createPortfolioFromTemplate");
3499 $form->setValuesByPost();
3509 include_once
"Modules/Portfolio/classes/class.ilObjPortfolio.php";
3511 $portfolio->setTitle($this->object->getTitle().
" - ".$this->ass->getTitle());
3512 $portfolio->create();
3514 $this->
object->addResourceObject($portfolio->getId(), $this->ass->getId(), $ilUser->getId());
3517 $this->ctrl->redirect($this,
"showOverview");
3527 $this->
object->addResourceObject(
$_POST[
"item"], $this->ass->getId(), $ilUser->getId());
3530 $this->ctrl->setParameter($this,
"prtf_id",
$_POST[
"item"]);
3531 $this->ctrl->redirect($this,
"askDirectionSubmission");
3542 include_once
"Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php";
3543 include_once
"Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php";
3544 require_once
'Services/PersonalWorkspace/classes/class.ilWorkspaceExplorer.php';
3549 'exc_wspexpand',
$tree, $access_handler);
3550 $exp->setTargetGet(
'wsp_id');
3552 if($a_cmd ==
"selectBlog")
3554 $exp->removeAllFormItemTypes();
3555 $exp->addFilter(
'blog');
3556 $exp->addFormItemForType(
'blog');
3559 if(
$_GET[
'exc_wspexpand'] ==
'')
3562 $expanded =
$tree->readRootId();
3566 $expanded =
$_GET[
'exc_wspexpand'];
3569 $exp->setExpandTarget($this->ctrl->getLinkTarget($this, $a_cmd));
3570 $exp->setPostVar(
'node');
3571 $exp->setExpand($expanded);
3574 return $exp->getOutput();
3580 $this->tabs_gui->activateTab(
"settings");
3581 $this->tabs_gui->activateSubTab(
"certificate");
3583 include_once
"./Services/Certificate/classes/class.ilCertificateGUI.php";
3584 include_once
"./Modules/Exercise/classes/class.ilExerciseCertificateAdapter.php";
3586 $output_gui->certificateEditor();
3593 if($this->object->hasUserCertificate($ilUser->getId()))
3599 include_once
"./Services/Certificate/classes/class.ilCertificate.php";
3600 include_once
"./Modules/Exercise/classes/class.ilExerciseCertificateAdapter.php";
3602 $certificate->outCertificate(array(
"user_id" => $ilUser->getId()));
3613 $this->ctrl->redirect($this,
"submissionScreen");
3616 $this->tabs_gui->clearTargets();
3617 $ilHelp->setScreenIdComponent(
"exc");
3618 $this->tabs_gui->setBackTarget($this->lng->txt(
"back"),
3619 $this->ctrl->getLinkTarget($this, $a_back_cmd));
3623 $this->tabs_gui->addTab(
"submissions", $this->lng->txt(
"files"),
3624 $this->ctrl->getLinkTarget($this,
"submissionScreen"));
3626 $this->tabs_gui->addTab(
"team", $this->lng->txt(
"exc_team"),
3627 $this->ctrl->getLinkTarget($this,
"submissionScreenTeam"));
3629 $this->tabs_gui->addTab(
"log", $this->lng->txt(
"exc_team_log"),
3630 $this->ctrl->getLinkTarget($this,
"submissionScreenTeamLog"));
3632 $this->tabs_gui->activateTab(
"team");
3634 $team_id = $this->ass->getTeamId($ilUser->getId());
3638 $team_id = $this->ass->getTeamId($ilUser->getId(),
true);
3641 if (!$this->object->members_obj->isAssigned($ilUser->getId()))
3643 $this->
object->members_obj->assignMember($ilUser->getId());
3651 $ilHelp->setScreenId(
"submissions");
3670 $read_only = (mktime() > $this->ass->getDeadline() && ($this->ass->getDeadline() != 0));
3678 $this->ctrl->setParameterByClass(
'ilRepositorySearchGUI',
'ctx', 1);
3679 $this->ctrl->setParameter($this,
'ctx', 1);
3682 include_once
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
3687 'auto_complete_name' => $this->lng->txt(
'user'),
3688 'submit_name' => $this->lng->txt(
'add'),
3689 'add_search' =>
true,
3690 'add_from_container' => $this->
object->getRefId()
3695 include_once
"Modules/Exercise/classes/class.ilExAssignmentTeamTableGUI.php";
3699 $this->tpl->setContent($tbl->getHTML());
3708 if(!count($a_user_ids))
3714 $team_id = $this->ass->getTeamId($ilUser->getId());
3715 $has_files = $this->ass->getDeliveredFiles($this->object->getId(),
3716 $this->ass->getId(),
3718 $all_members = $this->ass->getMembersOfAllTeams();
3719 $members = $this->ass->getTeamMembers($team_id);
3721 foreach($a_user_ids as $user_id)
3723 if(!in_array($user_id, $all_members))
3725 $this->ass->addTeamMember($team_id, $user_id, $this->ref_id);
3728 if (!$this->object->members_obj->isAssigned($user_id))
3730 $this->
object->members_obj->assignMember($user_id);
3742 else if(!in_array($user_id, $members))
3749 $this->ctrl->redirect($this,
"submissionScreenTeam");
3761 $team_id = $this->ass->getTeamId($ilUser->getId());
3762 $members = $this->ass->getTeamMembers($team_id);
3764 $ids = (bool)$a_full_delete
3771 $this->ctrl->redirect($this,
"submissionScreenTeam");
3774 $team_deleted =
false;
3775 if(
sizeof($members) <=
sizeof($ids))
3777 if(
sizeof($members) == 1 && $members[0] == $ilUser->getId())
3785 $this->ctrl->redirect($this,
"submissionScreenTeam");
3792 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
3794 $cgui->setFormAction($this->ctrl->getFormAction($this));
3795 $cgui->setHeaderText($this->lng->txt(
"exc_team_member_remove_sure"));
3796 $cgui->setCancel($this->lng->txt(
"cancel"),
"submissionScreenTeam");
3797 $cgui->setConfirm($this->lng->txt(
"remove"),
"removeTeamMember");
3800 $this->ass->getId(), $ilUser->getId());
3802 include_once
"Services/User/classes/class.ilUserUtil.php";
3804 foreach($ids as $id)
3807 foreach ($files as
$file)
3809 if($file[
"owner_id"] == $id)
3811 $details[] = $file[
"filetitle"];
3815 if(
sizeof($details))
3817 $uname .=
": ".implode(
", ", $details);
3819 $cgui->addItem(
"id[]", $id, $uname);
3822 $tpl->setContent($cgui->getHTML());
3828 $team_id = $this->ass->getTeamId($ilUser->getId());
3829 $members = $this->ass->getTeamMembers($team_id);
3831 $ids = (bool)$a_full_delete
3838 $this->ctrl->redirect($this,
"submissionScreenTeam");
3841 $team_deleted = (bool)$a_full_delete;
3844 if(
sizeof($members) <=
sizeof($ids))
3846 if(
sizeof($members) == 1 && $members[0] == $ilUser->getId())
3848 $team_deleted =
true;
3853 $this->ctrl->redirect($this,
"submissionScreenTeam");
3858 foreach($ids as $user_id)
3860 $this->ass->removeTeamMember($team_id, $user_id, $this->ref_id);
3872 $this->ctrl->redirect($this,
"submissionScreenTeam");
3876 $this->ctrl->redirect($this,
"showOverview");
3883 $this->tabs_gui->activateTab(
"log");
3885 include_once
"Modules/Exercise/classes/class.ilExAssignmentTeamLogTableGUI.php";
3889 $this->tpl->setContent($tbl->getHTML());
3894 if(isset(
$_GET[
"lmem"]))
3896 $user_id =
$_GET[
"lmem"];
3901 $user_id =
$_GET[
"lpart"];
3902 $cmd =
"showParticipant";
3906 $this->ass->getTeamId($user_id,
true);
3909 $this->ctrl->redirect($this,
$cmd);
3915 $this->tabs_gui->activateTab(
"grades");
3917 if(isset(
$_GET[
"lmem"]))
3921 $this->tabs_gui->setBackTarget($this->lng->txt(
"back"),
3922 $this->ctrl->getLinkTarget($this,
"members"));
3926 $this->ctrl->saveParameter($this,
"lmem");
3932 $this->tabs_gui->setBackTarget($this->lng->txt(
"back"),
3933 $this->ctrl->getLinkTarget($this,
"showParticipant"));
3937 $this->ctrl->saveParameter($this,
"lpart");
3940 include_once
"Modules/Exercise/classes/class.ilExAssignmentTeamLogTableGUI.php";
3944 $this->tpl->setContent($tbl->getHTML());
3951 include_once
"Services/Form/classes/class.ilPropertyFormGUI.php";
3953 $form->setTitle($this->lng->txt(
"exc_assignment").
" \"".$a_ass->
getTitle().
"\"");
3960 $form->addItem($text);
3963 $text->setUseRte(
true);
3964 $text->setRTESupport($ilUser->getId(),
"exca~",
"exc_ass");
3967 $text->disableButtons(array(
3984 $form->setFormAction($ilCtrl->getFormAction($this,
"updateAssignmentText"));
3985 $form->addCommandButton(
"updateAssignmentTextAndReturn", $this->lng->txt(
"save_return"));
3986 $form->addCommandButton(
"updateAssignmentText", $this->lng->txt(
"save"));
3991 $form->addItem($text);
3993 if(!$a_peer_review_cmd)
3995 $form->setFormAction($ilCtrl->getFormAction($this,
"showOverview"));
4000 $rating->
setHtml($a_peer_rating_html);
4001 $form->addItem($rating);
4006 $form->addItem($comm);
4008 $form->setFormAction($ilCtrl->getFormAction($this, $a_peer_review_cmd));
4009 $form->addCommandButton($a_peer_review_cmd, $this->lng->txt(
"save"));
4012 $form->addCommandButton($a_cancel_cmd, $this->lng->txt(
"cancel"));
4023 ($this->ass->getDeadline() && $this->ass->getDeadline() - time() < 0))
4025 $ilCtrl->redirect($this,
"showOverview");
4033 $this->tabs_gui->clearTargets();
4034 $this->tabs_gui->setBackTarget($this->lng->txt(
"back"),
4035 $this->ctrl->getLinkTarget($this,
"showOverview"));
4038 $ilHelp->setScreenIdComponent(
"exc");
4039 $ilHelp->setScreenId(
"text_submission");
4041 if($this->ass->getDeadline())
4054 $files = array_shift($files);
4055 if(trim($files[
"atext"]))
4057 $text = $a_form->getItemByPostVar(
"atxt");
4064 $this->tpl->setContent($a_form->getHTML());
4076 $times_up = ($this->ass->getDeadline() && $this->ass->getDeadline() - time() < 0);
4086 $ilCtrl->redirect($this,
"showOverview");
4095 include_once(
"./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php");
4096 $rte = $form->getItemByPostVar(
"atxt");
4099 if($form->checkInput())
4101 $text = trim($form->getInput(
"atxt"));
4104 $this->ass->getId(), $ilUser->getId());
4106 $returned_id = $this->
object->updateTextSubmission(
4107 $this->ass->getExerciseId(),
4108 $this->ass->getId(),
4120 $this->
object->handleSubmission($this->ass->getId());
4124 include_once
"Services/MediaObjects/classes/class.ilObjMediaObject.php";
4126 foreach(
$mobs as $mob)
4139 $ilCtrl->redirect($this,
"showOverview");
4143 $ilCtrl->redirect($this,
"editAssignmentText");
4147 $form->setValuesByPost();
4158 $ilCtrl->redirect($this,
"showOverview");
4164 if((
int)
$_GET[
"grd"])
4168 if((
int)$_GET[
"grd"] == 1)
4170 $user_id = (int)$_GET[
"member_id"];
4171 $cancel_cmd =
"members";
4175 $user_id = (int)$_GET[
"part_id"];
4176 $cancel_cmd =
"showParticipant";
4180 else if($this->ass->hasPeerReviewAccess((
int)$_GET[
"member_id"]))
4184 $user_id = (int)$_GET[
"member_id"];
4185 $cancel_cmd =
"editPeerReview";
4188 $add_rating =
"updatePeerReviewText";
4189 $ilCtrl->setParameter($this,
"peer_id", $user_id);
4190 include_once
'./Services/Rating/classes/class.ilRatingGUI.php';
4192 $rating->setObject($this->ass->getId(),
"ass", $user_id,
"peer");
4193 $rating->setUserId($ilUser->getId());
4194 $rating =
'<div id="rtr_widget">'.$rating->getHTML(
false,
true,
4195 "il.ExcPeerReview.saveSingleRating(".$user_id.
", %rating%)").
'</div>';
4197 $ilCtrl->setParameter($this,
"ssrtg", 1);
4198 $tpl->addJavaScript(
"Modules/Exercise/js/ilExcPeerReview.js");
4199 $tpl->addOnLoadCode(
"il.ExcPeerReview.setAjax('".
4200 $ilCtrl->getLinkTarget($this,
"updatePeerReviewComments",
"",
true,
false).
4202 $ilCtrl->setParameter($this,
"ssrtg",
"");
4209 $user_id = $ilUser->getId();
4210 $cancel_cmd =
"showOverview";
4213 $this->tabs_gui->clearTargets();
4214 $this->tabs_gui->setBackTarget($this->lng->txt(
"back"), $this->ctrl->getLinkTarget($this, $cancel_cmd));
4218 if(($user_id != $ilUser->getId() || (bool)$_GET[
"grd"]))
4220 if(!stristr($cancel_cmd,
"peer"))
4222 include_once
"Services/User/classes/class.ilUserUtil.php";
4227 if(!$this->ass->hasPeerReviewPersonalized())
4229 $a_form->setDescription($lng->txt(
"id").
": ".(int)$_GET[
"seq"]);
4233 include_once
"Services/User/classes/class.ilUserUtil.php";
4237 foreach($this->ass->getPeerReviewsByPeerId($user_id) as $item)
4239 if($item[
"giver_id"] == $ilUser->getId())
4241 $a_form->getItemByPostVar(
"comm")->setValue($item[
"pcomment"]);
4251 $files = array_shift($files);
4252 if(trim($files[
"atext"]))
4254 $text = $a_form->getItemByPostVar(
"atxt");
4260 $this->tpl->setContent($a_form->getHTML());
4276 $ilCtrl->redirect($this,
"member");
4279 $ilTabs->clearTargets();
4280 $ilTabs->setBackTarget($lng->txt(
"back"),
4281 $ilCtrl->getLinkTarget($this,
"members"));
4283 if($a_show_peer_review)
4285 $cmd =
"listTextAssignmentWithPeerReview";
4289 $cmd =
"listTextAssignment";
4291 include_once
"Modules/Exercise/classes/class.ilExAssignmentListTextTableGUI.php";
4293 $tpl->setContent($tbl->getHTML());
4299 return ($this->ass &&
4300 $this->ass->getPeerReview() &&
4301 $this->ass->getDeadline() &&
4302 $this->ass->getDeadline() < time() &&
4303 (!$this->ass->getPeerReviewDeadline() ||
4304 $this->ass->getPeerReviewDeadline() > time()));
4313 $ilCtrl->redirect($this,
"showOverview");
4318 $this->tabs_gui->clearTargets();
4319 $this->tabs_gui->setBackTarget($this->lng->txt(
"back"), $this->ctrl->getLinkTarget($this,
"showOverview"));
4321 $peer_items = $this->ass->getPeerReviewsByGiver($ilUser->getId());
4322 if(!
sizeof($peer_items))
4325 $ilCtrl->redirect($this,
"showOverview");
4331 $dl = $this->ass->getPeerReviewDeadline();
4332 if(!$dl || $dl < time())
4334 ilUtil::sendInfo(sprintf($this->lng->txt(
"exc_peer_review_missing_info"), $missing));
4338 ilUtil::sendInfo(sprintf($this->lng->txt(
"exc_peer_review_missing_info_deadline"), $missing,
4343 $tpl->addJavaScript(
"Modules/Exercise/js/ilExcPeerReview.js");
4344 $tpl->addOnLoadCode(
"il.ExcPeerReview.setAjax('".
4345 $ilCtrl->getLinkTarget($this,
"updatePeerReviewComments",
"",
true,
false).
4348 include_once
"Modules/Exercise/classes/class.ilExAssignmentPeerReviewTableGUI.php";
4351 $tpl->setContent($tbl->getHTML());
4361 $ilCtrl->redirect($this,
"showOverview");
4366 $peer_items = $this->ass->getPeerReviewsByGiver($ilUser->getId());
4367 if(!
sizeof($peer_items))
4370 $ilCtrl->redirect($this,
"showOverview");
4373 foreach(
$_POST[
"pc"] as $idx => $value)
4375 $parts = explode(
"__", $idx);
4376 if($parts[0] == $ilUser->getId())
4383 $ilCtrl->redirect($this,
"editPeerReview");
4392 !$ilCtrl->isAsynch())
4397 $rating_peer_id =
$_POST[
"rating_peer_id"];
4398 $giver_id = $ilUser->getId();
4401 include_once
'./Services/Rating/classes/class.ilRating.php';
4403 $rating_peer_id,
"peer", $giver_id,
$_POST[
"rating"]);
4406 foreach(
$_POST[
"pc"] as $peer_id => $value)
4417 $ilCtrl->setParameter($this->parent_obj,
"peer_id", $rating_peer_id);
4419 include_once
'./Services/Rating/classes/class.ilRatingGUI.php';
4421 $rating->setObject($this->ass->getId(),
"ass", $rating_peer_id,
"peer");
4422 $rating->setUserId($giver_id);
4426 echo $rating->getHTML(
false,
true,
4427 "il.ExcPeerReview.saveComments(".$rating_peer_id.
", %rating%)");
4431 echo
'<div id="rtr_widget">'.$rating->getHTML(
false,
true,
4432 "il.ExcPeerReview.saveSingleRating(".$rating_peer_id.
", %rating%)").
'</div>';
4435 echo $tpl->getOnLoadCodeForAsynch();
4446 $ilCtrl->redirect($this,
"editPeerReview");
4452 $ilCtrl->redirect($this,
"editPeerReview");
4460 !$this->ass->getPeerReview() ||
4461 !$this->ass->hasPeerReviewFileUpload() ||
4465 $ilCtrl->redirect($this,
"showOverview");
4468 $parts = explode(
"__",
$_GET[
"fu"]);
4469 $giver_id = $parts[0];
4470 $peer_id = $parts[1];
4472 if($giver_id == $ilUser->getId() ||
4473 $peer_id == $ilUser->getId())
4482 $peer_items = $this->ass->getPeerReviewsByPeerId($peer_id,
true);
4483 if(
sizeof($peer_items))
4485 foreach($peer_items as $item)
4487 if($item[
"giver_id"] == $giver_id)
4489 $files = $this->ass->getPeerUploadFiles($peer_id, $giver_id);
4490 foreach($files as
$file)
4492 if(md5($file) == trim(
$_GET[
"fuf"]))
4502 $ilCtrl->redirect($this,
"showOverview");
4510 !$this->ass->getPeerReview() ||
4511 !$this->ass->getDeadline() ||
4512 $this->ass->getDeadline()-time() > 0)
4514 $ilCtrl->redirect($this,
"showOverview");
4518 if((
int)
$_GET[
"grd"])
4522 if((
int)$_GET[
"grd"] == 1)
4524 $user_id = (int)$_GET[
"member_id"];
4525 $cancel_cmd =
"members";
4529 $user_id = (int)$_GET[
"part_id"];
4530 $cancel_cmd =
"showParticipant";
4538 $user_id = $ilUser->getId();
4539 $cancel_cmd =
"showOverview";
4542 $this->tabs_gui->clearTargets();
4543 $this->tabs_gui->setBackTarget($this->lng->txt(
"back"), $this->ctrl->getLinkTarget($this, $cancel_cmd));
4545 $peer_items = $this->ass->getPeerReviewsByPeerId($user_id,
true);
4546 if(!
sizeof($peer_items))
4550 $ilCtrl->redirect($this,
"showOverview");
4553 include_once
"Modules/Exercise/classes/class.ilExAssignmentPeerReviewTableGUI.php";
4555 $this->ass, $user_id, $peer_items,
"exc_peer_review_show", $cancel_cmd,
true);
4557 $tpl->setContent($tbl->getHTML());
4565 !$this->ass->getPeerReview())
4567 $ilCtrl->redirect($this,
"showOverview");
4572 $ilTabs->clearTargets();
4573 $ilTabs->setBackTarget($this->lng->txt(
"back"),
4574 $ilCtrl->getLinkTarget($this,
"listAssignments"));
4576 include_once
"Modules/Exercise/classes/class.ilExAssignmentPeerReviewOverviewTableGUI.php";
4581 $panel_data = $tbl->getPanelInfo();
4582 if(
sizeof($panel_data))
4584 $ptpl =
new ilTemplate(
"tpl.exc_peer_review_overview_panel.html",
true,
true,
"Modules/Exercise");
4585 foreach($panel_data as $item)
4587 $ptpl->setCurrentBlock(
"user_bl");
4588 foreach($item[
"value"] as $user)
4590 $ptpl->setVariable(
"USER", $user);
4591 $ptpl->parseCurrentBlock();
4594 $ptpl->setCurrentBlock(
"item_bl");
4595 $ptpl->setVariable(
"TITLE", $item[
"title"]);
4596 $ptpl->parseCurrentBlock();
4599 include_once
"Services/UIComponent/Panel/classes/class.ilPanelGUI.php";
4601 $panel->setHeading($this->lng->txt(
"exc_peer_review_overview_invalid_users"));
4602 $panel->setBody($ptpl->get());
4603 $panel = $panel->getHTML();
4606 $tpl->setContent($tbl->getHTML().$panel);
4614 !$this->ass->getPeerReview())
4616 $ilCtrl->redirect($this,
"showOverview");
4621 $ilTabs->clearTargets();
4623 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
4625 $cgui->setFormAction($ilCtrl->getFormAction($this));
4626 $cgui->setHeaderText(sprintf($this->lng->txt(
"exc_peer_review_reset_sure"), $this->ass->getTitle()));
4627 $cgui->setCancel($this->lng->txt(
"cancel"),
"showPeerReviewOverview");
4628 $cgui->setConfirm($this->lng->txt(
"delete"),
"resetPeerReview");
4630 $tpl->setContent($cgui->getHTML());
4638 $this->ass->getPeerReview())
4641 $this->ass->resetPeerReviews();
4646 $ilCtrl->redirect($this,
"showPeerReviewOverview");
4656 !$this->ass->getFeedbackFile() ||
4657 ($needs_dl && !$this->ass->getDeadline()) ||
4658 ($needs_dl && $this->ass->getDeadline() > time()) ||
4661 $ilCtrl->redirect($this,
"showOverview");
4675 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
4677 $form->addCommandButton(
"uploadMultiFeedback", $lng->txt(
"upload"));
4678 $form->addCommandButton(
"members", $lng->txt(
"cancel"));
4681 $fi =
new ilFileInputGUI($lng->txt(
"exc_multi_feedback_file"),
"mfzip");
4683 $fi->setRequired(
true);
4684 $form->addItem($fi);
4687 $form->setFormAction($this->ctrl->getFormAction($this,
"uploadMultiFeedback"));
4700 global $ilTabs, $ilToolbar,
$lng,
$tpl;
4702 $ass_id = (int)
$_GET[
"ass_id"];
4706 $ilTabs->activateTab(
"grades");
4711 include_once(
"./Services/UIComponent/Button/classes/class.ilLinkButton.php");
4713 $button->setCaption(
"exc_download_zip_structure");
4714 $button->setUrl($this->ctrl->getLinkTarget($this,
"downloadMultiFeedbackZip"));
4715 $button->setOmitPreventDoubleSubmission(
true);
4716 $ilToolbar->addButtonInstance($button);
4723 $tpl->setContent($a_form->getHTML());
4732 $ass->sendMultiFeedbackStructureFile($this->
object);
4740 $ass_id = (int)
$_GET[
"ass_id"];
4744 if($form->checkInput())
4750 $this->ctrl->redirect($this,
"showMultiFeedbackConfirmationTable");
4755 $this->ctrl->redirect($this,
"showMultiFeedback");
4759 $form->setValuesByPost();
4771 global $ilTabs,
$tpl;
4773 $ilTabs->activateTab(
"grades");
4778 include_once(
"./Modules/Exercise/classes/class.ilFeedbackConfirmationTable2GUI.php");
4780 $tpl->setContent(
$tab->getHTML());
4790 $ass->clearMultiFeedbackDirectory();
4792 $this->ctrl->redirect($this,
"members");
4802 $ass->saveMultiFeedbackFiles(
$_POST[
"file"], $this->
object);
4805 $this->ctrl->redirect($this,
"members");
4815 $res = array(
"result"=>
false);
4817 if($this->ctrl->isAsynch())
4819 $ass_id = (int)
$_POST[
"ass_id"];
4820 $user_id = (int)
$_POST[
"mem_id"];
4823 if($ass_id && $user_id)
4825 include_once
"Modules/Exercise/classes/class.ilExAssignment.php";
4830 $team_id = $this->ass->getTeamId($user_id);
4831 $user_ids = $this->ass->getTeamMembers($team_id);
4835 $user_ids = array($user_id);
4839 $all_members = $all_members->getMembers();
4841 $reci_ids = array();
4842 foreach($user_ids as $user_id)
4844 if(in_array($user_id, $all_members))
4851 $reci_ids[] = $user_id;
4856 if(
sizeof($reci_ids))
4859 $this->
object->sendFeedbackFileNotification(null, $reci_ids,
4867 echo(json_encode(
$res));
4877 if($this->ass->getDeadline() == 0 ||
4878 mktime() < $this->ass->getDeadline())
4883 $ilTabs->activateTab(
"content");
4886 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
4888 $form->setTitle($lng->txt(
"exc_team_assignment_adopt_user"));
4889 $form->setFormAction($ilCtrl->getFormAction($this,
"createAdoptedTeam"));
4895 $teams->addOption(
new ilRadioOption($lng->txt(
"exc_team_assignment_adopt_none_user"), -1));
4899 include_once
"Services/User/classes/class.ilUserUtil.php";
4904 foreach($item[
"user_team"] as $user_id)
4908 if(array_key_exists($user_id, $current_map))
4910 $members[$user_id] .=
" (".$lng->txt(
"exc_team_assignment_adopt_already_assigned").
")";
4918 $members = implode(
"<br />", $members);
4920 $option->setInfo($members);
4923 $option->setDisabled(
true);
4925 $teams->addOption($option);
4928 $form->addItem($teams);
4930 $form->addCommandButton(
"createAdoptedTeam", $lng->txt(
"save"));
4931 $form->addCommandButton(
"showOverview", $lng->txt(
"cancel"));
4933 $tpl->setContent($form->getHTML());
4937 $this->ass->getTeamId($ilUser->getId(),
true);
4940 if (!$this->object->members_obj->isAssigned($ilUser->getId()))
4942 $this->
object->members_obj->assignMember($ilUser->getId());
4948 $ilCtrl->redirect($this,
"showOverview");
4957 if($this->ass->getDeadline() == 0 ||
4958 mktime() < $this->ass->getDeadline())
4960 $src_ass_id = (int)
$_POST[
"ass_adpt"];
4963 $this->ass->adoptTeams($src_ass_id, $ilUser->getId(),
$this->ref_id);
4967 $this->ass->getTeamId($ilUser->getId(),
true);
4973 $ilCtrl->redirect($this,
"showOverview");
4984 $ilCtrl->redirect($this,
"listAssignments");
4987 $ilTabs->activateTab(
"content");
4990 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
4992 $form->setTitle($lng->txt(
"exc_team_assignment_adopt"));
4993 $form->setFormAction($ilCtrl->getFormAction($this,
"adoptTeamAssignments"));
4998 if(array_key_exists($this->ass->getId(),
$options))
5000 $ilCtrl->redirect($this,
"listAssignments");
5006 $teams->addOption(
new ilRadioOption($lng->txt(
"exc_team_assignment_adopt_none"), -1));
5011 $option->setInfo($lng->txt(
"exc_team_assignment_adopt_teams").
": ".$item[
"teams"]);
5012 $teams->addOption($option);
5015 $form->addItem($teams);
5017 $form->addCommandButton(
"adoptTeamAssignments", $lng->txt(
"save"));
5018 $form->addCommandButton(
"listAssignments", $lng->txt(
"cancel"));
5020 $tpl->setContent($form->getHTML());
5029 $src_ass_id = (int)
$_POST[
"ass_adpt"];
5031 if($this->ass && $src_ass_id > 0)
5034 $this->ass->adoptTeams($src_ass_id);
5039 $ilCtrl->redirect($this,
"listAssignments");
static _getMediaObjects($a_text, $a_direction=0)
Returns all media objects found in the passed string.
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
getPeerReview()
Get peer review status.
listAssignmentsObject()
List assignments.
static _lookupName($a_user_id)
lookup user name
addAssignmentObject()
Create assignment.
initAssignmentForm($a_mode="create")
Init assignment form.
__getMembersOfObject($a_result, $a_type)
adoptTeamAssignmentsObject()
uploadMultiFeedbackObject()
Upload multi feedback file.
This class represents an option in a radio group.
listTextAssignmentObject($a_show_peer_review=false)
uploadZipFormObject()
Display form for zip file upload.
removeTeamMemberObject($a_full_delete=false)
static hasNotification($type, $user_id, $id)
Check notification status for object and user.
orderAssByDeadline($a_ex_id)
Order assignments by deadline date.
editAssignmentTextObject(ilPropertyFormGUI $a_form=null)
selectAssignmentObject()
Select assignment.
const FEEDBACK_DATE_SUBMISSION
setTitle($a_val)
Set title.
static getAssignmentDataOfExercise($a_exc_id)
Get assignments data of an exercise in an array.
updatePeerReviewTextObject()
static getNumberOfMissingFeedbacks($a_ass_id, $a_min)
updateCommentForUser($a_ass_id, $a_user_id, $a_value)
Update comment.
getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
saveMultiFeedbackObject()
Save multi feedback.
List all log entries of team.
updatePeerReviewCommentsObject()
const TYPE_SUBMISSION_UPLOAD
Portfolio HTML exporter class.
submitBlog($a_blog_id)
Submit blog for assignment.
saveCommentForLearnersObject()
Save comment for learner (asynch)
getAllDeliveredFiles($a_exc_id, $a_ass_id)
was: getAllDeliveredFiles()
GUI class for the workflow of copying objects.
getAssignmentValues()
Get current values for assignment from.
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data
ilObjExerciseGUI($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
Constructor public.
countMandatory($a_ex_id)
Order assignments by deadline date.
_lookupMark($a_usr_id, $a_obj_id)
membersObject()
All participants and submission of one assignment.
updateStatusTimeOfUser($a_ass_id, $a_user_id)
was: updateStatusTimeForMember($a_user_id)
updateMembersObject()
update data of members table
getId()
Get assignment id.
createSingleMemberTeamObject()
static getFiles($a_exc_id, $a_ass_id)
Get files.
static getPortfoliosOfUser($a_user_id)
Get views of user.
Class ilObject Basic functions for all objects.
addSubmissionSubTabs($a_activate)
adds tabs to tab gui object
downloadFeedbackFileObject()
Download feedback file.
showMultiFeedbackConfirmationTableObject()
Show multi feedback confirmation table.
addTeamMemberActionObject($a_user_ids=array())
Exercise participant table.
updateCustom(ilPropertyFormGUI $a_form)
initPortfolioTemplateForm(array $a_templates)
deliverFileObject()
Upload files.
saveAssignmentOrderObject()
Save assignments order.
initUploadForm()
Init upload form form.
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
addUserFromAutoCompleteObject()
Add user as member.
setSelectedPortfolioObject()
getDeadline()
Get deadline (timestamp)
downloadMultiFeedbackZipObject()
Download multi-feedback structrue file.
downloadAllDeliveredFiles($a_exc_id, $a_ass_id, $members)
Download all submitted files of an assignment (all user)
static _tracProgress($a_user_id, $a_obj_id, $a_ref_id, $a_obj_type='')
_isComplete($adapter)
Checks the status of the certificate.
Access handler for personal workspace.
initMultiFeedbackForm($a_ass_id)
downloadSelectedFiles($a_exc_id, $a_ass_id, $a_user_id, $array_file_id)
was: downloadSelectedFiles($array_file_id,$a_user_id)?
static _lookupId($a_user_str)
lookup id by login
static shortenText($a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
ilObjectGUI($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=true)
Constructor public.
static _lookupTitle($a_id)
lookup object title
static writeRatingForUserAndObject($a_obj_id, $a_obj_type, $a_sub_obj_id, $a_sub_obj_type, $a_user_id, $a_rating, $a_category_id=0)
Write rating for a user and an object.
confirmAssignmentsDeletionObject()
Confirm assignments deletion.
saveAssOrderOfExercise($a_ex_id, $a_order)
Save ordering of all assignments of an exercise.
lookupMarkOfUser($a_ass_id, $a_user_id)
Lookup user mark.
getEditFormCustomValues(array &$a_values)
Get values for properties form.
submissionScreenTeamObject()
Displays a form which allows members to manage team uploads.
downloadNewReturnedObject()
Download newly submitted files of user.
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static _replaceMediaObjectImageSrc($a_text, $a_direction=0, $nic=IL_INST_ID)
replaces image source from mob image urls with the mob id or replaces mob id with the correct image s...
deleteAssignmentsObject()
Delete assignments.
static getNotificationsForObject($type, $id, $page_id=null, $ignore_threshold=false)
Get all users for given object.
Tree handler for personal workspace.
static _goto($a_target, $a_raw)
redirect script
deliverReturnedFiles($a_exc_id, $a_ass_id, $a_user_id, $a_only_new=false, $a_peer_review_mask_filename=false)
was: deliverReturnedFiles($a_member_id, $a_only_new = false)
static getNamePresentation($a_user_id, $a_user_image=false, $a_profile_link=false, $a_profile_back_link="", $a_force_first_lastname=false, $a_omit_login=false, $a_sortable=true)
Default behaviour is:
addContentSubTabs($a_activate)
Add subtabs of content view.
updateAssignmentObject()
Update assignment.
downloadObject()
User downloads (own) submitted files.
selectParticipantObject()
Select participant.
downloadPeerReviewObject()
showOverviewObject()
Show overview of assignments.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
GUI clas for exercise assignments.
cancelMultiFeedbackObject()
Cancel Multi Feedback.
setTableId($a_val)
Set table id.
List all peers to be reviewed for user.
static getTeamMembersByAssignmentId($a_ass_id, $a_user_id)
Find team members by assignment and team member.
Export User Interface Class.
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
showPersonalPeerReviewObject()
confirmResetPeerReviewObject()
updateMarkOfUser($a_ass_id, $a_user_id, $a_value)
Update mark.
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually...
handleDisabledAssignmentFields(ilExAssignment $a_ass, ilPropertyFormGUI $a_form)
updateStatusFeedbackForUser($a_ass_id, $a_user_id, $a_status)
was: setStatusFeedbackForMember($a_member_id,$a_status)
if(!is_array($argv)) $options
hasPeerReviewPersonalized()
Get peer review personalized status.
getDeliveredFiles($a_exc_id, $a_ass_id, $a_user_id, $a_filter_empty_filename=false)
was: getDeliveredFiles($a_member_id)
sendMembersObject()
Send assignment per mail to participants.
__filterAssignedUsers($a_result)
static formSelect($selected, $varname, $options, $multiple=false, $direct_text=false, $size="0", $style_class="", $attribs="", $disabled=false)
Builds a select form field with options and shows the selected option first.
List all team members of an assignment.
listTextAssignmentWithPeerReviewObject()
redirectFeedbackMailObject()
set feedback status for member and redirect to mail screen
Class ilObjectGUI Basic methods of all Output classes.
static _lookupObjId($a_id)
special template class to simplify handling of ITX/PEAR
askDirectionSubmissionObject()
saveAssignmentObject()
Save assignment.
static setNotification($type, $user_id, $id, $status=true)
Set notification status for object and user.
This class represents a text property in a property form.
static formatDate(ilDateTime $date)
Format a date public.
setCols($a_cols)
Set Cols.
GUI class to create PDF certificates.
createPortfolioTemplateObject(ilPropertyFormGUI $a_form=null)
downloadReturnedObject()
Download submitted files of user.
removeExistingSubmissions()
remove existing files/submissions for assignment
_writeReturned($a_obj_id, $a_user_id, $a_status)
Write returned status.
_lookupLogin($a_user_id)
lookup login
static getLastSubmission($a_ass_id, $a_user_id)
Get the date of the last submission of a user for the assignment.
updateTutorDownloadTime($a_exc_id, $a_ass_id, $a_user_id)
was: updateTutorDownloadTime($member_id)
static getAvailablePortfolioTemplates($a_permission="read")
setMaxLength($a_maxlength)
Set Max Length.
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
__getDateSelect($a_type, $a_selected)
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
submissionScreenObject()
Displays a form which allows members to deliver their solutions.
static deliverFile($a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
initZipUploadForm()
Init upload form form.
const TYPE_EXERCISE_SUBMISSION
showGradesOverviewObject()
Show grades overview.
prepareOutput()
prepare output
static _lookupType($a_id, $a_reference=false)
lookup object type
getMandatory()
Get mandatory.
getPeerReviewMin()
Get peer review minimum.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
updateNoticeForUser($a_ass_id, $a_user_id, $a_notice)
was: setNoticeForMember($a_member_id,$a_notice)
static stripSlashesArray($a_arr, $a_strip_html=true, $a_allow="")
Strip slashes from array.
exportExcelObject()
Export as excel.
createAdoptedTeamObject()
afterSave(ilObject $a_new_object)
deleteDeliveredFiles($a_exc_id, $a_ass_id, $file_id_array, $a_user_id)
was: deleteDeliveredFiles($file_id_array, $a_member_id)
downloadFileObject()
Download assignment file.
submitPortfolio($a_portfolio_id)
Submit portfolio for assignment.
const FEEDBACK_DATE_DEADLINE
listPublicSubmissionsObject()
List all submissions.
renderWorkspaceExplorer($a_cmd)
static getInstance()
Get instance.
_lookupComment($a_usr_id, $a_obj_id)
initAssignmentTextForm(ilExAssignment $a_ass, $a_read_only=false, $a_cancel_cmd="showOverview", $a_peer_review_cmd=null, $a_peer_rating_html=null)
initTeamSubmission($a_back_cmd, $a_mandatory_team=true)
__showObjectSelect($a_result, $a_type)
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array())
fill toolbar with
saveStatusObject($a_part_view=false, $a_force_all=false)
Save status of selecte members.
downloadAllObject()
Download all submitted files (of all members).
saveGradesObject()
Save grades.
List all peer groups for assignment.
This class represents a non editable value in a property form.
create()
Create directory.
orderAssignmentsByDeadlineObject()
Order by deadline.
setRows($a_rows)
Set Rows.
& _getUsedHTMLTags($a_module="")
Returns an array of all allowed HTML tags for text editing.
setAssignmentHeader()
Set assignment header.
adoptTeamAssignmentsFormObject()
setDate($a_date, $a_format)
set date
const LP_CONTEXT_REPOSITORY
This class represents a text area property in a property form.
updateAssignmentTextObject($a_return=false)
getTabs($tabs_gui)
adds tabs to tab gui object
confirmDeleteTeamObject()
getRefId()
get reference id public
addMembersObject($a_user_ids=array())
Add new partipant.
editAssignmentObject()
Edit assignment.
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
static getTeamIdByAssignment($a_ass_id, $a_user_id)
Find team by assignment.
deleteDeliveredObject()
Delete file(s) submitted by user.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
hasPeerReviewFileUpload()
Get peer review file upload status.
confirmRemoveTeamMemberObject($a_full_delete=false)
saveStatusParticipantObject()
Save assignment status (participant view)
deliverUnzipObject()
Upload zip file.
updateStatusOfUser($a_ass_id, $a_user_id, $a_status)
was: setStatusForMember($a_member_id,$a_status)
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
File System Explorer GUI class.
showParticipantObject()
Show Participant.
confirmDeassignMembersObject()
Confirm deassigning members.
updateAssignmentTextAndReturnObject()
static redirect($a_script)
http redirect to other script
deassignMembersObject()
Deassign members from exercise.
initEditCustomForm(ilPropertyFormGUI $a_form)
Init properties form.
Accordion user interface class.
addHeaderAction()
Add header action menu.
infoScreen()
show information screen
Exercise participant table.
showMultiFeedbackObject(ilPropertyFormGUI $a_form=null)
Show multi-feedback screen.
uploadFormObject()
Display form for single file upload.
static getAssignmentTeamMap($a_ass_id)
Get team structure for assignment.
Class ilObjUserTrackingGUI.
sendNotifications($assignment_id)
Send submission notifications.
static getAdoptableTeamAssignments($a_exercise_id, $a_exclude_ass_id=null, $a_user_id=null)
submissionScreenTeamLogObject()
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
downloadGlobalFeedbackFileObject()
Exercise certificate adapter.
static lookupTitle($a_id)
Lookup title.
addLocatorItems()
Add locator item.
showPeerReviewOverviewObject()
setSelectedPortfolioTemplateObject()
confirmDeleteDeliveredObject()
Confirm deletion of delivered files.
Confirmation screen class.
showAssignmentTextObject()
Class to report exception.
updateStatusReturnedForUser($a_ass_id, $a_user_id, $a_status)
was: setStatusReturnedForMember($a_member_id,$a_status)