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 $ilCtrl->setParameter($a_parent_obj,
"member_id", $this->part_id);
44 $this->user =
new ilObjUser($this->part_id);
49 $ilCtrl->setParameter($a_parent_obj,
"member_id",
"");
50 $ilCtrl->setParameter($a_parent_obj,
"part_id",
"");
51 $ilCtrl->redirect($a_parent_obj, $a_parent_cmd);
55 parent::__construct($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"));
96 include_once
"Services/Form/classes/class.ilPropertyFormGUI.php";
97 include_once
"Services/UIComponent/Overlay/classes/class.ilOverlayGUI.php";
98 $this->overlay_tpl =
new ilTemplate(
"tpl.exc_learner_comment_overlay.html",
true,
true,
"Modules/Exercise");
101 if(!$ilAccess->checkAccessOfUser($a_part_id,
"read",
"", $this->exc->getRefId()) &&
102 is_array(
$info = $ilAccess->getInfo()))
113 if (in_array($a_f, array(
"order_val")))
128 $ilCtrl->setParameter($this->parent_obj,
"ass_id",
$d[
"id"]);
129 $ilCtrl->setParameter($this->parent_obj,
"member_id", $this->part_id);
131 $this->tpl->setVariable(
"TXT_ASS_TITLE",
$d[
"title"]);
134 $member_status = $assignment->getMemberStatus($this->part_id);
136 $file_info = $submission->getDownloadedFilesInfoForTableGUIS($this->parent_obj, $this->parent_cmd);
138 $has_no_team_yet =
false;
139 if($assignment->hasTeam())
141 $members = $submission->getTeam()->getMembers();
146 $this->tpl->setCurrentBlock(
"ass_members");
147 foreach($members as $member_id)
149 $this->tpl->setVariable(
"TXT_MEMBER_NAME",
151 $this->tpl->parseCurrentBlock();
154 $this->tpl->setVariable(
"HREF_LOG",
155 $ilCtrl->getLinkTargetByClass(
"ilExSubmissionTeamGUI",
"showTeamLog"));
156 $this->tpl->setVariable(
"TXT_LOG", $lng->txt(
"exc_team_log"));
161 $has_no_team_yet =
true;
162 $this->tpl->setCurrentBlock(
"team_info");
163 $this->tpl->setVariable(
"TXT_TEAM_INFO", $lng->txt(
"exc_no_team_yet"));
164 $this->tpl->setVariable(
"TXT_CREATE_TEAM", $lng->txt(
"exc_create_team"));
166 $this->tpl->setVariable(
"URL_CREATE_TEAM",
167 $ilCtrl->getLinkTargetByClass(
"ilExSubmissionTeamGUI",
"createSingleMemberTeam"));
169 if($file_info[
"files"][
"count"])
171 $this->tpl->setVariable(
"TEAM_FILES_INFO",
"<br />".
172 $file_info[
"files"][
"txt"].
": ".
173 $file_info[
"files"][
"count"]);
175 $this->tpl->parseCurrentBlock();
179 if(!$has_no_team_yet)
181 $this->tpl->setVariable(
"VAL_CHKBOX",
183 $this->tpl->setVariable(
"VAL_ID",
186 $this->tpl->setVariable(
"VAL_LAST_SUBMISSION", $file_info[
"last_submission"][
"value"]);
187 $this->tpl->setVariable(
"TXT_LAST_SUBMISSION", $file_info[
"last_submission"][
"txt"]);
189 $this->tpl->setVariable(
"TXT_SUBMITTED_FILES", $file_info[
"files"][
"txt"]);
190 $this->tpl->setVariable(
"VAL_SUBMITTED_FILES", $file_info[
"files"][
"count"]);
192 if($file_info[
"files"][
"download_url"])
194 $this->tpl->setCurrentBlock(
"download_link");
195 $this->tpl->setVariable(
"LINK_DOWNLOAD", $file_info[
"files"][
"download_url"]);
196 $this->tpl->setVariable(
"TXT_DOWNLOAD", $file_info[
"files"][
"download_txt"]);
197 $this->tpl->parseCurrentBlock();
200 if($file_info[
"files"][
"download_new_url"])
202 $this->tpl->setCurrentBlock(
"download_link");
203 $this->tpl->setVariable(
"LINK_NEW_DOWNLOAD", $file_info[
"files"][
"download_new_url"]);
204 $this->tpl->setVariable(
"TXT_NEW_DOWNLOAD", $file_info[
"files"][
"download_new_txt"]);
205 $this->tpl->parseCurrentBlock();
209 $this->tpl->setVariable(
"TXT_NOTE", $lng->txt(
"exc_note_for_tutor"));
210 $this->tpl->setVariable(
"NAME_NOTE",
211 "notice[".
$d[
"id"].
"]");
212 $this->tpl->setVariable(
"VAL_NOTE",
217 $lcomment_value = $member_status->getComment();
219 $overlay_id =
"excasscomm_".$d[
"id"].
"_".$this->part_id;
220 $overlay_trigger_id = $overlay_id.
"_tr";
222 $overlay->setAnchor($overlay_trigger_id);
223 $overlay->setTrigger($overlay_trigger_id,
"click", $overlay_trigger_id);
226 $this->tpl->setVariable(
"LCOMMENT_ID", $overlay_id.
"_snip");
227 $this->tpl->setVariable(
"LCOMMENT_SNIPPET",
ilUtil::shortenText($lcomment_value, 25,
true));
228 $this->tpl->setVariable(
"COMMENT_OVERLAY_TRIGGER_ID", $overlay_trigger_id);
229 $this->tpl->setVariable(
"COMMENT_OVERLAY_TRIGGER_TEXT", $lng->txt(
"exc_comment_for_learner_edit"));
232 $lcomment_form->setId($overlay_id);
233 $lcomment_form->setPreventDoubleSubmission(
false);
235 $lcomment =
new ilTextAreaInputGUI($lng->txt(
"exc_comment_for_learner"),
"lcomment_".$d[
"id"].
"_".$this->part_id);
236 $lcomment->
setInfo($lng->txt(
"exc_comment_for_learner_info"));
237 $lcomment->setValue($lcomment_value);
238 $lcomment->setCols(45);
239 $lcomment->setRows(5);
240 $lcomment_form->addItem($lcomment);
242 $lcomment_form->addCommandButton(
"save", $lng->txt(
"save"));
245 $this->overlay_tpl->setCurrentBlock(
"overlay_bl");
246 $this->overlay_tpl->setVariable(
"COMMENT_OVERLAY_ID", $overlay_id);
247 $this->overlay_tpl->setVariable(
"COMMENT_OVERLAY_FORM", $lcomment_form->getHTML());
248 $this->overlay_tpl->parseCurrentBlock();
250 $status = $member_status->getStatus();
251 $this->tpl->setVariable(
"SEL_".strtoupper($status),
' selected="selected" ');
252 $this->tpl->setVariable(
"TXT_NOTGRADED", $lng->txt(
"exc_notgraded"));
253 $this->tpl->setVariable(
"TXT_PASSED", $lng->txt(
"exc_passed"));
254 $this->tpl->setVariable(
"TXT_FAILED", $lng->txt(
"exc_failed"));
255 if (($sd = $member_status->getStatusTime()) > 0)
257 $this->tpl->setCurrentBlock(
"status_date");
258 $this->tpl->setVariable(
"TXT_LAST_CHANGE", $lng->txt(
"last_change"));
259 $this->tpl->setVariable(
'VAL_STATUS_DATE',
261 $this->tpl->parseCurrentBlock();
263 $pic = $member_status->getStatusIcon();
265 $this->tpl->setVariable(
"ALT_STATUS", $lng->txt(
"exc_".$status));
268 $this->tpl->setVariable(
"TXT_MARK", $lng->txt(
"exc_mark"));
269 $this->tpl->setVariable(
"NAME_MARK",
270 "mark[".
$d[
"id"].
"]");
271 $mark = $member_status->getMark();
275 if (($ft = $member_status->getFeedbackTime()) > 0)
277 $this->tpl->setCurrentBlock(
"feedback_date");
278 $this->tpl->setVariable(
"TXT_FEEDBACK_MAIL_SENT",
279 sprintf($lng->txt(
"exc_sent_at"),
281 $this->tpl->parseCurrentBlock();
283 $ilCtrl->setParameter($this->parent_obj,
"rcp_to", $this->user->getLogin());
284 $this->tpl->setVariable(
"LINK_FEEDBACK",
285 $ilCtrl->getLinkTarget($this->parent_obj,
"redirectFeedbackMail"));
287 $this->tpl->setVariable(
"TXT_FEEDBACK",
288 $lng->txt(
"exc_send_mail"));
289 $ilCtrl->setParameter($this->parent_obj,
"rcp_to",
"");
292 $cnt_files = $storage->countFeedbackFiles($submission->getFeedbackId());
293 $this->tpl->setVariable(
"LINK_FILE_FEEDBACK",
294 $ilCtrl->getLinkTargetByClass(
"ilfilesystemgui",
"listFiles"));
297 $this->tpl->setVariable(
"TXT_FILE_FEEDBACK",
298 $lng->txt(
"exc_add_feedback_file"));
302 $this->tpl->setVariable(
"TXT_FILE_FEEDBACK",
303 $lng->txt(
"exc_fb_files").
" (".$cnt_files.
")");
307 if($peer_review = $submission->getPeerReview())
310 $given = $peer_review->countGivenFeedback(
true, $this->part_id);
311 $received =
sizeof($peer_review->getPeerReviewsByPeerId($this->part_id,
true));
313 $this->tpl->setCurrentBlock(
"peer_review_bl");
315 $this->tpl->setVariable(
"LINK_PEER_REVIEW_GIVEN",
316 $ilCtrl->getLinkTargetByClass(
"ilexpeerreviewgui",
"showGivenPeerReview"));
317 $this->tpl->setVariable(
"TXT_PEER_REVIEW_GIVEN",
318 $lng->txt(
"exc_peer_review_given").
" (".$given.
")");
320 $this->tpl->setVariable(
"TXT_PEER_REVIEW_RECEIVED",
321 $lng->txt(
"exc_peer_review_show").
" (".$received.
")");
322 $this->tpl->setVariable(
"LINK_PEER_REVIEW_RECEIVED",
323 $ilCtrl->getLinkTargetByClass(
"ilexpeerreviewgui",
"showReceivedPeerReview"));
332 $this->tpl->parseCurrentBlock();
338 $this->tpl->touchBlock(
"member_has_no_team_bl");
341 $ilCtrl->setParameter($this->parent_obj,
"ass_id",
"");
342 $ilCtrl->setParameter($this->parent_obj,
"member_id",
"");
349 $url = $ilCtrl->getLinkTarget($this->
getParentObject(),
"saveCommentForLearners",
"",
true,
false);
350 $this->overlay_tpl->setVariable(
"AJAX_URL",
$url);
352 return parent::render().
353 $this->overlay_tpl->get();
addCommandButton($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
Add Command button.
static _lookupName($a_user_id)
lookup user name
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
setDescription($a_val)
Set description.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
static getAssignmentDataOfExercise($a_exc_id)
Get assignments data of an exercise in an array.
Exercise participant table.
static shortenText($a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
numericOrdering($a_f)
Check whether field is numeric.
getParentObject()
Get parent object.
_lookupFullname($a_user_id)
Lookup Full Name.
__construct($a_parent_obj, $a_parent_cmd, $a_exc, $a_part_id)
Constructor.
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
setTitle($a_title, $a_icon=0, $a_icon_alt=0)
Set title and title icon.
setTopCommands($a_val)
Set top commands (display command buttons on top of table, too)
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
special template class to simplify handling of ITX/PEAR
This is a utility class for the yui overlays.
static formatDate(ilDateTime $date)
Format a date public.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
fillRow($d)
Fill table row.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
This class represents a text area property in a property form.
setEnableHeader($a_enableheader)
Set Enable Header.
setEnableTitle($a_enabletitle)
Set Enable Title.
addColumn($a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
static formCheckbox($checked, $varname, $value, $disabled=false)
??? public