4 include_once(
"./Services/Table/classes/class.ilTable2GUI.php");
5 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
28 function __construct($a_parent_obj, $a_parent_cmd, $a_exc, $a_ass_id)
33 $this->exc_id = $this->exc->getId();
34 $this->
setId(
"exc_mem_".$a_ass_id);
37 include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
39 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
41 $this->ass_id = $a_ass_id;
45 $this->
setTitle($lng->txt(
"exc_assignment").
": ".
62 foreach(
$data as $item)
64 $team_id = $team_map[$item[
"usr_id"]];
72 $team_id =
"nty".$item[
"usr_id"];
75 if(!isset($tmp[$team_id]))
77 $tmp[$team_id] = $item;
80 $tmp[$team_id][
"team"][$item[
"usr_id"]] = $item[
"name"];
81 $tmp[$team_id][
"team_id"] = $team_id;
91 $this->peer_review = $ass_obj->getPeerReview();
92 if($this->peer_review)
94 include_once
'./Services/Rating/classes/class.ilRatingGUI.php';
105 if(in_array(
"image", $this->selected))
107 $this->
addColumn($this->lng->txt(
"image"),
"",
"1");
109 $this->
addColumn($this->lng->txt(
"name"),
"name");
110 if(in_array(
"login", $this->selected))
112 $this->
addColumn($this->lng->txt(
"login"),
"login");
117 $this->
addColumn($this->lng->txt(
"exc_team"));
123 $this->
addColumn($this->lng->txt(
"exc_exercise_sent"),
"sent_time");
125 $this->
addColumn($this->lng->txt(
"exc_submission"),
"submission");
126 $this->
addColumn($this->lng->txt(
"exc_grading"),
"solved_time");
127 $this->
addColumn($this->lng->txt(
"feedback"),
"feedback_time");
134 $this->
setRowTemplate(
"tpl.exc_members_row.html",
"Modules/Exercise");
140 $this->
addMultiCommand(
"redirectFeedbackMail", $lng->txt(
"exc_send_mail"));
141 $this->
addMultiCommand(
"sendMembers", $lng->txt(
"exc_send_assignment"));
142 $this->
addMultiCommand(
"confirmDeassignMembers", $lng->txt(
"exc_deassign_members"));
152 "txt" => $this->lng->txt(
"image"),
157 "txt" => $this->lng->txt(
"login"),
171 include_once
"./Services/Object/classes/class.ilObjectFactory.php";
172 $member_id = $member[
"usr_id"];
179 $has_no_team_yet = (substr($member[
"team_id"], 0, 3) ==
"nty");
181 if(!$has_no_team_yet)
188 $this->tpl->setCurrentBlock(
"mail_sent");
192 $this->tpl->setVariable(
"TXT_MAIL_SENT",
193 sprintf($lng->txt(
"exc_sent_at"),
198 $this->tpl->setVariable(
"TXT_MAIL_SENT",
201 $this->tpl->parseCurrentBlock();
205 $this->tpl->setCurrentBlock(
"mail_sent");
206 $this->tpl->setVariable(
"TXT_MAIL_SENT",
208 $this->tpl->parseCurrentBlock();
213 $this->tpl->setVariable(
"VAL_CHKBOX",
215 $this->tpl->setVariable(
"VAL_ID",
222 if(!isset($member[
"team"]))
224 $this->tpl->setVariable(
"TXT_NAME",
227 if(in_array(
"login", $this->selected))
229 $this->tpl->setVariable(
"TXT_LOGIN",
230 "[".$member[
"login"].
"]");
233 if(in_array(
"image", $this->selected))
236 $this->tpl->setVariable(
"USR_IMAGE",
237 $mem_obj->getPersonalPicturePath(
"xxsmall"));
238 $this->tpl->setVariable(
"USR_ALT", $lng->txt(
"personal_picture"));
244 $this->tpl->setCurrentBlock(
"team_member");
245 asort($member[
"team"]);
246 foreach($member[
"team"] as $member_name)
248 $this->tpl->setVariable(
"TXT_MEMBER_NAME", $member_name);
249 $this->tpl->parseCurrentBlock();
252 if(!$has_no_team_yet)
254 $this->tpl->setCurrentBlock(
"team_log");
255 $ilCtrl->setParameter($this->parent_obj,
"lmem", $member_id);
256 $this->tpl->setVariable(
"HREF_LOG",
257 $ilCtrl->getLinkTarget($this->parent_obj,
"showTeamLog"));
258 $this->tpl->setVariable(
"TXT_LOG", $lng->txt(
"exc_team_log"));
259 $ilCtrl->setParameter($this->parent_obj,
"lmem",
"");
260 $this->tpl->parseCurrentBlock();
265 $this->tpl->setCurrentBlock(
"team_info");
266 $this->tpl->setVariable(
"TXT_TEAM_INFO", $lng->txt(
"exc_no_team_yet"));
267 $this->tpl->setVariable(
"TXT_CREATE_TEAM", $lng->txt(
"exc_create_team"));
269 $ilCtrl->setParameter($this->parent_obj,
"lmem", $member_id);
270 $this->tpl->setVariable(
"URL_CREATE_TEAM",
271 $ilCtrl->getLinkTarget($this->getParentObject(),
"createSingleMemberTeam"));
272 $ilCtrl->setParameter($this->parent_obj,
"lmem",
"");
274 if($file_info[
"files"][
"count"])
276 $this->tpl->setVariable(
"TEAM_FILES_INFO",
"<br />".
277 $file_info[
"files"][
"txt"].
": ".
278 $file_info[
"files"][
"count"]);
280 $this->tpl->parseCurrentBlock();
284 if(!$has_no_team_yet)
286 $this->tpl->setVariable(
"VAL_LAST_SUBMISSION", $file_info[
"last_submission"][
"value"]);
287 $this->tpl->setVariable(
"TXT_LAST_SUBMISSION", $file_info[
"last_submission"][
"txt"]);
289 $this->tpl->setVariable(
"TXT_SUBMITTED_FILES", $file_info[
"files"][
"txt"]);
290 $this->tpl->setVariable(
"VAL_SUBMITTED_FILES", $file_info[
"files"][
"count"]);
292 if($file_info[
"files"][
"download_url"])
294 $this->tpl->setCurrentBlock(
"download_link");
295 $this->tpl->setVariable(
"LINK_DOWNLOAD", $file_info[
"files"][
"download_url"]);
296 $this->tpl->setVariable(
"TXT_DOWNLOAD", $file_info[
"files"][
"download_txt"]);
297 $this->tpl->parseCurrentBlock();
300 if($file_info[
"files"][
"download_new_url"])
302 $this->tpl->setCurrentBlock(
"download_link");
303 $this->tpl->setVariable(
"LINK_NEW_DOWNLOAD", $file_info[
"files"][
"download_new_url"]);
304 $this->tpl->setVariable(
"TXT_NEW_DOWNLOAD", $file_info[
"files"][
"download_new_txt"]);
305 $this->tpl->parseCurrentBlock();
309 $this->tpl->setVariable(
"TXT_NOTE", $lng->txt(
"note"));
310 $this->tpl->setVariable(
"NAME_NOTE",
311 "notice[$member_id]");
312 $this->tpl->setVariable(
"VAL_NOTE",
316 $this->tpl->setVariable(
"TXT_LCOMMENT", $lng->txt(
"exc_comment_for_learner"));
317 $this->tpl->setVariable(
"NAME_LCOMMENT",
318 "lcomment[$member_id]");
320 $this->tpl->setVariable(
"VAL_LCOMMENT",
327 $this->tpl->setVariable(
"SEL_".strtoupper($status),
' selected="selected" ');
328 $this->tpl->setVariable(
"TXT_NOTGRADED", $lng->txt(
"exc_notgraded"));
329 $this->tpl->setVariable(
"TXT_PASSED", $lng->txt(
"exc_passed"));
330 $this->tpl->setVariable(
"TXT_FAILED", $lng->txt(
"exc_failed"));
333 $this->tpl->setCurrentBlock(
"status_date");
334 $this->tpl->setVariable(
"TXT_LAST_CHANGE", $lng->txt(
"last_change"));
335 $this->tpl->setVariable(
'VAL_STATUS_DATE',
337 $this->tpl->parseCurrentBlock();
341 case "passed": $pic =
"scorm/passed.png";
break;
342 case "failed": $pic =
"scorm/failed.png";
break;
343 default: $pic =
"scorm/not_attempted.png";
break;
346 $this->tpl->setVariable(
"ALT_STATUS", $lng->txt(
"exc_".$status));
349 $this->tpl->setVariable(
"TXT_MARK", $lng->txt(
"exc_mark"));
350 $this->tpl->setVariable(
"NAME_MARK",
353 $this->tpl->setVariable(
"VAL_MARK",
357 $ilCtrl->setParameter($this->parent_obj,
"member_id", $member_id);
360 $this->tpl->setCurrentBlock(
"feedback_date");
361 $this->tpl->setVariable(
"TXT_FEEDBACK_MAIL_SENT",
362 sprintf($lng->txt(
"exc_sent_at"),
364 $this->tpl->parseCurrentBlock();
368 $this->tpl->setVariable(
"LINK_FEEDBACK",
369 $ilCtrl->getLinkTarget($this->parent_obj,
"redirectFeedbackMail"));
370 $this->tpl->setVariable(
"TXT_FEEDBACK",
371 $lng->txt(
"exc_send_mail"));
375 $feedback_id =
"t".$member[
"team_id"];
379 $feedback_id = $member_id;
383 $cnt_files = $this->storage->countFeedbackFiles($feedback_id);
384 $ilCtrl->setParameter($this->parent_obj,
"fsmode",
"feedback");
385 $this->tpl->setVariable(
"LINK_FILE_FEEDBACK",
386 $ilCtrl->getLinkTargetByClass(
"ilfilesystemgui",
"listFiles"));
389 $this->tpl->setVariable(
"TXT_FILE_FEEDBACK",
390 $lng->txt(
"exc_add_feedback_file"));
394 $this->tpl->setVariable(
"TXT_FILE_FEEDBACK",
395 $lng->txt(
"exc_fb_files").
" (".$cnt_files.
")");
401 $this->tpl->setCurrentBlock(
"peer_review_bl");
402 $this->tpl->setVariable(
"TXT_PEER_REVIEW", $lng->txt(
"exc_peer_review_show"));
404 $ilCtrl->setParameter($this->parent_obj,
"grd", 1);
405 $this->tpl->setVariable(
"LINK_PEER_REVIEW",
406 $ilCtrl->getLinkTarget($this->parent_obj,
"showPersonalPeerReview"));
407 $ilCtrl->setParameter($this->parent_obj,
"grd",
"");
410 $rating->setObject($this->ass_id,
"ass", $member_id,
"peer");
411 $rating->setUserId(0);
412 $this->tpl->setVariable(
"VAL_RATING", $rating->getHTML(
true,
false));
414 $this->tpl->parseCurrentBlock();
417 $this->tpl->parseCurrentBlock();
421 $this->tpl->touchBlock(
"member_has_no_team_bl");