5require_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() ||
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));
117 $fs_gui->setTableId(
"excfbpeer");
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));
172 $fs_gui->setTableId(
"excfbfil".(
int)
$_GET[
"ass_id"].
"_".$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(),
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",
302 $this->ctrl->forwardCommand($rating_gui);
303 $ilCtrl->redirect($this,
"editPeerReview");
307 $this->ctrl->setParameter($this,
"fsmode",
"");
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"],
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");
541 $fi->setFilenames(array(0 =>
''));
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");
565 $fi->setSuffixes(array(
"zip"));
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],
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))
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");
2187 if(
sizeof($types) > 1)
2189 $ty =
new ilSelectInputGUI($this->lng->txt(
"exc_assignment_type"),
"type");
2190 $ty->setOptions($types);
2191 $ty->setRequired(
true);
2198 $this->form->addItem($ty);
2202 $ti->setMaxLength(200);
2203 $ti->setRequired(
true);
2204 $this->form->addItem($ti);
2208 $this->form->addItem($cb);
2212 $edit_date->setShowTime(
true);
2213 $cb->addSubItem($edit_date);
2218 $dcb->setChecked(
true);
2219 $this->form->addItem($dcb);
2223 $edit_date->setShowTime(
true);
2224 $dcb->addSubItem($edit_date);
2228 $cb->setInfo($this->lng->txt(
"exc_mandatory_info"));
2229 $cb->setChecked(
true);
2230 $this->form->addItem($cb);
2234 $desc_input->setRows(20);
2235 $desc_input->setUseRte(
true);
2236 $desc_input->setRteTagSet(
"mini");
2237 $this->form->addItem($desc_input);
2240 if ($a_mode ==
"create")
2243 $files->setFilenames(array(0 =>
''));
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"));
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);
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);
2293 $fb_file->setRequired(
true);
2295 $fb->addSubItem($fb_file);
2298 if($a_mode !=
"create" &&
2300 $this->ass->getFeedbackFile())
2302 $fb_file->setRequired(
false);
2306 $fb_date->setRequired(
true);
2309 $fb->addSubItem($fb_date);
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"));
3431 $prtt->setRequired(
true);
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",
"");
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"];
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() ||
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)
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";
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"));
4682 $fi->setSuffixes(array(
"zip"));
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");
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"));
4893 $teams->setValue(-1);
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"];
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");
5004 $teams->setValue(-1);
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");
Accordion user interface class.
GUI class to create PDF certificates.
_isComplete($adapter)
Checks the status of the certificate.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Confirmation screen class.
static formatDate(ilDateTime $date)
Format a date @access public.
@classDescription Date and time handling
GUI clas for exercise assignments.
List all peer groups for assignment.
List all peers to be reviewed for user.
List all log entries of team.
List all team members of an assignment.
downloadAllDeliveredFiles($a_exc_id, $a_ass_id, $members)
Download all submitted files of an assignment (all user)
orderAssByDeadline($a_ex_id)
Order assignments by deadline date.
hasPeerReviewPersonalized()
Get peer review personalized status.
countMandatory($a_ex_id)
Order assignments by deadline date.
static getFiles($a_exc_id, $a_ass_id)
Get files.
static getTeamIdByAssignment($a_ass_id, $a_user_id)
Find team by assignment.
lookupMarkOfUser($a_ass_id, $a_user_id)
Lookup user mark.
updateTutorDownloadTime($a_exc_id, $a_ass_id, $a_user_id)
was: updateTutorDownloadTime($member_id)
static getAdoptableTeamAssignments($a_exercise_id, $a_exclude_ass_id=null, $a_user_id=null)
getId()
Get assignment id.
static getLastSubmission($a_ass_id, $a_user_id)
Get the date of the last submission of a user for the assignment.
static getTeamMembersByAssignmentId($a_ass_id, $a_user_id)
Find team members by assignment and team member.
getPeerReviewMin()
Get peer review minimum.
updateNoticeForUser($a_ass_id, $a_user_id, $a_notice)
was: setNoticeForMember($a_member_id,$a_notice)
static getNumberOfMissingFeedbacks($a_ass_id, $a_min)
updateStatusOfUser($a_ass_id, $a_user_id, $a_status)
was: setStatusForMember($a_member_id,$a_status)
static getAssignmentTeamMap($a_ass_id)
Get team structure for assignment.
getPeerReview()
Get peer review status.
hasPeerReviewFileUpload()
Get peer review file upload status.
static getAssignmentDataOfExercise($a_exc_id)
Get assignments data of an exercise in an array.
getAllDeliveredFiles($a_exc_id, $a_ass_id)
was: getAllDeliveredFiles()
getDeliveredFiles($a_exc_id, $a_ass_id, $a_user_id, $a_filter_empty_filename=false)
was: getDeliveredFiles($a_member_id)
updateMarkOfUser($a_ass_id, $a_user_id, $a_value)
Update mark.
updateStatusFeedbackForUser($a_ass_id, $a_user_id, $a_status)
was: setStatusFeedbackForMember($a_member_id,$a_status)
const FEEDBACK_DATE_DEADLINE
downloadSelectedFiles($a_exc_id, $a_ass_id, $a_user_id, $array_file_id)
was: downloadSelectedFiles($array_file_id,$a_user_id)?
updateStatusTimeOfUser($a_ass_id, $a_user_id)
was: updateStatusTimeForMember($a_user_id)
static lookupTitle($a_id)
Lookup title.
updateCommentForUser($a_ass_id, $a_user_id, $a_value)
Update comment.
deleteDeliveredFiles($a_exc_id, $a_ass_id, $file_id_array, $a_user_id)
was: deleteDeliveredFiles($file_id_array, $a_member_id)
saveAssOrderOfExercise($a_ex_id, $a_order)
Save ordering of all assignments of an exercise.
const FEEDBACK_DATE_SUBMISSION
updateStatusReturnedForUser($a_ass_id, $a_user_id, $a_status)
was: setStatusReturnedForMember($a_member_id,$a_status)
getDeadline()
Get deadline (timestamp)
getMandatory()
Get mandatory.
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)
Exercise participant table.
Exercise participant table.
Exercise certificate adapter.
Class to report exception.
const TYPE_SUBMISSION_UPLOAD
_writeReturned($a_obj_id, $a_user_id, $a_status)
Write returned status.
Export User Interface Class.
File System Explorer GUI class.
_lookupComment($a_usr_id, $a_obj_id)
_lookupMark($a_usr_id, $a_obj_id)
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
const LP_CONTEXT_REPOSITORY
Class ilObjUserTrackingGUI.
static _tracProgress($a_user_id, $a_obj_id, $a_ref_id, $a_obj_type='')
This class represents a non editable value in a property form.
static setNotification($type, $user_id, $id, $status=true)
Set notification status for object and user.
static getNotificationsForObject($type, $id, $page_id=null, $ignore_threshold=false)
Get all users for given object.
static hasNotification($type, $user_id, $id)
Check notification status for object and user.
const TYPE_EXERCISE_SUBMISSION
& _getUsedHTMLTags($a_module="")
Returns an array of all allowed HTML tags for text editing.
initUploadForm()
Init upload form form.
submissionScreenObject()
Displays a form which allows members to deliver their solutions.
addTeamMemberActionObject($a_user_ids=array())
downloadFileObject()
Download assignment file.
confirmDeassignMembersObject()
Confirm deassigning members.
updateAssignmentTextObject($a_return=false)
initPortfolioTemplateForm(array $a_templates)
submitPortfolio($a_portfolio_id)
Submit portfolio for assignment.
setAssignmentHeader()
Set assignment header.
addLocatorItems()
Add locator item.
submissionScreenTeamLogObject()
adoptTeamAssignmentsFormObject()
downloadObject()
User downloads (own) submitted files.
updateAssignmentObject()
Update assignment.
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually,...
createPortfolioTemplateObject(ilPropertyFormGUI $a_form=null)
showPeerReviewOverviewObject()
askDirectionSubmissionObject()
updatePeerReviewTextObject()
initAssignmentTextForm(ilExAssignment $a_ass, $a_read_only=false, $a_cancel_cmd="showOverview", $a_peer_review_cmd=null, $a_peer_rating_html=null)
exportExcelObject()
Export as excel.
confirmDeleteTeamObject()
deleteDeliveredObject()
Delete file(s) submitted by user.
listPublicSubmissionsObject()
List all submissions.
downloadAllObject()
Download all submitted files (of all members).
viewObject()
list childs of current object
showAssignmentTextObject()
updatePeerReviewCommentsObject()
downloadMultiFeedbackZipObject()
Download multi-feedback structrue file.
submissionScreenTeamObject()
Displays a form which allows members to manage team uploads.
setSelectedPortfolioObject()
initMultiFeedbackForm($a_ass_id)
__getMembersOfObject($a_result, $a_type)
createSingleMemberTeamObject()
renderWorkspaceExplorer($a_cmd)
saveAssignmentObject()
Save assignment.
confirmResetPeerReviewObject()
deliverUnzipObject()
Upload zip file.
saveStatusObject($a_part_view=false, $a_force_all=false)
Save status of selecte members.
handleDisabledAssignmentFields(ilExAssignment $a_ass, ilPropertyFormGUI $a_form)
editAssignmentTextObject(ilPropertyFormGUI $a_form=null)
updateMembersObject()
update data of members table
setSelectedPortfolioTemplateObject()
getEditFormCustomValues(array &$a_values)
Get values for properties form.
addUserFromAutoCompleteObject()
Add user as member.
selectAssignmentObject()
Select assignment.
saveMultiFeedbackObject()
Save multi feedback.
deleteAssignmentsObject()
Delete assignments.
uploadMultiFeedbackObject()
Upload multi feedback file.
listTextAssignmentWithPeerReviewObject()
infoScreen()
show information screen
membersObject()
All participants and submission of one assignment.
showParticipantObject()
Show Participant.
adoptTeamAssignmentsObject()
downloadPeerReviewObject()
deassignMembersObject()
Deassign members from exercise.
__filterAssignedUsers($a_result)
__showObjectSelect($a_result, $a_type)
removeTeamMemberObject($a_full_delete=false)
downloadReturnedObject()
Download submitted files of user.
updateCustom(ilPropertyFormGUI $a_form)
Insert custom update form values into object.
initTeamSubmission($a_back_cmd, $a_mandatory_team=true)
showMultiFeedbackConfirmationTableObject()
Show multi feedback confirmation table.
__getDateSelect($a_type, $a_selected)
addSubmissionSubTabs($a_activate)
adds tabs to tab gui object
addMembersObject($a_user_ids=array())
Add new partipant.
executeCommand()
execute command
orderAssignmentsByDeadlineObject()
Order by deadline.
static _goto($a_target, $a_raw)
redirect script
initZipUploadForm()
Init upload form form.
confirmAssignmentsDeletionObject()
Confirm assignments deletion.
editAssignmentObject()
Edit assignment.
deliverFileObject()
Upload files.
createAdoptedTeamObject()
ilObjExerciseGUI($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
Constructor @access public.
listAssignmentsObject()
List assignments.
initAssignmentForm($a_mode="create")
Init assignment form.
submitBlog($a_blog_id)
Submit blog for assignment.
showMultiFeedbackObject(ilPropertyFormGUI $a_form=null)
Show multi-feedback screen.
getAssignmentValues()
Get current values for assignment from.
downloadNewReturnedObject()
Download newly submitted files of user.
confirmDeleteDeliveredObject()
Confirm deletion of delivered files.
confirmRemoveTeamMemberObject($a_full_delete=false)
showGradesOverviewObject()
Show grades overview.
downloadFeedbackFileObject()
Download feedback file.
uploadZipFormObject()
Display form for zip file upload.
initEditCustomForm(ilPropertyFormGUI $a_form)
Init properties form.
saveGradesObject()
Save grades.
saveCommentForLearnersObject()
Save comment for learner (asynch)
updateAssignmentTextAndReturnObject()
showOverviewObject()
Show overview of assignments.
sendNotifications($assignment_id)
Send submission notifications.
cancelMultiFeedbackObject()
Cancel Multi Feedback.
getTabs($tabs_gui)
adds tabs to tab gui object
downloadGlobalFeedbackFileObject()
selectParticipantObject()
Select participant.
uploadFormObject()
Display form for single file upload.
saveAssignmentOrderObject()
Save assignments order.
showPersonalPeerReviewObject()
removeExistingSubmissions()
remove existing files/submissions for assignment
sendMembersObject()
Send assignment per mail to participants.
afterSave(ilObject $a_new_object)
Post (successful) object creation hook.
redirectFeedbackMailObject()
set feedback status for member and redirect to mail screen
saveStatusParticipantObject()
Save assignment status (participant view)
addAssignmentObject()
Create assignment.
addContentSubTabs($a_activate)
Add subtabs of content view.
listTextAssignmentObject($a_show_peer_review=false)
static getAvailablePortfolioTemplates($a_permission="read")
static getPortfoliosOfUser($a_user_id)
Get views of user.
_lookupLogin($a_user_id)
lookup login
static _lookupId($a_user_str)
lookup id by login
static _lookupName($a_user_id)
lookup user name
GUI class for the workflow of copying objects.
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
Class ilObjectGUI Basic methods of all Output classes.
ilObjectGUI($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=true)
Constructor @access public.
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
prepareOutput()
prepare output
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
addHeaderAction()
Add header action menu.
Class ilObject Basic functions for all objects.
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
getRefId()
get reference id @access public
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data@access public
static _lookupType($a_id, $a_reference=false)
lookup object type
static getInstance()
Get instance.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
Portfolio HTML exporter class.
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...
static _getMediaObjects($a_text, $a_direction=0)
Returns all media objects found in the passed string.
This class represents an option in a radio group.
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.
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array())
fill toolbar with
special template class to simplify handling of ITX/PEAR
This class represents a text area property in a property form.
This class represents a text property in a property form.
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:
static shortenText($a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static redirect($a_script)
http redirect to other script
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
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.
static deliverFile($a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
static stripSlashesArray($a_arr, $a_strip_html=true, $a_allow="")
Strip slashes from array.
Access handler for personal workspace.
Tree handler for personal workspace.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
if(!is_array($argv)) $options