ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilExSubmissionTeamGUI Class Reference

Submission team. More...

+ Collaboration diagram for ilExSubmissionTeamGUI:

Public Member Functions

 executeCommand ()
 
 returnToParentObject ()
 
 submissionScreenTeamObject ()
 Displays a form which allows members to manage team uploads. More...
 
 addTeamMemberActionObject (array $a_user_ids=array())
 
 confirmDeleteTeamObject ()
 
 confirmRemoveTeamMemberObject (bool $a_full_delete=false)
 
 removeTeamMemberObject (bool $a_full_delete=false)
 
 submissionScreenTeamLogObject ()
 
 createSingleMemberTeamObject ()
 
 showTeamLogObject ()
 
 getAdoptForm ()
 Get Adopt form. More...
 
 createTeamObject ()
 
 createAdoptedTeamObject ()
 
 addUserFromAutoCompleteObject ()
 Add user as member. More...
 

Static Public Member Functions

static getOverviewContent (ilInfoScreenGUI $a_info, ilExSubmission $a_submission)
 
static handleTabs ()
 

Protected Member Functions

 canEditTeam ()
 

Protected Attributes

ilCtrl $ctrl
 
ilTabsGUI $tabs_gui
 
ilLanguage $lng
 
ilGlobalTemplateInterface $tpl
 
ilToolbarGUI $toolbar
 
ilObjUser $user
 
ilObjExercise $exercise
 
ilExAssignment $assignment
 
ilExSubmission $submission
 
ilExAssignmentTeam $team = null
 
array $requested_team_ids = []
 
GUIRequest $request
 

Detailed Description

Member Function Documentation

◆ addTeamMemberActionObject()

ilExSubmissionTeamGUI::addTeamMemberActionObject ( array  $a_user_ids = array())
Exceptions
ilExcUnknownAssignmentTypeException

Definition at line 263 of file class.ilExSubmissionTeamGUI.php.

References canEditTeam(), ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

Referenced by addUserFromAutoCompleteObject().

265  : void {
266  if (!$this->canEditTeam()) {
267  $this->ctrl->redirect($this, "submissionScreenTeam");
268  }
269 
270  if ($a_user_ids === []) {
271  $this->tpl->setOnScreenMessage('failure', $this->lng->txt("no_checkbox"));
272  return;
273  }
274 
275  $new_users = [];
276 
277  foreach ($a_user_ids as $user_id) {
278  if ($this->team->addTeamMember($user_id, $this->exercise->getRefId())) {
279  $new_users[] = $user_id;
280 
281  // #14277
282  if (!$this->exercise->members_obj->isAssigned($user_id)) {
283  $this->exercise->members_obj->assignMember($user_id);
284  }
285  } else {
286  // #11959
287  $this->tpl->setOnScreenMessage('failure', $this->lng->txt("exc_members_already_assigned_team"), true);
288  }
289  }
290 
291  if ($new_users !== []) {
292  // re-evaluate complete team, as new member could have already submitted
293  $this->exercise->processExerciseStatus(
294  $this->assignment,
295  $this->team->getMembers(),
296  $this->submission->hasSubmitted(),
297  $this->submission->validatePeerReviews()
298  );
299  // :TODO: notification?
300  $this->tpl->setOnScreenMessage('success', $this->lng->txt("settings_saved"), true);
301  }
302 
303  $this->ctrl->redirect($this, "submissionScreenTeam");
304  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addUserFromAutoCompleteObject()

ilExSubmissionTeamGUI::addUserFromAutoCompleteObject ( )

Add user as member.

Exceptions
ilExcUnknownAssignmentTypeException

Definition at line 580 of file class.ilExSubmissionTeamGUI.php.

References ilObjUser\_lookupId(), addTeamMemberActionObject(), ILIAS\Repository\lng(), and submissionScreenTeamObject().

580  : void
581  {
582  $user_login = $this->request->getUserLogin();
583  if ($user_login == "") {
584  $this->tpl->setOnScreenMessage('failure', $this->lng->txt('msg_no_search_string'));
586  return;
587  }
588 
589  $users = explode(',', $user_login);
590 
591  $user_ids = array();
592  foreach ($users as $user) {
593  $user_id = ilObjUser::_lookupId($user);
594 
595  if (!$user_id) {
596  $this->tpl->setOnScreenMessage('failure', $this->lng->txt('user_not_known'));
598  return;
599  }
600 
601  $user_ids[] = $user_id;
602  }
603 
604  $this->addTeamMemberActionObject($user_ids);
605  }
static _lookupId($a_user_str)
addTeamMemberActionObject(array $a_user_ids=array())
submissionScreenTeamObject()
Displays a form which allows members to manage team uploads.
+ Here is the call graph for this function:

◆ canEditTeam()

ilExSubmissionTeamGUI::canEditTeam ( )
protected

Definition at line 212 of file class.ilExSubmissionTeamGUI.php.

Referenced by addTeamMemberActionObject(), confirmRemoveTeamMemberObject(), removeTeamMemberObject(), and submissionScreenTeamObject().

212  : bool
213  {
214  return (($this->submission->canSubmit() &&
215  !$this->submission->getAssignment()->getTeamTutor()) ||
216  $this->submission->isTutor());
217  }
+ Here is the caller graph for this function:

◆ confirmDeleteTeamObject()

ilExSubmissionTeamGUI::confirmDeleteTeamObject ( )
Exceptions
ilExcUnknownAssignmentTypeException

Definition at line 309 of file class.ilExSubmissionTeamGUI.php.

References confirmRemoveTeamMemberObject().

309  : void
310  {
311  $this->confirmRemoveTeamMemberObject(true);
312  }
confirmRemoveTeamMemberObject(bool $a_full_delete=false)
+ Here is the call graph for this function:

◆ confirmRemoveTeamMemberObject()

ilExSubmissionTeamGUI::confirmRemoveTeamMemberObject ( bool  $a_full_delete = false)
Exceptions
ilExcUnknownAssignmentTypeException

Definition at line 317 of file class.ilExSubmissionTeamGUI.php.

References ILIAS\LTI\ToolProvider\$details, $id, $ilUser, $requested_team_ids, $tpl, $user, canEditTeam(), ILIAS\Repository\ctrl(), ilUserUtil\getNamePresentation(), ILIAS\Repository\lng(), removeTeamMemberObject(), returnToParentObject(), and ilGlobalTemplateInterface\setContent().

Referenced by confirmDeleteTeamObject().

319  : void {
321  $tpl = $this->tpl;
322 
323  if (!$this->submission->isTutor()) {
324  $ids = $a_full_delete ? $this->team->getMembers() : $this->requested_team_ids;
325 
326  if ([] === $ids && !$this->canEditTeam()) {
327  $this->tpl->setOnScreenMessage('failure', $this->lng->txt("select_one"), true);
328  $this->ctrl->redirect($this, "submissionScreenTeam");
329  }
330  } else {
332  if ([] === $ids) {
333  $this->returnToParentObject();
334  }
335  }
336 
337  $members = $this->team->getMembers();
338  if (count($members) <= count($ids)) {
339  if (count($members) == 1 && $members[0] == $ilUser->getId()) {
340  // direct team deletion - no confirmation
341  $this->removeTeamMemberObject($a_full_delete);
342  return;
343  } else {
344  $this->tpl->setOnScreenMessage('failure', $this->lng->txt("exc_team_at_least_one"), true);
345  $this->ctrl->redirect($this, "submissionScreenTeam");
346  }
347  }
348 
349  $cgui = new ilConfirmationGUI();
350  $cgui->setFormAction($this->ctrl->getFormAction($this));
351  $cgui->setHeaderText($this->lng->txt("exc_team_member_remove_sure"));
352  $cgui->setConfirm($this->lng->txt("remove"), "removeTeamMember");
353  $cgui->setCancel($this->lng->txt("cancel"), $this->submission->isTutor()
354  ? "returnToParent"
355  : "submissionScreenTeam");
356 
357  $files = $this->submission->getFiles();
358 
359  foreach ($ids as $id) {
360  $details = array();
361  foreach ($files as $file) {
362  if ($file["owner_id"] == $id) {
363  $details[] = $file["filetitle"];
364  }
365  }
366  $uname = ilUserUtil::getNamePresentation($id);
367  if ($details !== []) {
368  $uname .= ": " . implode(", ", $details);
369  }
370  $cgui->addItem("id[]", $id, $uname);
371  }
372 
373  $tpl->setContent($cgui->getHTML());
374  }
static getNamePresentation( $a_user_id, bool $a_user_image=false, bool $a_profile_link=false, string $a_profile_back_link="", bool $a_force_first_lastname=false, bool $a_omit_login=false, bool $a_sortable=true, bool $a_return_data_array=false, $a_ctrl_path="ilpublicuserprofilegui")
Default behaviour is:
removeTeamMemberObject(bool $a_full_delete=false)
array $details
Details for error message relating to last request processed.
Definition: System.php:109
setContent(string $a_html)
Sets content for standard template.
ilGlobalTemplateInterface $tpl
$ilUser
Definition: imgupload.php:34
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createAdoptedTeamObject()

ilExSubmissionTeamGUI::createAdoptedTeamObject ( )
Exceptions
ilExcUnknownAssignmentTypeException

Definition at line 554 of file class.ilExSubmissionTeamGUI.php.

References $ctrl, $ilUser, $lng, $user, ilExAssignmentTeam\adoptTeams(), getAdoptForm(), ilExAssignmentTeam\getTeamId(), and ilLanguage\txt().

554  : void
555  {
556  $ilCtrl = $this->ctrl;
558  $lng = $this->lng;
559 
560  $form = $this->getAdoptForm();
561  $form->checkInput();
562  if ($this->submission->canSubmit()) {
563  $src_ass_id = $form->getInput("ass_adpt");
564  if ($src_ass_id > 0) {
565  ilExAssignmentTeam::adoptTeams($src_ass_id, $this->assignment->getId(), $ilUser->getId(), $this->exercise->getRefId());
566  } else {
567  ilExAssignmentTeam::getTeamId($this->assignment->getId(), $ilUser->getId(), true);
568  }
569 
570  $this->tpl->setOnScreenMessage('success', $lng->txt("settings_saved"), true);
571  }
572 
573  $ilCtrl->redirect($this, "returnToParent");
574  }
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
static getTeamId(int $a_assignment_id, int $a_user_id, bool $a_create_on_demand=false)
$ilUser
Definition: imgupload.php:34
static adoptTeams(int $a_source_ass_id, int $a_target_ass_id, int $a_user_id=null, int $a_exc_ref_id=null)
+ Here is the call graph for this function:

◆ createSingleMemberTeamObject()

ilExSubmissionTeamGUI::createSingleMemberTeamObject ( )

Definition at line 456 of file class.ilExSubmissionTeamGUI.php.

References ilExAssignmentTeam\getTeamId(), ILIAS\Repository\lng(), and returnToParentObject().

456  : void
457  {
459  $this->assignment->getId(),
460  $this->submission->getUserId(),
461  true
462  );
463  $this->tpl->setOnScreenMessage('success', $this->lng->txt("settings_saved"), true);
464  $this->returnToParentObject();
465  }
static getTeamId(int $a_assignment_id, int $a_user_id, bool $a_create_on_demand=false)
+ Here is the call graph for this function:

◆ createTeamObject()

ilExSubmissionTeamGUI::createTeamObject ( )

Definition at line 524 of file class.ilExSubmissionTeamGUI.php.

References $ctrl, $ilUser, $tpl, $user, ilExAssignmentTeam\getAdoptableTeamAssignments(), getAdoptForm(), ilExAssignmentTeam\getTeamId(), ILIAS\Repository\lng(), and ilGlobalTemplateInterface\setContent().

524  : void
525  {
526  $ilCtrl = $this->ctrl;
528  $tpl = $this->tpl;
529 
530  if ($this->submission->canSubmit()) {
531  $options = ilExAssignmentTeam::getAdoptableTeamAssignments($this->assignment->getExerciseId(), $this->assignment->getId(), $ilUser->getId());
532  if ($options !== []) {
533  $form = $this->getAdoptForm();
534  $tpl->setContent($form->getHTML());
535  return;
536  }
537 
538  ilExAssignmentTeam::getTeamId($this->assignment->getId(), $ilUser->getId(), true);
539 
540  // #18046
541  if (!$this->exercise->members_obj->isAssigned($ilUser->getId())) {
542  $this->exercise->members_obj->assignMember($ilUser->getId());
543  }
544 
545  $this->tpl->setOnScreenMessage('success', $this->lng->txt("settings_saved"), true);
546  }
547 
548  $ilCtrl->redirect($this, "returnToParent");
549  }
static getAdoptableTeamAssignments(int $a_exercise_id, int $a_exclude_ass_id=null, int $a_user_id=null)
setContent(string $a_html)
Sets content for standard template.
static getTeamId(int $a_assignment_id, int $a_user_id, bool $a_create_on_demand=false)
ilGlobalTemplateInterface $tpl
$ilUser
Definition: imgupload.php:34
+ Here is the call graph for this function:

◆ executeCommand()

ilExSubmissionTeamGUI::executeCommand ( )
Exceptions
ilCtrlException

Definition at line 78 of file class.ilExSubmissionTeamGUI.php.

References $ctrl, ILIAS\Repository\ctrl(), ilCtrl\getNextClass(), ILIAS\Repository\lng(), and ilUserAutoComplete\PRIVACY_MODE_RESPECT_USER_SETTING.

78  : void
79  {
80  $ilCtrl = $this->ctrl;
81 
82  $class = $ilCtrl->getNextClass($this);
83  $cmd = $ilCtrl->getCmd("submissionScreenTeam");
84 
85  if (!$this->assignment->hasTeam() ||
86  !$this->submission->canView()) {
87  return;
88  }
89  $this->team = $this->submission->getTeam();
90 
91  if (!$this->submission->isTutor()) {
92  self::handleTabs();
93  $this->tabs_gui->activateTab("team");
94  }
95 
96  switch ($class) {
97  case 'ilrepositorysearchgui':
98  $this->ctrl->setReturn($this, 'submissionScreenTeam');
99  $rep_search = new ilRepositorySearchGUI();
100  if (!$this->submission->isTutor()) {
101  $rep_search->setPrivacyMode(ilUserAutoComplete::PRIVACY_MODE_RESPECT_USER_SETTING);
102  }
103  $rep_search->setTitle($this->lng->txt("exc_team_member_add"));
104  $rep_search->setCallback($this, 'addTeamMemberActionObject');
105  $this->ctrl->forwardCommand($rep_search);
106  break;
107 
108  default:
109  $this->{$cmd . "Object"}();
110  break;
111  }
112  }
getNextClass($a_gui_class=null)
+ Here is the call graph for this function:

◆ getAdoptForm()

ilExSubmissionTeamGUI::getAdoptForm ( )

Get Adopt form.

Definition at line 476 of file class.ilExSubmissionTeamGUI.php.

References $ctrl, $id, $ilUser, $lng, $user, ilExAssignmentTeam\getAdoptableTeamAssignments(), ilExAssignmentTeam\getAssignmentTeamMap(), ilCtrl\getFormAction(), ilUserUtil\getNamePresentation(), ilRadioGroupInputGUI\setValue(), and ilLanguage\txt().

Referenced by createAdoptedTeamObject(), and createTeamObject().

477  {
478  $ctrl = $this->ctrl;
479  $lng = $this->lng;
481 
482  $form = new ilPropertyFormGUI();
483  $form->setTitle($lng->txt("exc_team_assignment_adopt_user"));
484  $form->setFormAction($ctrl->getFormAction($this, "createAdoptedTeam"));
485 
486  $teams = new ilRadioGroupInputGUI($lng->txt("exc_assignment"), "ass_adpt");
487  $teams->setValue(-1);
488 
489  $teams->addOption(new ilRadioOption($lng->txt("exc_team_assignment_adopt_none_user"), -1));
490 
491  $current_map = ilExAssignmentTeam::getAssignmentTeamMap($this->assignment->getId());
492 
493  $options = ilExAssignmentTeam::getAdoptableTeamAssignments($this->assignment->getExerciseId(), $this->assignment->getId(), $ilUser->getId());
494  foreach ($options as $id => $item) {
495  $members = array();
496  $free = false;
497  foreach ($item["user_team"] as $user_id) {
498  $members[$user_id] = ilUserUtil::getNamePresentation($user_id);
499 
500  if (array_key_exists($user_id, $current_map)) {
501  $members[$user_id] .= " (" . $lng->txt("exc_team_assignment_adopt_already_assigned") . ")";
502  } else {
503  $free = true;
504  }
505  }
506  asort($members);
507  $members = implode("<br />", $members);
508  $option = new ilRadioOption($item["title"], $id);
509  $option->setInfo($members);
510  if (!$free) {
511  $option->setDisabled(true);
512  }
513  $teams->addOption($option);
514  }
515 
516  $form->addItem($teams);
517 
518  $form->addCommandButton("createAdoptedTeam", $lng->txt("save"));
519  $form->addCommandButton("returnToParent", $lng->txt("cancel"));
520 
521  return $form;
522  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getNamePresentation( $a_user_id, bool $a_user_image=false, bool $a_profile_link=false, string $a_profile_back_link="", bool $a_force_first_lastname=false, bool $a_omit_login=false, bool $a_sortable=true, bool $a_return_data_array=false, $a_ctrl_path="ilpublicuserprofilegui")
Default behaviour is:
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
static getAdoptableTeamAssignments(int $a_exercise_id, int $a_exclude_ass_id=null, int $a_user_id=null)
This class represents a property in a property form.
static getAssignmentTeamMap(int $a_ass_id)
$ilUser
Definition: imgupload.php:34
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
getFormAction(object $a_gui_obj, string $a_fallback_cmd=null, string $a_anchor=null, bool $is_async=false, bool $has_xml_style=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getOverviewContent()

static ilExSubmissionTeamGUI::getOverviewContent ( ilInfoScreenGUI  $a_info,
ilExSubmission  $a_submission 
)
static

Definition at line 114 of file class.ilExSubmissionTeamGUI.php.

References $DIC, $team, ilInfoScreenGUI\addProperty(), ilExSubmission\getAssignment(), ilLinkButton\getInstance(), ilExcAssMemberState\getInstanceByIds(), ilExSubmission\getLastSubmission(), ilUserUtil\getNamePresentation(), ilExSubmission\getTeam(), ilExSubmission\getUserId(), ilExSubmission\hasSubmitted(), and ilLanguage\txt().

Referenced by ilExSubmissionGUI\executeCommand().

117  : void {
118  global $DIC;
119 
120  $lng = $DIC->language();
121  $ilCtrl = $DIC->ctrl();
122 
123  if (!$a_submission->getAssignment()->hasTeam()) {
124  return;
125  }
126 
127  $state = ilExcAssMemberState::getInstanceByIds($a_submission->getAssignment()->getId(), $a_submission->getUserId());
128 
129  $team_members = $a_submission->getTeam()->getMembers();
130  if ($team_members !== []) { // we have a team
131  $team = array();
132  foreach ($team_members as $member_id) {
133  //$team[] = ilObjUser::_lookupFullname($member_id);
134  $team[] = ilUserUtil::getNamePresentation($member_id, false, false, "", false);
135  }
136  $team = implode("; ", $team);
137 
138  if (!$a_submission->getAssignment()->getTeamTutor()) {
139  #23685
140  // any team member upload?
141  if (!$a_submission->getLastSubmission()) {
142  $button = ilLinkButton::getInstance();
143  $button->setCaption("exc_delete_team");
144  $button->setUrl($ilCtrl->getLinkTargetByClass(array("ilExSubmissionGUI", "ilExSubmissionTeamGUI"), "confirmDeleteTeam"));
145  $team .= " " . $button->render();
146  }
147  $button = ilLinkButton::getInstance();
148  $button->setCaption("exc_manage_team");
149  $button->setUrl($ilCtrl->getLinkTargetByClass(array("ilExSubmissionGUI", "ilExSubmissionTeamGUI"), "submissionScreenTeam"));
150  } else {
151  $button = ilLinkButton::getInstance();
152  $button->setCaption("exc_team_log");
153  $button->setUrl($ilCtrl->getLinkTargetByClass(array("ilExSubmissionGUI", "ilExSubmissionTeamGUI"), "submissionScreenTeamLog"));
154  }
155  $team .= "<br><br>" . $button->render();
156 
157  $a_info->addProperty($lng->txt("exc_team_members"), $team);
158  } else {
159  //if($a_submission->getAssignment()->beforeDeadline()) // this was "for all users"
160  if (!$state->hasSubmissionEnded()) { // this is for current user/team -> no team creation, if no submission possible
161  if (!$a_submission->hasSubmitted()) {
162  $team_info = $lng->txt("exc_no_team_yet_notice");
163  } else {
164  $team_info = '<span class="warning">' . $lng->txt("exc_no_team_yet_notice") . '</span>';
165  }
166 
167  if (!$a_submission->getAssignment()->getTeamTutor()) {
168  $button = ilLinkButton::getInstance();
169  $button->setPrimary(true);
170  $button->setCaption("exc_create_team"); // team creation
171  $button->setUrl($ilCtrl->getLinkTargetByClass(array("ilExSubmissionGUI", "ilExSubmissionTeamGUI"), "createTeam"));
172  $team_info .= " " . $button->render();
173 
174  $team_info .= '<div class="ilFormInfo">' . $lng->txt("exc_no_team_yet_info") . '</div>';
175  } else {
176  $team_info .= '<div class="ilFormInfo">' . $lng->txt("exc_no_team_yet_info_tutor") . '</div>';
177  }
178  } else {
179  $team_info = $lng->txt("exc_create_team_times_up_warning");
180  }
181 
182  $a_info->addProperty($lng->txt("exc_team_members"), $team_info);
183  }
184  }
static getNamePresentation( $a_user_id, bool $a_user_image=false, bool $a_profile_link=false, string $a_profile_back_link="", bool $a_force_first_lastname=false, bool $a_omit_login=false, bool $a_sortable=true, bool $a_return_data_array=false, $a_ctrl_path="ilpublicuserprofilegui")
Default behaviour is:
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
addProperty(string $a_name, string $a_value, string $a_link="")
add a property to current section
global $DIC
Definition: feed.php:28
static getInstanceByIds(int $a_ass_id, int $a_user_id=0)
getLastSubmission()
TODO -> get rid of getTableUserWhere and move to repository class Get the date of the last submission...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ handleTabs()

static ilExSubmissionTeamGUI::handleTabs ( )
static

Definition at line 191 of file class.ilExSubmissionTeamGUI.php.

References $DIC, and ilLanguage\txt().

Referenced by ilExSubmissionBaseGUI\handleTabs().

191  : void
192  {
193  global $DIC;
194 
195  $ilTabs = $DIC->tabs();
196  $ilCtrl = $DIC->ctrl();
197  $lng = $DIC->language();
198 
199  $ilTabs->addTab(
200  "team",
201  $lng->txt("exc_team"),
202  $ilCtrl->getLinkTargetByClass("ilExSubmissionTeamGUI", "submissionScreenTeam")
203  );
204 
205  $ilTabs->addTab(
206  "log",
207  $lng->txt("exc_team_log"),
208  $ilCtrl->getLinkTargetByClass("ilExSubmissionTeamGUI", "submissionScreenTeamLog")
209  );
210  }
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
global $DIC
Definition: feed.php:28
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ removeTeamMemberObject()

ilExSubmissionTeamGUI::removeTeamMemberObject ( bool  $a_full_delete = false)
Exceptions
ilExcUnknownAssignmentTypeException

Definition at line 379 of file class.ilExSubmissionTeamGUI.php.

References $ilUser, $requested_team_ids, $user, canEditTeam(), ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

Referenced by confirmRemoveTeamMemberObject().

381  : void {
383 
384  $cancel_cmd = $this->submission->isTutor()
385  ? "returnToParent"
386  : "submissionScreenTeam";
387 
388  $ids = [];
389  if ($a_full_delete) {
390  $ids = $this->team->getMembers();
391  } else {
393  }
394  $ids = array_filter(array_map('intval', $ids));
395 
396  if ([] === $ids && !$this->canEditTeam()) {
397  $this->tpl->setOnScreenMessage('failure', $this->lng->txt("select_one"), true);
398  $this->ctrl->redirect($this, $cancel_cmd);
399  }
400 
401  $team_deleted = $a_full_delete;
402  if (!$team_deleted) {
403  $members = $this->team->getMembers();
404  if (count($members) <= count($ids)) {
405  if (count($members) == 1 && $members[0] == $ilUser->getId()) {
406  $team_deleted = true;
407  } else {
408  $this->tpl->setOnScreenMessage('failure', $this->lng->txt("exc_team_at_least_one"), true);
409  $this->ctrl->redirect($this, $cancel_cmd);
410  }
411  }
412  }
413 
414  foreach ($ids as $user_id) {
415  $this->team->removeTeamMember($user_id, $this->exercise->getRefId());
416  }
417 
418  // reset ex team members, as any submission is not valid without team
419  $this->exercise->processExerciseStatus(
420  $this->assignment,
421  $ids,
422  false
423  );
424 
425  if (!$team_deleted) {
426  // re-evaluate complete team, as removed member might have had submitted
427  $this->exercise->processExerciseStatus(
428  $this->assignment,
429  $this->team->getMembers(),
430  $this->submission->hasSubmitted(),
431  $this->submission->validatePeerReviews()
432  );
433  }
434 
435  $this->tpl->setOnScreenMessage('success', $this->lng->txt("settings_saved"), true);
436  if (!$team_deleted) {
437  $this->ctrl->redirect($this, $cancel_cmd);
438  } else {
439  $this->ctrl->redirect($this, "returnToParent");
440  }
441  }
$ilUser
Definition: imgupload.php:34
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ returnToParentObject()

ilExSubmissionTeamGUI::returnToParentObject ( )

Definition at line 186 of file class.ilExSubmissionTeamGUI.php.

References ILIAS\Repository\ctrl().

Referenced by confirmRemoveTeamMemberObject(), and createSingleMemberTeamObject().

186  : void
187  {
188  $this->ctrl->returnToParent($this);
189  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showTeamLogObject()

ilExSubmissionTeamGUI::showTeamLogObject ( )

Definition at line 467 of file class.ilExSubmissionTeamGUI.php.

467  : void
468  {
469  $tbl = new ilExAssignmentTeamLogTableGUI($this, "showTeamLog", $this->team);
470  $this->tpl->setContent($tbl->getHTML());
471  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ submissionScreenTeamLogObject()

ilExSubmissionTeamGUI::submissionScreenTeamLogObject ( )

Definition at line 443 of file class.ilExSubmissionTeamGUI.php.

443  : void
444  {
445  $this->tabs_gui->activateTab("log");
446 
448  $this,
449  "submissionScreenTeamLog",
450  $this->team
451  );
452 
453  $this->tpl->setContent($tbl->getHTML());
454  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ submissionScreenTeamObject()

ilExSubmissionTeamGUI::submissionScreenTeamObject ( )

Displays a form which allows members to manage team uploads.

Definition at line 222 of file class.ilExSubmissionTeamGUI.php.

References $team, $toolbar, canEditTeam(), ilRepositorySearchGUI\fillAutoCompleteToolbar(), ILIAS\Repository\lng(), and ilExAssignmentTeamTableGUI\MODE_EDIT.

Referenced by addUserFromAutoCompleteObject().

222  : void
223  {
224  $ilToolbar = $this->toolbar;
225 
226  // #13414
227  $read_only = !$this->canEditTeam();
228 
229  if ($this->submission->getAssignment()->afterDeadlineStrict(false)) {
230  $this->tpl->setOnScreenMessage('info', $this->lng->txt("exercise_time_over"));
231  } elseif (!$read_only) {
232  $add_search = $this->submission->isTutor();
233  // add member
235  $this,
236  $ilToolbar,
237  array(
238  'auto_complete_name' => $this->lng->txt('user'),
239  'submit_name' => $this->lng->txt('add'),
240  'add_search' => $add_search,
241  'add_from_container' => $this->exercise->getRefId()
242  )
243  );
244  } elseif ($this->submission->getAssignment()->getTeamTutor()) {
245  $this->tpl->setOnScreenMessage('info', $this->lng->txt("exc_no_team_yet_info_tutor"));
246  }
247 
248  $tbl = new ilExAssignmentTeamTableGUI(
249  $this,
250  "submissionScreenTeam",
252  $this->exercise->getRefId(),
253  $this->team,
254  $read_only
255  );
256 
257  $this->tpl->setContent($tbl->getHTML());
258  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static fillAutoCompleteToolbar(object $parent_object, ilToolbarGUI $toolbar=null, array $a_options=[], bool $a_sticky=false)
array( auto_complete_name = $lng->txt(&#39;user&#39;), auto_complete_size = 15, user_type = array(ilCoursePar...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $assignment

ilExAssignment ilExSubmissionTeamGUI::$assignment
protected

Definition at line 38 of file class.ilExSubmissionTeamGUI.php.

◆ $ctrl

ilCtrl ilExSubmissionTeamGUI::$ctrl
protected

◆ $exercise

ilObjExercise ilExSubmissionTeamGUI::$exercise
protected

Definition at line 37 of file class.ilExSubmissionTeamGUI.php.

◆ $lng

ilLanguage ilExSubmissionTeamGUI::$lng
protected

Definition at line 33 of file class.ilExSubmissionTeamGUI.php.

Referenced by createAdoptedTeamObject(), and getAdoptForm().

◆ $request

GUIRequest ilExSubmissionTeamGUI::$request
protected

Definition at line 45 of file class.ilExSubmissionTeamGUI.php.

◆ $requested_team_ids

array ilExSubmissionTeamGUI::$requested_team_ids = []
protected

◆ $submission

ilExSubmission ilExSubmissionTeamGUI::$submission
protected

Definition at line 39 of file class.ilExSubmissionTeamGUI.php.

◆ $tabs_gui

ilTabsGUI ilExSubmissionTeamGUI::$tabs_gui
protected

Definition at line 32 of file class.ilExSubmissionTeamGUI.php.

◆ $team

ilExAssignmentTeam ilExSubmissionTeamGUI::$team = null
protected

◆ $toolbar

ilToolbarGUI ilExSubmissionTeamGUI::$toolbar
protected

Definition at line 35 of file class.ilExSubmissionTeamGUI.php.

Referenced by submissionScreenTeamObject().

◆ $tpl

ilGlobalTemplateInterface ilExSubmissionTeamGUI::$tpl
protected

◆ $user


The documentation for this class was generated from the following file: