4 include_once(
"./Services/Table/classes/class.ilTable2GUI.php");
5 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
6 include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
7 include_once(
"./Services/Rating/classes/class.ilRatingGUI.php");
23 function __construct($a_parent_obj, $a_parent_cmd, $a_exc, $a_part_id)
28 $this->exc_id = $this->exc->getId();
30 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
32 $this->part_id = $a_part_id;
34 $this->
setId(
"exc_part_".$this->exc_id.
"_".$this->part_id);
36 include_once(
"./Services/User/classes/class.ilObjUser.php");
38 if ($this->part_id > 0)
41 if(trim($name[
"login"]))
43 $this->user =
new ilObjUser($this->part_id);
48 $ilCtrl->setParameter($a_parent_obj,
"part_id",
"");
49 $ilCtrl->redirect($a_parent_obj, $a_parent_cmd);
61 if ($this->part_id > 0)
63 $this->
setTitle($lng->txt(
"exc_participant").
": ".
64 $name[
"lastname"].
", ".$name[
"firstname"].
" [".$name[
"login"].
"]");
68 $this->
setTitle($lng->txt(
"exc_participant"));
75 $this->
addColumn($this->lng->txt(
"exc_assignment"),
"order_val");
76 $this->
addColumn($this->lng->txt(
"exc_submission"),
"submission");
77 $this->
addColumn($this->lng->txt(
"exc_grading"),
"solved_time");
79 $this->
addColumn($this->lng->txt(
"feedback"),
"feedback_time");
86 $this->
setRowTemplate(
"tpl.exc_participant_row.html",
"Modules/Exercise");
91 if ($this->part_id > 0)
93 $this->
addCommandButton(
"saveStatusParticipant", $lng->txt(
"exc_save_changes"));
102 if (in_array($a_f, array(
"order_val")))
117 $this->tpl->setVariable(
"TXT_ASS_TITLE",
$d[
"title"]);
121 $has_no_team_yet =
false;
129 $this->tpl->setCurrentBlock(
"ass_members");
130 foreach($members as $member_id)
132 $this->tpl->setVariable(
"TXT_MEMBER_NAME",
134 $this->tpl->parseCurrentBlock();
137 $ilCtrl->setParameter($this->parent_obj,
"lpart", $this->part_id);
138 $this->tpl->setVariable(
"HREF_LOG",
139 $ilCtrl->getLinkTarget($this->parent_obj,
"showTeamLog"));
140 $this->tpl->setVariable(
"TXT_LOG", $lng->txt(
"exc_team_log"));
141 $ilCtrl->setParameter($this->parent_obj,
"lpart",
"");
146 $has_no_team_yet =
true;
147 $this->tpl->setCurrentBlock(
"team_info");
148 $this->tpl->setVariable(
"TXT_TEAM_INFO", $lng->txt(
"exc_no_team_yet"));
149 $this->tpl->setVariable(
"TXT_CREATE_TEAM", $lng->txt(
"exc_create_team"));
151 $ilCtrl->setParameter($this->parent_obj,
"ass_id",
$d[
"id"]);
152 $ilCtrl->setParameter($this->parent_obj,
"lpart", $this->part_id);
153 $this->tpl->setVariable(
"URL_CREATE_TEAM",
154 $ilCtrl->getLinkTarget($this->getParentObject(),
"createSingleMemberTeam"));
155 $ilCtrl->setParameter($this->parent_obj,
"lpart",
"");
156 $ilCtrl->setParameter($this->parent_obj,
"ass_id",
"");
158 if($file_info[
"files"][
"count"])
160 $this->tpl->setVariable(
"TEAM_FILES_INFO",
"<br />".
161 $file_info[
"files"][
"txt"].
": ".
162 $file_info[
"files"][
"count"]);
164 $this->tpl->parseCurrentBlock();
168 if(!$has_no_team_yet)
170 $this->tpl->setVariable(
"VAL_CHKBOX",
172 $this->tpl->setVariable(
"VAL_ID",
175 $this->tpl->setVariable(
"VAL_LAST_SUBMISSION", $file_info[
"last_submission"][
"value"]);
176 $this->tpl->setVariable(
"TXT_LAST_SUBMISSION", $file_info[
"last_submission"][
"txt"]);
178 $this->tpl->setVariable(
"TXT_SUBMITTED_FILES", $file_info[
"files"][
"txt"]);
179 $this->tpl->setVariable(
"VAL_SUBMITTED_FILES", $file_info[
"files"][
"count"]);
181 if($file_info[
"files"][
"download_url"])
183 $this->tpl->setCurrentBlock(
"download_link");
184 $this->tpl->setVariable(
"LINK_DOWNLOAD", $file_info[
"files"][
"download_url"]);
185 $this->tpl->setVariable(
"TXT_DOWNLOAD", $file_info[
"files"][
"download_txt"]);
186 $this->tpl->parseCurrentBlock();
189 if($file_info[
"files"][
"download_new_url"])
191 $this->tpl->setCurrentBlock(
"download_link");
192 $this->tpl->setVariable(
"LINK_NEW_DOWNLOAD", $file_info[
"files"][
"download_new_url"]);
193 $this->tpl->setVariable(
"TXT_NEW_DOWNLOAD", $file_info[
"files"][
"download_new_txt"]);
194 $this->tpl->parseCurrentBlock();
198 $this->tpl->setVariable(
"TXT_NOTE", $lng->txt(
"note"));
199 $this->tpl->setVariable(
"NAME_NOTE",
200 "notice[".
$d[
"id"].
"]");
201 $this->tpl->setVariable(
"VAL_NOTE",
205 $this->tpl->setVariable(
"TXT_LCOMMENT", $lng->txt(
"exc_comment_for_learner"));
206 $this->tpl->setVariable(
"NAME_LCOMMENT",
207 "lcomment[".
$d[
"id"].
"]");
209 $this->tpl->setVariable(
"VAL_LCOMMENT",
216 $this->tpl->setVariable(
"SEL_".strtoupper($status),
' selected="selected" ');
217 $this->tpl->setVariable(
"TXT_NOTGRADED", $lng->txt(
"exc_notgraded"));
218 $this->tpl->setVariable(
"TXT_PASSED", $lng->txt(
"exc_passed"));
219 $this->tpl->setVariable(
"TXT_FAILED", $lng->txt(
"exc_failed"));
222 $this->tpl->setCurrentBlock(
"status_date");
223 $this->tpl->setVariable(
"TXT_LAST_CHANGE", $lng->txt(
"last_change"));
224 $this->tpl->setVariable(
'VAL_STATUS_DATE',
226 $this->tpl->parseCurrentBlock();
230 case "passed": $pic =
"scorm/passed.png";
break;
231 case "failed": $pic =
"scorm/failed.png";
break;
232 default: $pic =
"scorm/not_attempted.png";
break;
235 $this->tpl->setVariable(
"ALT_STATUS", $lng->txt(
"exc_".$status));
238 $this->tpl->setVariable(
"TXT_MARK", $lng->txt(
"exc_mark"));
239 $this->tpl->setVariable(
"NAME_MARK",
240 "mark[".
$d[
"id"].
"]");
242 $this->tpl->setVariable(
"VAL_MARK",
246 $ilCtrl->setParameter($this->parent_obj,
"member_id", $this->part_id);
249 $this->tpl->setCurrentBlock(
"feedback_date");
250 $this->tpl->setVariable(
"TXT_FEEDBACK_MAIL_SENT",
251 sprintf($lng->txt(
"exc_sent_at"),
253 $this->tpl->parseCurrentBlock();
255 $ilCtrl->setParameter($this,
"rcp_to", $this->user->getLogin());
256 $this->tpl->setVariable(
"LINK_FEEDBACK",
257 $ilCtrl->getLinkTarget($this->parent_obj,
"redirectFeedbackMail"));
259 $this->tpl->setVariable(
"TXT_FEEDBACK",
260 $lng->txt(
"exc_send_mail"));
261 $ilCtrl->setParameter($this->parent_obj,
"rcp_to",
"");
265 $feedback_id =
"t".ilExAssignment::getTeamIdByAssignment(
$d[
"id"], $this->part_id);
269 $feedback_id = $this->part_id;
273 $cnt_files = $storage->countFeedbackFiles($feedback_id);
274 $ilCtrl->setParameter($this->parent_obj,
"fsmode",
"feedbackpart");
275 $this->tpl->setVariable(
"LINK_FILE_FEEDBACK",
276 $ilCtrl->getLinkTargetByClass(
"ilfilesystemgui",
"listFiles"));
279 $this->tpl->setVariable(
"TXT_FILE_FEEDBACK",
280 $lng->txt(
"exc_add_feedback_file"));
284 $this->tpl->setVariable(
"TXT_FILE_FEEDBACK",
285 $lng->txt(
"exc_fb_files").
" (".$cnt_files.
")");
291 $this->tpl->setCurrentBlock(
"peer_review_bl");
292 $this->tpl->setVariable(
"TXT_PEER_REVIEW", $lng->txt(
"exc_peer_review_show"));
294 $ilCtrl->setParameter($this->parent_obj,
"grd", 2);
295 $this->tpl->setVariable(
"LINK_PEER_REVIEW",
296 $ilCtrl->getLinkTarget($this->parent_obj,
"showPersonalPeerReview"));
297 $ilCtrl->setParameter($this->parent_obj,
"grd",
"");
300 $rating->setObject(
$d[
"id"],
"ass", $this->part_id,
"peer");
301 $rating->setUserId(0);
302 $this->tpl->setVariable(
"VAL_RATING", $rating->getHTML(
true,
false));
304 $this->tpl->parseCurrentBlock();
307 $ilCtrl->setParameter($this->parent_obj,
"ass_id",
$_GET[
"ass_id"]);
311 $this->tpl->touchBlock(
"member_has_no_team_bl");