23 $this->exercise = $a_exercise;
24 $this->submission = $a_submission;
29 $this->tabs_gui = $ilTabs;
38 $class = $ilCtrl->getNextClass($this);
39 $cmd = $ilCtrl->getCmd(
"submissionScreenTeam");
41 if(!$this->assignment->hasTeam() ||
42 !$this->submission->canView())
46 $this->team = $this->submission->getTeam();
48 if(!$this->submission->isTutor())
51 $this->tabs_gui->activateTab(
"team");
56 case 'ilrepositorysearchgui':
57 $this->ctrl->setReturn($this,
'submissionScreenTeam');
58 include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
60 $rep_search->setTitle($this->lng->txt(
"exc_team_member_add"));
61 $rep_search->setCallback($this,
'addTeamMemberActionObject');
62 $this->ctrl->forwardCommand($rep_search);
66 $this->{
$cmd.
"Object"}();
80 $team_members = $a_submission->
getTeam()->getMembers();
81 if(
sizeof($team_members))
84 foreach($team_members as $member_id)
94 $button->setCaption(
"exc_delete_team");
95 $button->setUrl($ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionTeamGUI"),
"confirmDeleteTeam"));
96 $team .=
" ".$button->render();
103 $button->setCaption(
"exc_manage_team");
104 $button->setUrl($ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionTeamGUI"),
"submissionScreenTeam"));
108 $button->setCaption(
"exc_team_log");
109 $button->setUrl($ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionTeamGUI"),
"submissionScreenTeamLog"));
111 $team .=
" ".$button->render();
121 $team_info = $lng->txt(
"exc_no_team_yet_notice");
125 $team_info =
'<span class="warning">'.$lng->txt(
"exc_no_team_yet_notice").
'</span>';
131 $button->setPrimary(
true);
132 $button->setCaption(
"exc_create_team");
133 $button->setUrl($ilCtrl->getLinkTargetByClass(array(
"ilExSubmissionGUI",
"ilExSubmissionTeamGUI"),
"createTeam"));
134 $team_info .=
" ".$button->render();
136 $team_info .=
'<div class="ilFormInfo">'.$lng->txt(
"exc_no_team_yet_info").
'</div>';
140 $team_info .=
'<div class="ilFormInfo">'.$lng->txt(
"exc_no_team_yet_info_tutor").
'</div>';
145 $team_info =
'<span class="warning">'.$lng->txt(
"exc_create_team_times_up_warning").
'</span>';
148 $a_info->
addProperty($lng->txt(
"exc_team_members"), $team_info);
154 $this->ctrl->returnToParent($this);
161 $ilTabs->addTab(
"team", $lng->txt(
"exc_team"),
162 $ilCtrl->getLinkTargetByClass(
"ilExSubmissionTeamGUI",
"submissionScreenTeam"));
164 $ilTabs->addTab(
"log", $lng->txt(
"exc_team_log"),
165 $ilCtrl->getLinkTargetByClass(
"ilExSubmissionTeamGUI",
"submissionScreenTeamLog"));
170 return (($this->submission->canSubmit() &&
171 !$this->submission->getAssignment()->getTeamTutor()) ||
172 $this->submission->isTutor());
187 if ($this->submission->getAssignment()->afterDeadlineStrict())
194 include_once
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
199 'auto_complete_name' => $this->lng->txt(
'user'),
200 'submit_name' => $this->lng->txt(
'add'),
201 'add_search' =>
true,
202 'add_from_container' => $this->exercise->getRefId()
206 else if($this->submission->getAssignment()->getTeamTutor())
211 include_once
"Modules/Exercise/classes/class.ilExAssignmentTeamTableGUI.php";
214 "submissionScreenTeam",
216 $this->exercise->getRefId(),
221 $this->tpl->setContent(
$tbl->getHTML());
228 $this->ctrl->redirect(
"submissionScreenTeam");
231 if(!count($a_user_ids))
237 foreach($a_user_ids as $user_id)
239 if($this->team->addTeamMember($user_id, $this->exercise->getRefId()))
241 $new_users[] = $user_id;
244 if (!$this->exercise->members_obj->isAssigned($user_id))
246 $this->exercise->members_obj->assignMember($user_id);
256 if(
sizeof($new_users))
259 $this->exercise->processExerciseStatus(
261 $this->team->getMembers(),
262 $this->submission->hasSubmitted(),
263 $this->submission->validatePeerReviews()
269 $this->ctrl->redirect($this,
"submissionScreenTeam");
281 if(!$this->submission->isTutor())
283 $ids = (bool)$a_full_delete
284 ? $this->team->getMembers()
291 $this->ctrl->redirect($this,
"submissionScreenTeam");
296 $ids = array(
$_GET[
"id"]);
303 $members = $this->team->getMembers();
304 if(
sizeof($members) <=
sizeof($ids))
306 if(
sizeof($members) == 1 && $members[0] == $ilUser->getId())
314 $this->ctrl->redirect($this,
"submissionScreenTeam");
318 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
320 $cgui->setFormAction($this->ctrl->getFormAction($this));
321 $cgui->setHeaderText($this->lng->txt(
"exc_team_member_remove_sure"));
322 $cgui->setConfirm($this->lng->txt(
"remove"),
"removeTeamMember");
323 $cgui->setCancel($this->lng->txt(
"cancel"), $this->submission->isTutor()
325 :
"submissionScreenTeam");
327 $files = $this->submission->getFiles();
329 include_once
"Services/User/classes/class.ilUserUtil.php";
334 foreach ($files as
$file)
336 if($file[
"owner_id"] == $id)
338 $details[] = $file[
"filetitle"];
344 $uname .=
": ".implode(
", ", $details);
346 $cgui->addItem(
"id[]", $id, $uname);
349 $tpl->setContent($cgui->getHTML());
356 $cancel_cmd = $this->submission->isTutor()
358 :
"submissionScreenTeam";
360 $ids = (bool)$a_full_delete
361 ? $this->team->getMembers()
368 $this->ctrl->redirect($this, $cancel_cmd);
371 $team_deleted = (bool)$a_full_delete;
374 $members = $this->team->getMembers();
375 if(
sizeof($members) <=
sizeof($ids))
377 if(
sizeof($members) == 1 && $members[0] == $ilUser->getId())
379 $team_deleted =
true;
384 $this->ctrl->redirect($this, $cancel_cmd);
389 foreach($ids as $user_id)
391 $this->team->removeTeamMember($user_id, $this->exercise->getRefId());
395 $this->exercise->processExerciseStatus(
404 $this->exercise->processExerciseStatus(
406 $this->team->getMembers(),
407 $this->submission->hasSubmitted(),
408 $this->submission->validatePeerReviews()
415 $this->ctrl->redirect($this, $cancel_cmd);
419 $this->ctrl->redirect($this,
"returnToParent");
425 $this->tabs_gui->activateTab(
"log");
427 include_once
"Modules/Exercise/classes/class.ilExAssignmentTeamLogTableGUI.php";
431 $this->tpl->setContent(
$tbl->getHTML());
437 $this->assignment->getId(),
438 $this->submission->getUserId(),
447 include_once
"Modules/Exercise/classes/class.ilExAssignmentTeamLogTableGUI.php";
449 $this->tpl->setContent(
$tbl->getHTML());
456 if($this->submission->canSubmit())
461 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
463 $form->setTitle($lng->txt(
"exc_team_assignment_adopt_user"));
464 $form->setFormAction($ilCtrl->getFormAction($this,
"createAdoptedTeam"));
469 $teams->addOption(
new ilRadioOption($lng->txt(
"exc_team_assignment_adopt_none_user"), -1));
473 include_once
"Services/User/classes/class.ilUserUtil.php";
478 foreach($item[
"user_team"] as $user_id)
482 if(array_key_exists($user_id, $current_map))
484 $members[$user_id] .=
" (".$lng->txt(
"exc_team_assignment_adopt_already_assigned").
")";
492 $members = implode(
"<br />", $members);
494 $option->setInfo($members);
497 $option->setDisabled(
true);
499 $teams->addOption($option);
502 $form->addItem($teams);
504 $form->addCommandButton(
"createAdoptedTeam", $lng->txt(
"save"));
505 $form->addCommandButton(
"returnToParent", $lng->txt(
"cancel"));
507 $tpl->setContent($form->getHTML());
514 if(!$this->exercise->members_obj->isAssigned($ilUser->getId()))
516 $this->exercise->members_obj->assignMember($ilUser->getId());
522 $ilCtrl->redirect($this,
"returnToParent");
529 if($this->submission->canSubmit())
531 $src_ass_id = (int)
$_POST[
"ass_adpt"];
544 $ilCtrl->redirect($this,
"returnToParent");
553 if(!strlen(trim(
$_POST[
'user_login'])))
560 $users = explode(
',',
$_POST[
'user_login']);
563 foreach($users as $user)
573 $user_ids[] = $user_id;
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
This class represents an option in a radio group.
createSingleMemberTeamObject()
List all log entries of team.
__construct(ilObjExercise $a_exercise, ilExSubmission $a_submission)
static getAssignmentTeamMap($a_ass_id)
Get team structure for assignment.
static getTeamId($a_assignment_id, $a_user_id, $a_create_on_demand=false)
Get team id for member id.
static _lookupId($a_user_str)
Lookup id by login.
static adoptTeams($a_source_ass_id, $a_target_ass_id, $a_user_id=null, $a_exc_ref_id=null)
_lookupFullname($a_user_id)
Lookup Full Name.
static getAdoptableTeamAssignments($a_exercise_id, $a_exclude_ass_id=null, $a_user_id=null)
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
submissionScreenTeamLogObject()
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, $a_return_data_array=false)
Default behaviour is:
submissionScreenTeamObject()
Displays a form which allows members to manage team uploads.
if(!is_array($argv)) $options
List all team members of an assignment.
getLastSubmission()
Get the date of the last submission of a user for the assignment.
addUserFromAutoCompleteObject()
Add user as member.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
removeTeamMemberObject($a_full_delete=false)
confirmDeleteTeamObject()
addProperty($a_name, $a_value, $a_link="")
add a property to current section
static getOverviewContent(ilInfoScreenGUI $a_info, ilExSubmission $a_submission)
confirmRemoveTeamMemberObject($a_full_delete=false)
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
addTeamMemberActionObject($a_user_ids=array())
createAdoptedTeamObject()
Confirmation screen class.