ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilExerciseManagementGUI Class Reference

Class ilExerciseManagementGUI. More...

+ Collaboration diagram for ilExerciseManagementGUI:

Public Member Functions

 __construct (ilObjExercise $a_exercise, ilExAssignment $a_ass=null)
 Constructor. More...
 
 executeCommand ()
 
 addSubTabs ($a_activate)
 adds tabs to tab gui object More...
 
 membersObject ()
 All participants and submission of one assignment. More...
 
 saveGradesObject ()
 Save grades. More...
 
 listTextAssignmentWithPeerReviewObject ()
 
 listTextAssignmentObject ($a_show_peer_review=false)
 
 addUserFromAutoCompleteObject ()
 Add user as member. More...
 
 addMembersObject ($a_user_ids=array())
 Add new partipant. More...
 
 selectAssignmentObject ()
 Select assignment. More...
 
 showParticipantObject ()
 Show Participant. More...
 
 selectParticipantObject ()
 Select participant. More...
 
 showGradesOverviewObject ()
 Show grades overview. More...
 
 redirectFeedbackMailObject ()
 set feedback status for member and redirect to mail screen More...
 
 downloadAllObject ()
 Download all submitted files (of all members). More...
 
 sendMembersObject ()
 Send assignment per mail to participants. More...
 
 confirmDeassignMembersObject ()
 Confirm deassigning members. More...
 
 deassignMembersObject ()
 Deassign members from exercise. More...
 
 saveCommentsObject ()
 
 saveStatusParticipantObject ()
 Save assignment status (participant view) More...
 
 saveStatusAllObject ()
 
 saveStatusSelectedObject ()
 
 saveCommentForLearnersObject ()
 Save comment for learner (asynch) More...
 
 exportExcelObject ()
 Export as excel. More...
 
 createTeamsObject ()
 
 dissolveTeamsObject ()
 
 adoptTeamsFromGroupObject (ilPropertyFormGUI $a_form=null)
 
 createTeamsFromGroupsObject ()
 
 initMultiFeedbackForm ($a_ass_id)
 
 showMultiFeedbackObject (ilPropertyFormGUI $a_form=null)
 Show multi-feedback screen. More...
 
 downloadMultiFeedbackZipObject ()
 Download multi-feedback structrue file. More...
 
 uploadMultiFeedbackObject ()
 Upload multi feedback file. More...
 
 showMultiFeedbackConfirmationTableObject ()
 Show multi feedback confirmation table. More...
 
 cancelMultiFeedbackObject ()
 Cancel Multi Feedback. More...
 
 saveMultiFeedbackObject ()
 Save multi feedback. More...
 

Data Fields

const VIEW_ASSIGNMENT = 1
 
const VIEW_PARTICIPANT = 2
 
const VIEW_GRADES = 3
 

Protected Member Functions

 getViewBack ()
 
 initSubmission ()
 
 getMultiActionUserIds ($a_keep_teams=false)
 
 saveStatus (array $a_data)
 Save status of selecte members. More...
 
 initGroupForm ()
 

Protected Attributes

 $exercise
 
 $assignment
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilExerciseManagementGUI::__construct ( ilObjExercise  $a_exercise,
ilExAssignment  $a_ass = null 
)

Constructor.

Parameters
int$a_exercise_id
Returns
object

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

34 {
35 global $ilCtrl, $ilTabs, $lng, $tpl;
36
37 $this->exercise = $a_exercise;
38 $this->assignment = $a_ass;
39
40 $ilCtrl->saveParameter($this, array("vw", "member_id"));
41
42 // :TODO:
43 $this->ctrl = $ilCtrl;
44 $this->tabs_gui = $ilTabs;
45 $this->lng = $lng;
46 $this->tpl = $tpl;
47 }
global $tpl
Definition: ilias.php:8
global $ilCtrl
Definition: ilias.php:18
global $lng
Definition: privfeed.php:40

References $ilCtrl, $lng, and $tpl.

Member Function Documentation

◆ addMembersObject()

ilExerciseManagementGUI::addMembersObject (   $a_user_ids = array())

Add new partipant.

Definition at line 409 of file class.ilExerciseManagementGUI.php.

410 {
411 global $ilAccess,$ilErr;
412
413 if(!count($a_user_ids))
414 {
415 ilUtil::sendFailure($this->lng->txt("no_checkbox"));
416 return false;
417 }
418
419 if(!$this->exercise->members_obj->assignMembers($a_user_ids))
420 {
421 ilUtil::sendFailure($this->lng->txt("exc_members_already_assigned"));
422 return false;
423 }
424 else
425 {
426 /* #16921
427 // #9946 - create team for new user(s) for each team upload assignment
428 foreach(ilExAssignment::getInstancesByExercise($this->exercise->getId()) as $ass)
429 {
430 if($ass->hasTeam())
431 {
432 include_once "Modules/Exercise/classes/class.ilExAssignmentTeam.php";
433 foreach($a_user_ids as $user_id)
434 {
435 // #15915
436 ilExAssignmentTeam::getTeamId($ass->getId(), $user_id, true);
437 }
438 }
439 }
440 */
441
442 ilUtil::sendSuccess($this->lng->txt("exc_members_assigned"),true);
443 }
444
445 $this->ctrl->redirect($this, "members");
446 return true;
447 }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.

References $ilErr, ilUtil\sendFailure(), and ilUtil\sendSuccess().

Referenced by addUserFromAutoCompleteObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addSubTabs()

ilExerciseManagementGUI::addSubTabs (   $a_activate)

adds tabs to tab gui object

Parameters
object$tabs_guiilTabsGUI object

Definition at line 179 of file class.ilExerciseManagementGUI.php.

180 {
181 global $ilTabs, $lng, $ilCtrl;
182
183 $ilCtrl->setParameter($this, "vw", "");
184 $ilCtrl->setParameter($this, "member_id", "");
185 $ilTabs->addSubTab("assignment", $lng->txt("exc_assignment_view"),
186 $ilCtrl->getLinkTarget($this, "members"));
187 $ilTabs->addSubTab("participant", $lng->txt("exc_participant_view"),
188 $ilCtrl->getLinkTarget($this, "showParticipant"));
189 $ilTabs->addSubTab("grades", $lng->txt("exc_grades_overview"),
190 $ilCtrl->getLinkTarget($this, "showGradesOverview"));
191 $ilTabs->activateSubTab($a_activate);
192 }

References $ilCtrl, and $lng.

Referenced by executeCommand(), membersObject(), showGradesOverviewObject(), showMultiFeedbackConfirmationTableObject(), showMultiFeedbackObject(), and showParticipantObject().

+ Here is the caller graph for this function:

◆ addUserFromAutoCompleteObject()

ilExerciseManagementGUI::addUserFromAutoCompleteObject ( )

Add user as member.

Definition at line 374 of file class.ilExerciseManagementGUI.php.

375 {
376 if(!strlen(trim($_POST['user_login'])))
377 {
378 ilUtil::sendFailure($this->lng->txt('msg_no_search_string'));
379 $this->membersObject();
380 return false;
381 }
382 $users = explode(',', $_POST['user_login']);
383
384 $user_ids = array();
385 foreach($users as $user)
386 {
387 $user_id = ilObjUser::_lookupId($user);
388
389 if(!$user_id)
390 {
391 ilUtil::sendFailure($this->lng->txt('user_not_known'));
392 return $this->membersObject();
393 }
394
395 $user_ids[] = $user_id;
396 }
397
398 if(!$this->addMembersObject($user_ids));
399 {
400 $this->membersObject();
401 return false;
402 }
403 return true;
404 }
membersObject()
All participants and submission of one assignment.
addMembersObject($a_user_ids=array())
Add new partipant.
static _lookupId($a_user_str)
Lookup id by login.
$_POST['username']
Definition: cron.php:12

References $_POST, ilObjUser\_lookupId(), addMembersObject(), membersObject(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ adoptTeamsFromGroupObject()

ilExerciseManagementGUI::adoptTeamsFromGroupObject ( ilPropertyFormGUI  $a_form = null)

Definition at line 1045 of file class.ilExerciseManagementGUI.php.

1046 {
1047 global $ilCtrl, $ilTabs, $lng, $tpl;
1048
1049 $ilTabs->clearTargets();
1050 $ilTabs->setBackTarget($lng->txt("back"),
1051 $ilCtrl->getLinkTarget($this, $this->getViewBack()));
1052
1053 if(!$a_form)
1054 {
1055 $a_form = $this->initGroupForm();
1056 }
1057 $tpl->setContent($a_form->getHTML());
1058 }

References $ilCtrl, $lng, $tpl, and initGroupForm().

Referenced by createTeamsFromGroupsObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cancelMultiFeedbackObject()

ilExerciseManagementGUI::cancelMultiFeedbackObject ( )

Cancel Multi Feedback.

Definition at line 1343 of file class.ilExerciseManagementGUI.php.

1344 {
1345 $this->assignment->clearMultiFeedbackDirectory();
1346 $this->ctrl->redirect($this, "members");
1347 }

◆ confirmDeassignMembersObject()

ilExerciseManagementGUI::confirmDeassignMembersObject ( )

Confirm deassigning members.

Definition at line 724 of file class.ilExerciseManagementGUI.php.

725 {
726 global $ilCtrl, $tpl, $lng;
727
728 $members = $this->getMultiActionUserIds();
729 if(is_array($members))
730 {
731 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
732 $cgui = new ilConfirmationGUI();
733 $cgui->setFormAction($ilCtrl->getFormAction($this));
734 $cgui->setHeaderText($lng->txt("exc_msg_sure_to_deassign_participant"));
735 $cgui->setCancel($lng->txt("cancel"), "members");
736 $cgui->setConfirm($lng->txt("remove"), "deassignMembers");
737
738 include_once("./Services/User/classes/class.ilUserUtil.php");
739 foreach ($members as $k => $m)
740 {
741 $cgui->addItem("member[$k]", $m,
742 ilUserUtil::getNamePresentation((int) $k, false, false, "", true));
743 }
744
745 $tpl->setContent($cgui->getHTML());
746 }
747 }
Confirmation screen class.
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:

References $ilCtrl, $lng, $tpl, getMultiActionUserIds(), and ilUserUtil\getNamePresentation().

+ Here is the call graph for this function:

◆ createTeamsFromGroupsObject()

ilExerciseManagementGUI::createTeamsFromGroupsObject ( )

Definition at line 1113 of file class.ilExerciseManagementGUI.php.

1114 {
1115 global $lng;
1116
1117 $form = $this->initGroupForm();
1118 if($form->checkInput())
1119 {
1120 include_once "Services/User/classes/class.ilUserUtil.php";
1121 $map = ilExAssignmentTeam::getGroupMembersMap($this->exercise->getRefId());
1122 $all_members = $teams = array();
1123 $valid = true;
1124 foreach(array_keys($map) as $grp_id)
1125 {
1126 $postvar = "grpt_".$grp_id;
1127 $members = $_POST[$postvar];
1128 if(is_array($members))
1129 {
1130 $teams[] = $members;
1131 $invalid_team_members = array();
1132
1133 foreach($members as $user_id)
1134 {
1135 if(!array_key_exists($user_id, $all_members))
1136 {
1137 $all_members[$user_id] = $grp_id;
1138 }
1139 else
1140 {
1141 // user is selected in multiple groups
1142 $invalid_team_members[] = $user_id;
1143 }
1144 }
1145
1146 if(sizeof($invalid_team_members))
1147 {
1148 $valid = false;
1149
1150 $alert = array();
1151 foreach($invalid_team_members as $user_id)
1152 {
1153 $user_name = ilUserUtil::getNamePresentation($user_id, false, false, "", true);
1154 $grp_title = $map[$all_members[$user_id]]["title"];
1155 $alert[] = sprintf($lng->txt("exc_adopt_group_teams_conflict"), $user_name, $grp_title);
1156 }
1157 $input = $form->getItemByPostVar($postvar);
1158 $input->setAlert(implode("<br/>", $alert));
1159 }
1160 }
1161 }
1162 if($valid)
1163 {
1164 if(sizeof($teams))
1165 {
1166 $existing_users = array_keys(ilExAssignmentTeam::getAssignmentTeamMap($this->assignment->getId()));
1167
1168 // create teams from group selections
1169 $sum = array("added"=>0, "blocked"=>0);
1170 foreach($teams as $members)
1171 {
1172 foreach($members as $user_id)
1173 {
1174 if(!$this->exercise->members_obj->isAssigned($user_id))
1175 {
1176 $this->exercise->members_obj->assignMember($user_id);
1177 }
1178
1179 if(!in_array($user_id, $existing_users))
1180 {
1181 $sum["added"]++;
1182 }
1183 else
1184 {
1185 $sum["blocked"]++;
1186 }
1187 }
1188
1189 $first = array_shift($members);
1190 $team = ilExAssignmentTeam::getInstanceByUserId($this->assignment->getId(), $first, true);
1191
1192 // getTeamId() does NOT send notification
1193 // $team->sendNotification($this->exercise->getRefId(), $first, "add");
1194
1195 if(sizeof($members))
1196 {
1197 foreach($members as $user_id)
1198 {
1199 $team->addTeamMember($user_id);
1200 }
1201 }
1202 }
1203
1204 $mess = array();
1205 if($sum["added"])
1206 {
1207 $mess[] = sprintf($lng->txt("exc_adopt_group_teams_added"), $sum["added"]);
1208 }
1209 if($sum["blocked"])
1210 {
1211 $mess[] = sprintf($lng->txt("exc_adopt_group_teams_blocked"), $sum["blocked"]);
1212 }
1213 if($sum["added"])
1214 {
1215 ilUtil::sendSuccess(implode(" ", $mess), true);
1216 }
1217 else
1218 {
1219 ilUtil::sendFailure(implode(" ", $mess), true);
1220 }
1221 }
1222 $this->ctrl->redirect($this, "members");
1223 }
1224 else
1225 {
1226 ilUtil::sendFailure($lng->txt("form_input_not_valid"));
1227 }
1228 }
1229
1230 $form->setValuesByPost();
1231 $this->adoptTeamsFromGroupObject($form);
1232 }
static getGroupMembersMap($a_exc_ref_id)
static getAssignmentTeamMap($a_ass_id)
Get team structure for assignment.
static getInstanceByUserId($a_assignment_id, $a_user_id, $a_create_on_demand=false)
adoptTeamsFromGroupObject(ilPropertyFormGUI $a_form=null)
$valid

References $_POST, $lng, $valid, adoptTeamsFromGroupObject(), ilExAssignmentTeam\getAssignmentTeamMap(), ilExAssignmentTeam\getGroupMembersMap(), ilExAssignmentTeam\getInstanceByUserId(), ilUserUtil\getNamePresentation(), initGroupForm(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ createTeamsObject()

ilExerciseManagementGUI::createTeamsObject ( )

Definition at line 949 of file class.ilExerciseManagementGUI.php.

950 {
951 global $ilCtrl;
952
953 $members = $this->getMultiActionUserIds(true);
954 if($members)
955 {
956 $new_members = array();
957
958 include_once "Modules/Exercise/classes/class.ilExAssignmentTeam.php";
959 foreach($members as $group)
960 {
961 if(is_array($group))
962 {
963 $new_members = array_merge($new_members, $group);
964
965 $first_user = $group;
966 $first_user = array_shift($first_user);
967 $team = ilExAssignmentTeam::getInstanceByUserId($this->assignment->getId(), $first_user);
968 foreach($group as $user_id)
969 {
970 $team->removeTeamMember($user_id);
971 }
972 }
973 else
974 {
975 $new_members[] = $group;
976 }
977 }
978
979 if(sizeof($new_members))
980 {
981 // see ilExSubmissionTeamGUI::addTeamMemberActionObject()
982
983 $first_user = array_shift($new_members);
984 $team = ilExAssignmentTeam::getInstanceByUserId($this->assignment->getId(), $first_user, true);
985 if(sizeof($new_members))
986 {
987 foreach($new_members as $user_id)
988 {
989 $team->addTeamMember($user_id);
990 }
991 }
992
993 // re-evaluate complete team, as some members might have had submitted
994 $submission = new ilExSubmission($this->assignment, $first_user);
995 $this->exercise->processExerciseStatus(
996 $this->assignment,
997 $team->getMembers(),
998 $submission->hasSubmitted(),
999 $submission->validatePeerReviews()
1000 );
1001 }
1002
1003 ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
1004 }
1005 $ilCtrl->redirect($this, "members");
1006 }
Exercise submission.

References $ilCtrl, ilExAssignmentTeam\getInstanceByUserId(), getMultiActionUserIds(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ deassignMembersObject()

ilExerciseManagementGUI::deassignMembersObject ( )

Deassign members from exercise.

Definition at line 752 of file class.ilExerciseManagementGUI.php.

753 {
754 global $ilCtrl, $lng;
755
756 $members = $this->getMultiActionUserIds();
757 if($members)
758 {
759 foreach(array_keys($members) as $usr_id)
760 {
761 $this->exercise->members_obj->deassignMember((int) $usr_id);
762 }
763 ilUtil::sendSuccess($lng->txt("exc_msg_participants_removed"), true);
764 }
765 $ilCtrl->redirect($this, "members");
766 }

References $ilCtrl, $lng, getMultiActionUserIds(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ dissolveTeamsObject()

ilExerciseManagementGUI::dissolveTeamsObject ( )

Definition at line 1008 of file class.ilExerciseManagementGUI.php.

1009 {
1010 global $ilCtrl;
1011
1012 $members = $this->getMultiActionUserIds(true);
1013 if($members)
1014 {
1015 include_once "Modules/Exercise/classes/class.ilExAssignmentTeam.php";
1016 foreach($members as $group)
1017 {
1018 // if single member - nothing to do
1019 if(is_array($group))
1020 {
1021 // see ilExSubmissionTeamGUI::removeTeamMemberObject()
1022
1023 $first_user = $group;
1024 $first_user = array_shift($first_user);
1025 $team = ilExAssignmentTeam::getInstanceByUserId($this->assignment->getId(), $first_user);
1026 foreach($group as $user_id)
1027 {
1028 $team->removeTeamMember($user_id);
1029 }
1030
1031 // reset ex team members, as any submission is not valid without team
1032 $this->exercise->processExerciseStatus(
1033 $this->assignment,
1034 $group,
1035 false
1036 );
1037 }
1038 }
1039
1040 ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
1041 }
1042 $ilCtrl->redirect($this, "members");
1043 }

References $ilCtrl, ilExAssignmentTeam\getInstanceByUserId(), getMultiActionUserIds(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ downloadAllObject()

ilExerciseManagementGUI::downloadAllObject ( )

Download all submitted files (of all members).

Definition at line 640 of file class.ilExerciseManagementGUI.php.

641 {
642 $members = array();
643
644 foreach($this->exercise->members_obj->getMembers() as $member_id)
645 {
646 $submission = new ilExSubmission($this->assignment, $member_id);
647 $submission->updateTutorDownloadTime();
648
649 // get member object (ilObjUser)
650 if (ilObject::_exists($member_id))
651 {
652 // adding file metadata
653 foreach($submission->getFiles() as $file)
654 {
655 $members[$file["user_id"]]["files"][$file["returned_id"]] = $file;
656 }
657
658 $tmp_obj =& ilObjectFactory::getInstanceByObjId($member_id);
659 $members[$member_id]["name"] = $tmp_obj->getFirstname() . " " . $tmp_obj->getLastname();
660 unset($tmp_obj);
661 }
662 }
663
664 ilExSubmission::downloadAllAssignmentFiles($this->assignment, $members);
665 }
print $file
static downloadAllAssignmentFiles(ilExAssignment $a_ass, array $members)
Download all submitted files of an assignment (all user)
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data@access public

References $file, ilObject\_exists(), ilExSubmission\downloadAllAssignmentFiles(), and ilObjectFactory\getInstanceByObjId().

+ Here is the call graph for this function:

◆ downloadMultiFeedbackZipObject()

ilExerciseManagementGUI::downloadMultiFeedbackZipObject ( )

Download multi-feedback structrue file.

Definition at line 1293 of file class.ilExerciseManagementGUI.php.

1294 {
1295 $this->assignment->sendMultiFeedbackStructureFile($this->exercise);
1296 }

◆ executeCommand()

ilExerciseManagementGUI::executeCommand ( )

Definition at line 49 of file class.ilExerciseManagementGUI.php.

50 {
51 global $ilCtrl, $lng, $ilTabs;
52
53 $class = $ilCtrl->getNextClass($this);
54 $cmd = $ilCtrl->getCmd("listPublicSubmissions");
55
56 switch($class)
57 {
58 case "ilfilesystemgui":
59 $ilTabs->clearTargets();
60 $ilTabs->setBackTarget($lng->txt("back"),
61 $ilCtrl->getLinkTarget($this, $this->getViewBack()));
62
63 ilUtil::sendInfo($lng->txt("exc_fb_tutor_info"));
64
65 include_once("./Modules/Exercise/classes/class.ilFSStorageExercise.php");
66 $fstorage = new ilFSStorageExercise($this->exercise->getId(), $this->assignment->getId());
67 $fstorage->create();
68
69 $submission = new ilExSubmission($this->assignment, (int)$_GET["member_id"]);
70 $feedback_id = $submission->getFeedbackId();
71 $noti_rec_ids = $submission->getUserIds();
72
73 include_once("./Services/User/classes/class.ilUserUtil.php");
74 $fs_title = array();
75 foreach($noti_rec_ids as $rec_id)
76 {
77 $fs_title[] = ilUserUtil::getNamePresentation($rec_id, false, false, "", true);
78 }
79 $fs_title = implode(" / ", $fs_title);
80
81 include_once("./Services/FileSystem/classes/class.ilFileSystemGUI.php");
82 $fs_gui = new ilFileSystemGUI($fstorage->getFeedbackPath($feedback_id));
83 $fs_gui->setTableId("excfbfil".$this->assignment->getId()."_".$feedback_id);
84 $fs_gui->setAllowDirectories(false);
85 $fs_gui->setTitle($lng->txt("exc_fb_files")." - ".
86 $this->assignment->getTitle()." - ".
87 $fs_title);
88 $pcommand = $fs_gui->getLastPerformedCommand();
89 if (is_array($pcommand) && $pcommand["cmd"] == "create_file")
90 {
91 $this->exercise->sendFeedbackFileNotification($pcommand["name"],
92 $noti_rec_ids, $this->assignment->getId());
93 }
94 $this->ctrl->forwardCommand($fs_gui);
95 break;
96
97 case 'ilrepositorysearchgui':
98 include_once('./Services/Search/classes/class.ilRepositorySearchGUI.php');
99 $rep_search = new ilRepositorySearchGUI();
100 $rep_search->setTitle($this->lng->txt("exc_add_participant"));
101 $rep_search->setCallback($this,'addMembersObject');
102
103 // Set tabs
104 $this->addSubTabs("assignment");
105 $this->ctrl->setReturn($this,'members');
106
107 $this->ctrl->forwardCommand($rep_search);
108 break;
109
110 case "ilexsubmissionteamgui":
111 include_once "Modules/Exercise/classes/class.ilExSubmissionTeamGUI.php";
112 $gui = new ilExSubmissionTeamGUI($this->exercise, $this->initSubmission());
113 $ilCtrl->forwardCommand($gui);
114 break;
115
116 case "ilexsubmissionfilegui":
117 include_once "Modules/Exercise/classes/class.ilExSubmissionFileGUI.php";
118 $gui = new ilExSubmissionFileGUI($this->exercise, $this->initSubmission());
119 $ilCtrl->forwardCommand($gui);
120 break;
121
122 case "ilexsubmissiontextgui":
123 $ilCtrl->saveParameter($this, array("part_id"));
124 include_once "Modules/Exercise/classes/class.ilExSubmissionTextGUI.php";
125 $gui = new ilExSubmissionTextGUI($this->exercise, $this->initSubmission());
126 $ilCtrl->forwardCommand($gui);
127 break;
128
129 case "ilexpeerreviewgui":
130 include_once "Modules/Exercise/classes/class.ilExPeerReviewGUI.php";
131 $gui = new ilExPeerReviewGUI($this->assignment, $this->initSubmission());
132 $ilCtrl->forwardCommand($gui);
133 break;
134
135 default:
136 $this->{$cmd."Object"}();
137 break;
138 }
139 }
$_GET["client_id"]
Class ilExPeerReviewGUI.
Object-based submissions (ends up as static file)
addSubTabs($a_activate)
adds tabs to tab gui object
File System Explorer GUI class.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
$cmd
Definition: sahs_server.php:35

References $_GET, $cmd, $ilCtrl, $lng, addSubTabs(), ilUserUtil\getNamePresentation(), initSubmission(), and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ exportExcelObject()

ilExerciseManagementGUI::exportExcelObject ( )

Export as excel.

Definition at line 938 of file class.ilExerciseManagementGUI.php.

939 {
940 $this->exercise->exportGradesExcel();
941 exit;
942 }
exit
Definition: login.php:54

References exit.

◆ getMultiActionUserIds()

ilExerciseManagementGUI::getMultiActionUserIds (   $a_keep_teams = false)
protected

Definition at line 667 of file class.ilExerciseManagementGUI.php.

668 {
669 if (!is_array($_POST["member"]) ||
670 count($_POST["member"]) == 0)
671 {
672 ilUtil::sendFailure($this->lng->txt("no_checkbox"), true);
673 }
674 else
675 {
676 $members = array();
677 foreach(array_keys($_POST["member"]) as $user_id)
678 {
679 $submission = new ilExSubmission($this->assignment, $user_id);
680 $tmembers = $submission->getUserIds();
681 if(!(bool)$a_keep_teams)
682 {
683 foreach($tmembers as $tuser_id)
684 {
685 $members[$tuser_id] = 1;
686 }
687 }
688 else
689 {
690 if($tmembers)
691 {
692 $members[] = $tmembers;
693 }
694 else
695 {
696 // no team yet
697 $members[] = $user_id;
698 }
699 }
700 }
701 return $members;
702 }
703 }

References $_POST, and ilUtil\sendFailure().

Referenced by confirmDeassignMembersObject(), createTeamsObject(), deassignMembersObject(), dissolveTeamsObject(), redirectFeedbackMailObject(), saveStatusSelectedObject(), and sendMembersObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getViewBack()

ilExerciseManagementGUI::getViewBack ( )
protected

Definition at line 141 of file class.ilExerciseManagementGUI.php.

142 {
143 switch($_REQUEST["vw"])
144 {
146 $back_cmd = "showParticipant";
147 break;
148
150 $back_cmd = "showGradesOverview";
151 break;
152
153 default:
154 // case self::VIEW_ASSIGNMENT:
155 $back_cmd = "members";
156 break;
157 }
158 return $back_cmd;
159 }
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7

References $_REQUEST, VIEW_GRADES, and VIEW_PARTICIPANT.

Referenced by initSubmission(), redirectFeedbackMailObject(), and saveStatus().

+ Here is the caller graph for this function:

◆ initGroupForm()

ilExerciseManagementGUI::initGroupForm ( )
protected

Definition at line 1060 of file class.ilExerciseManagementGUI.php.

1061 {
1062 global $lng;
1063
1064 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
1065 $form = new ilPropertyFormGUI();
1066 $form->setTitle($lng->txt("exc_adopt_group_teams")." - ".$this->assignment->getTitle());
1067 $form->setFormAction($this->ctrl->getFormAction($this, "createTeamsFromGroups"));
1068
1069 include_once "Modules/Exercise/classes/class.ilExAssignmentTeam.php";
1070 include_once "Services/User/classes/class.ilUserUtil.php";
1071 $all_members = array();
1072 foreach(ilExAssignmentTeam::getGroupMembersMap($this->exercise->getRefId()) as $grp_id => $group)
1073 {
1074 if(sizeof($group["members"]))
1075 {
1076 $grp_team = new ilCheckboxGroupInputGUI($lng->txt("obj_grp")." \"".$group["title"]."\"", "grpt_".$grp_id);
1077 $grp_value = $options = array();
1078 foreach($group["members"] as $user_id)
1079 {
1080 $user_name = ilUserUtil::getNamePresentation($user_id, false, false, "", true);
1081 $options[$user_id] = $user_name;
1082 if(!in_array($user_id, $all_members))
1083 {
1084 $grp_value[] = $user_id;
1085 $all_members[] = $user_id;
1086 }
1087 }
1088 asort($options);
1089 foreach($options as $user_id => $user_name)
1090 {
1091 $grp_team->addOption(new ilCheckboxOption($user_name, $user_id));
1092 }
1093 $grp_team->setValue($grp_value);
1094 $form->addItem($grp_team);
1095 }
1096 else
1097 {
1098 $grp_team = new ilNonEditableValueGUI($group["title"]);
1099 $grp_team->setValue($lng->txt("exc_adopt_group_teams_no_members"));
1100 $form->addItem($grp_team);
1101 }
1102 }
1103
1104 if(sizeof($all_members))
1105 {
1106 $form->addCommandButton("createTeamsFromGroups", $lng->txt("save"));
1107 }
1108 $form->addCommandButton("members", $lng->txt("cancel"));
1109
1110 return $form;
1111 }
This class represents a property in a property form.
This class represents an option in a checkbox group.
This class represents a non editable value in a property form.
This class represents a property form user interface.
if(!is_array($argv)) $options

References $lng, $options, ilExAssignmentTeam\getGroupMembersMap(), and ilUserUtil\getNamePresentation().

Referenced by adoptTeamsFromGroupObject(), and createTeamsFromGroupsObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initMultiFeedbackForm()

ilExerciseManagementGUI::initMultiFeedbackForm (   $a_ass_id)

Definition at line 1239 of file class.ilExerciseManagementGUI.php.

1240 {
1241 global $lng;
1242
1243 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
1244 $form = new ilPropertyFormGUI();
1245 $form->addCommandButton("uploadMultiFeedback", $lng->txt("upload"));
1246 $form->addCommandButton("members", $lng->txt("cancel"));
1247
1248 // multi feedback file
1249 $fi = new ilFileInputGUI($lng->txt("exc_multi_feedback_file"), "mfzip");
1250 $fi->setSuffixes(array("zip"));
1251 $fi->setRequired(true);
1252 $form->addItem($fi);
1253
1254 $form->setTitle(ilExAssignment::lookupTitle($a_ass_id));
1255 $form->setFormAction($this->ctrl->getFormAction($this, "uploadMultiFeedback"));
1256
1257 return $form;
1258 }
static lookupTitle($a_id)
Lookup title.
This class represents a file property in a property form.

References $lng, and ilExAssignment\lookupTitle().

Referenced by showMultiFeedbackObject(), and uploadMultiFeedbackObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initSubmission()

ilExerciseManagementGUI::initSubmission ( )
protected

Definition at line 161 of file class.ilExerciseManagementGUI.php.

162 {
163 $back_cmd = $this->getViewBack();
164 $this->ctrl->setReturn($this, $back_cmd);
165
166 $this->tabs_gui->clearTargets();
167 $this->tabs_gui->setBackTarget($this->lng->txt("back"),
168 $this->ctrl->getLinkTarget($this, $back_cmd));
169
170 include_once "Modules/Exercise/classes/class.ilExSubmission.php";
171 return new ilExSubmission($this->assignment, $_REQUEST["member_id"], null, true);
172 }

References $_REQUEST, and getViewBack().

Referenced by executeCommand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ listTextAssignmentObject()

ilExerciseManagementGUI::listTextAssignmentObject (   $a_show_peer_review = false)

Definition at line 344 of file class.ilExerciseManagementGUI.php.

345 {
346 global $tpl, $ilCtrl, $ilTabs, $lng;
347
348 if(!$this->assignment || $this->assignment->getType() != ilExAssignment::TYPE_TEXT)
349 {
350 $ilCtrl->redirect($this, "members");
351 }
352
353 $ilTabs->clearTargets();
354 $ilTabs->setBackTarget($lng->txt("back"),
355 $ilCtrl->getLinkTarget($this, "members"));
356
357 if($a_show_peer_review)
358 {
359 $cmd = "listTextAssignmentWithPeerReview";
360 }
361 else
362 {
363 $cmd = "listTextAssignment";
364 }
365 include_once "Modules/Exercise/classes/class.ilExAssignmentListTextTableGUI.php";
366 $tbl = new ilExAssignmentListTextTableGUI($this, $cmd, $this->assignment, $a_show_peer_review);
367 $tpl->setContent($tbl->getHTML());
368 }
$tbl
Definition: example_048.php:81

References $cmd, $ilCtrl, $lng, $tbl, $tpl, and ilExAssignment\TYPE_TEXT.

Referenced by listTextAssignmentWithPeerReviewObject().

+ Here is the caller graph for this function:

◆ listTextAssignmentWithPeerReviewObject()

ilExerciseManagementGUI::listTextAssignmentWithPeerReviewObject ( )

Definition at line 339 of file class.ilExerciseManagementGUI.php.

340 {
341 $this->listTextAssignmentObject(true);
342 }
listTextAssignmentObject($a_show_peer_review=false)

References listTextAssignmentObject().

+ Here is the call graph for this function:

◆ membersObject()

ilExerciseManagementGUI::membersObject ( )

All participants and submission of one assignment.

Definition at line 197 of file class.ilExerciseManagementGUI.php.

198 {
199 global $tpl, $ilToolbar, $ilCtrl, $lng;
200
201 include_once 'Services/Tracking/classes/class.ilLPMarks.php';
202
203 $this->addSubTabs("assignment");
204
205 // assignment selection
206 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
207 $ass = ilExAssignment::getInstancesByExercise($this->exercise->getId());
208
209 if (!$this->assignment)
210 {
211 $this->assignment = current($ass);
212 }
213
214 reset($ass);
215 if (count($ass) > 1)
216 {
217 $options = array();
218 foreach ($ass as $a)
219 {
220 $options[$a->getId()] = $a->getTitle();
221 }
222 include_once("./Services/Form/classes/class.ilSelectInputGUI.php");
223 $si = new ilSelectInputGUI($this->lng->txt(""), "ass_id");
224 $si->setOptions($options);
225 $si->setValue($this->assignment->getId());
226 $ilToolbar->addStickyItem($si);
227
228 include_once("./Services/UIComponent/Button/classes/class.ilSubmitButton.php");
229 $button = ilSubmitButton::getInstance();
230 $button->setCaption("exc_select_ass");
231 $button->setCommand("selectAssignment");
232 $ilToolbar->addStickyItem($button);
233
234 $ilToolbar->addSeparator();
235 }
236 // #16165 - if only 1 assignment dropdown is not displayed;
237 else if($this->assignment)
238 {
239 $ilCtrl->setParameter($this, "ass_id", $this->assignment->getId());
240 }
241
242 // add member
243 include_once './Services/Search/classes/class.ilRepositorySearchGUI.php';
245 $this,
246 $ilToolbar,
247 array(
248 'auto_complete_name' => $lng->txt('user'),
249 'submit_name' => $lng->txt('add'),
250 'add_search' => true,
251 'add_from_container' => $this->exercise->getRefId()
252 )
253 );
254
255 // #16168 - no assignments
256 if (count($ass) > 0)
257 {
258 $ilToolbar->addSeparator();
259
260 // we do not want the ilRepositorySearchGUI form action
261 $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
262
263 $ilCtrl->setParameter($this, "ass_id", $this->assignment->getId());
264
265 if($this->assignment->getType() == ilExAssignment::TYPE_UPLOAD_TEAM)
266 {
267 include_once("./Modules/Exercise/classes/class.ilExAssignmentTeam.php");
268 if(ilExAssignmentTeam::getAdoptableGroups($this->exercise->getRefId()))
269 {
270 // multi-feedback
271 $ilToolbar->addButton($this->lng->txt("exc_adopt_group_teams"),
272 $this->ctrl->getLinkTarget($this, "adoptTeamsFromGroup"));
273 }
274 }
275 else
276 {
277 // multi-feedback
278 $ilToolbar->addButton($this->lng->txt("exc_multi_feedback"),
279 $this->ctrl->getLinkTarget($this, "showMultiFeedback"));
280 }
281
282 if(ilExSubmission::hasAnySubmissions($this->assignment->getId()))
283 {
284 $ilToolbar->addSeparator();
285 if($this->assignment->getType() == ilExAssignment::TYPE_TEXT)
286 {
287 $ilToolbar->addFormButton($lng->txt("exc_list_text_assignment"), "listTextAssignment");
288 }
289 else
290 {
291 $ilToolbar->addFormButton($lng->txt("download_all_returned_files"), "downloadAll");
292 }
293 }
294 $this->ctrl->setParameter($this, "vw", self::VIEW_ASSIGNMENT);
295
296 include_once("./Modules/Exercise/classes/class.ilExerciseMemberTableGUI.php");
297 $exc_tab = new ilExerciseMemberTableGUI($this, "members", $this->exercise, $this->assignment);
298 $tpl->setContent($exc_tab->getHTML());
299 }
300 else
301 {
302 ilUtil::sendInfo($lng->txt("exc_no_assignments_available"));
303 }
304
305 $ilCtrl->setParameter($this, "ass_id", "");
306
307 return;
308 }
static getAdoptableGroups($a_exc_ref_id)
static getInstancesByExercise($a_exc_id)
static hasAnySubmissions($a_ass_id)
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
This class represents a selection list property in a property form.
static getInstance()
Factory.

References $ilCtrl, $lng, $options, $si, $tpl, addSubTabs(), ilRepositorySearchGUI\fillAutoCompleteToolbar(), ilExAssignmentTeam\getAdoptableGroups(), ilSubmitButton\getInstance(), ilExAssignment\getInstancesByExercise(), ilExSubmission\hasAnySubmissions(), ilUtil\sendInfo(), ilExAssignment\TYPE_TEXT, and ilExAssignment\TYPE_UPLOAD_TEAM.

Referenced by addUserFromAutoCompleteObject(), saveCommentsObject(), and selectAssignmentObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ redirectFeedbackMailObject()

ilExerciseManagementGUI::redirectFeedbackMailObject ( )

set feedback status for member and redirect to mail screen

Definition at line 585 of file class.ilExerciseManagementGUI.php.

586 {
587 $members = array();
588
589 if ($_GET["member_id"] != "")
590 {
591 $submission = new ilExSubmission($this->assignment, $_GET["member_id"]);
592 $members = $submission->getUserIds();
593 }
594 else if($members = $this->getMultiActionUserIds())
595 {
596 $members = array_keys($members);
597 }
598
599 if($members)
600 {
601 $logins = array();
602 foreach($members as $user_id)
603 {
604 $member_status = $this->assignment->getMemberStatus($user_id);
605 $member_status->setFeedback(true);
606 $member_status->update();
607
608 $logins[] = ilObjUser::_lookupLogin($user_id);
609 }
610 $logins = implode($logins, ",");
611
612 // #16530 - see ilObjCourseGUI::createMailSignature
613 $sig = chr(13).chr(10).chr(13).chr(10);
614 $sig .= $this->lng->txt('exc_mail_permanent_link');
615 $sig .= chr(13).chr(10).chr(13).chr(10);
616 include_once './Services/Link/classes/class.ilLink.php';
617 $sig .= ilLink::_getLink($this->exercise->getRefId());
618 $sig = rawurlencode(base64_encode($sig));
619
620 require_once 'Services/Mail/classes/class.ilMailFormCall.php';
622 $this,
623 $this->getViewBack(),
624 array(),
625 array(
626 'type' => 'new',
627 'rcp_to' => $logins,
629 )
630 ));
631 }
632
633 ilUtil::sendFailure($this->lng->txt("no_checkbox"),true);
634 $this->ctrl->redirect($this, "members");
635 }
static getRedirectTarget($gui, $cmd, array $gui_params=array(), array $mail_params=array(), array $context_params=array())
const SIGNATURE_KEY
Session parameter for the hash.
static _lookupLogin($a_user_id)
lookup login
static redirect($a_script)
http redirect to other script

References $_GET, ilLink\_getLink(), ilObjUser\_lookupLogin(), getMultiActionUserIds(), ilMailFormCall\getRedirectTarget(), getViewBack(), ilUtil\redirect(), ilUtil\sendFailure(), and ilMailFormCall\SIGNATURE_KEY.

+ Here is the call graph for this function:

◆ saveCommentForLearnersObject()

ilExerciseManagementGUI::saveCommentForLearnersObject ( )

Save comment for learner (asynch)

Definition at line 885 of file class.ilExerciseManagementGUI.php.

886 {
887 $res = array("result"=>false);
888
889 if($this->ctrl->isAsynch())
890 {
891 $ass_id = (int)$_POST["ass_id"];
892 $user_id = (int)$_POST["mem_id"];
893 $comment = trim($_POST["comm"]);
894
895 if($ass_id && $user_id)
896 {
897 $submission = new ilExSubmission($this->assignment, $user_id);
898 $user_ids = $submission->getUserIds();
899
900 $all_members = new ilExerciseMembers($this->exercise);
901 $all_members = $all_members->getMembers();
902
903 $reci_ids = array();
904 foreach($user_ids as $user_id)
905 {
906 if(in_array($user_id, $all_members))
907 {
908 $member_status = $this->assignment->getMemberStatus($user_id);
909 $member_status->setComment(ilUtil::stripSlashes($comment));
910 $member_status->setFeedback(true);
911 $member_status->update();
912
913 if(trim($comment))
914 {
915 $reci_ids[] = $user_id;
916 }
917 }
918 }
919
920 if(sizeof($reci_ids))
921 {
922 // send notification
923 $this->exercise->sendFeedbackFileNotification(null, $reci_ids,
924 $ass_id, true);
925 }
926
927 $res = array("result"=>true, "snippet"=>ilUtil::shortenText($comment, 25, true));
928 }
929 }
930
931 echo(json_encode($res));
932 exit();
933 }
$comment
Definition: buildRTE.php:83
Class ilExerciseMembers.
static shortenText($a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled

References $_POST, $comment, $res, exit, ilUtil\shortenText(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ saveCommentsObject()

ilExerciseManagementGUI::saveCommentsObject ( )

Definition at line 768 of file class.ilExerciseManagementGUI.php.

769 {
770 if(!isset($_POST['comments_value']))
771 {
772 return;
773 }
774
775 $this->exercise->members_obj->setNoticeForMember($_GET["member_id"],
776 ilUtil::stripSlashes($_POST["comments_value"]));
777 ilUtil::sendSuccess($this->lng->txt("exc_members_comments_saved"));
778 $this->membersObject();
779 }

References $_GET, $_POST, membersObject(), ilUtil\sendSuccess(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ saveGradesObject()

ilExerciseManagementGUI::saveGradesObject ( )

Save grades.

Definition at line 316 of file class.ilExerciseManagementGUI.php.

317 {
318 global $ilCtrl, $lng;
319
320 include_once 'Services/Tracking/classes/class.ilLPMarks.php';
321
322 if (is_array($_POST["lcomment"]))
323 {
324 foreach ($_POST["lcomment"] as $k => $v)
325 {
326 $marks_obj = new ilLPMarks($this->exercise->getId(), (int) $k);
327 $marks_obj->setComment(ilUtil::stripSlashes($v));
328 $marks_obj->setMark(ilUtil::stripSlashes($_POST["mark"][$k]));
329 $marks_obj->update();
330 }
331 }
332 ilUtil::sendSuccess($lng->txt("exc_msg_saved_grades"), true);
333 $ilCtrl->redirect($this, "showGradesOverview");
334 }

References $_POST, $ilCtrl, $lng, ilUtil\sendSuccess(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ saveMultiFeedbackObject()

ilExerciseManagementGUI::saveMultiFeedbackObject ( )

Save multi feedback.

Definition at line 1352 of file class.ilExerciseManagementGUI.php.

1353 {
1354 $this->assignment->saveMultiFeedbackFiles($_POST["file"], $this->exercise);
1355
1356 ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
1357 $this->ctrl->redirect($this, "members");
1358 }

References $_POST, and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ saveStatus()

ilExerciseManagementGUI::saveStatus ( array  $a_data)
protected

Save status of selecte members.

Definition at line 842 of file class.ilExerciseManagementGUI.php.

843 {
844 global $ilCtrl;
845
846 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
847
848 $saved_for = array();
849 foreach($a_data as $ass_id => $users)
850 {
851 $ass = ($ass_id < 0)
852 ? $this->assignment
853 : new ilExAssignment($ass_id);
854
855 foreach($users as $user_id => $values)
856 {
857 // this will add team members if available
858 $submission = new ilExSubmission($ass, $user_id);
859 foreach($submission->getUserIds() as $sub_user_id)
860 {
861 $uname = ilObjUser::_lookupName($sub_user_id);
862 $saved_for[$sub_user_id] = $uname["lastname"].", ".$uname["firstname"];
863
864 $member_status = $ass->getMemberStatus($sub_user_id);
865 $member_status->setStatus($values["status"]);
866 $member_status->setNotice($values["notice"]);
867 $member_status->setMark($values["mark"]);
868 $member_status->update();
869 }
870 }
871 }
872
873 if (count($saved_for) > 0)
874 {
875 $save_for_str = "(".implode($saved_for, " - ").")";
876 }
877
878 ilUtil::sendSuccess($this->lng->txt("exc_status_saved")." ".$save_for_str, true);
879 $ilCtrl->redirect($this, $this->getViewBack());
880 }
Exercise assignment.
static _lookupName($a_user_id)
lookup user name

References $ilCtrl, ilObjUser\_lookupName(), getViewBack(), and ilUtil\sendSuccess().

Referenced by saveStatusAllObject(), saveStatusParticipantObject(), and saveStatusSelectedObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveStatusAllObject()

ilExerciseManagementGUI::saveStatusAllObject ( )

Definition at line 804 of file class.ilExerciseManagementGUI.php.

805 {
806 $data = array();
807 foreach(array_keys($_POST["id"]) as $user_id)
808 {
809 $data[-1][$user_id] = array(
810 "status" => ilUtil::stripSlashes($_POST["status"][$user_id])
811 ,"notice" => ilUtil::stripSlashes($_POST["notice"][$user_id])
812 ,"mark" => ilUtil::stripSlashes($_POST["mark"][$user_id])
813 );
814 }
815 $this->saveStatus($data);
816 }
saveStatus(array $a_data)
Save status of selecte members.
$data

References $_POST, $data, saveStatus(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ saveStatusParticipantObject()

ilExerciseManagementGUI::saveStatusParticipantObject ( )

Save assignment status (participant view)

Definition at line 785 of file class.ilExerciseManagementGUI.php.

786 {
787 global $ilCtrl;
788
789 $member_id = (int)$_GET["member_id"];
790 $data = array();
791 foreach(array_keys($_POST["id"]) as $ass_id)
792 {
793 $data[$ass_id][$member_id] = array(
794 "status" => ilUtil::stripSlashes($_POST["status"][$ass_id])
795 ,"notice" => ilUtil::stripSlashes($_POST["notice"][$ass_id])
796 ,"mark" => ilUtil::stripSlashes($_POST["mark"][$ass_id])
797 );
798 }
799
800 $ilCtrl->setParameter($this, "part_id", $member_id); // #17629
801 $this->saveStatus($data);
802 }

References $_GET, $_POST, $data, $ilCtrl, saveStatus(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ saveStatusSelectedObject()

ilExerciseManagementGUI::saveStatusSelectedObject ( )

Definition at line 818 of file class.ilExerciseManagementGUI.php.

819 {
820 $members = $this->getMultiActionUserIds();
821 if(!$members)
822 {
823 $this->ctrl->redirect($this, "members");
824 }
825
826 // #18408 - saveStatus() will rollout teams, we need raw (form) data here
827 $data = array();
828 foreach(array_keys($_POST["member"]) as $user_id)
829 {
830 $data[-1][$user_id] = array(
831 "status" => ilUtil::stripSlashes($_POST["status"][$user_id])
832 ,"notice" => ilUtil::stripSlashes($_POST["notice"][$user_id])
833 ,"mark" => ilUtil::stripSlashes($_POST["mark"][$user_id])
834 );
835 }
836 $this->saveStatus($data);
837 }

References $_POST, $data, getMultiActionUserIds(), saveStatus(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ selectAssignmentObject()

ilExerciseManagementGUI::selectAssignmentObject ( )

Select assignment.

Definition at line 453 of file class.ilExerciseManagementGUI.php.

454 {
455 global $ilTabs;
456
457 $_GET["ass_id"] = ilUtil::stripSlashes($_POST["ass_id"]);
458 $this->membersObject();
459 }

References $_GET, $_POST, membersObject(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ selectParticipantObject()

ilExerciseManagementGUI::selectParticipantObject ( )

Select participant.

Definition at line 547 of file class.ilExerciseManagementGUI.php.

548 {
549 global $ilTabs;
550
551 $_GET["part_id"] = ilUtil::stripSlashes($_POST["part_id"]);
552 $this->showParticipantObject();
553 }

References $_GET, $_POST, showParticipantObject(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ sendMembersObject()

ilExerciseManagementGUI::sendMembersObject ( )

Send assignment per mail to participants.

Definition at line 708 of file class.ilExerciseManagementGUI.php.

709 {
710 global $ilCtrl;
711
712 $members = $this->getMultiActionUserIds();
713 if(is_array($members))
714 {
715 $this->exercise->sendAssignment($this->assignment, $members);
716 ilUtil::sendSuccess($this->lng->txt("exc_sent"),true);
717 }
718 $ilCtrl->redirect($this, "members");
719 }

References $ilCtrl, getMultiActionUserIds(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ showGradesOverviewObject()

ilExerciseManagementGUI::showGradesOverviewObject ( )

Show grades overview.

Definition at line 558 of file class.ilExerciseManagementGUI.php.

559 {
560 global $tpl, $ilToolbar, $ilCtrl, $lng;
561
562 $this->addSubTabs("grades");
563
564 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
565 $mem_obj = new ilExerciseMembers($this->exercise);
566 $mems = $mem_obj->getMembers();
567
568 if (count($mems) > 0)
569 {
570 $ilToolbar->addButton($lng->txt("exc_export_excel"),
571 $ilCtrl->getLinkTarget($this, "exportExcel"));
572 }
573
574 $this->ctrl->setParameter($this, "vw", self::VIEW_GRADES);
575
576 include_once("./Modules/Exercise/classes/class.ilExGradesTableGUI.php");
577 $grades_tab = new ilExGradesTableGUI($this, "showGradesOverview",
578 $this->exercise, $mem_obj);
579 $tpl->setContent($grades_tab->getHTML());
580 }
Exercise participant table.

References $ilCtrl, $lng, $tpl, and addSubTabs().

+ Here is the call graph for this function:

◆ showMultiFeedbackConfirmationTableObject()

ilExerciseManagementGUI::showMultiFeedbackConfirmationTableObject ( )

Show multi feedback confirmation table.

Parameters

return

Definition at line 1329 of file class.ilExerciseManagementGUI.php.

1330 {
1331 global $tpl;
1332
1333 $this->addSubTabs("assignment");
1334
1335 include_once("./Modules/Exercise/classes/class.ilFeedbackConfirmationTable2GUI.php");
1336 $tab = new ilFeedbackConfirmationTable2GUI($this, "showMultiFeedbackConfirmationTable", $this->assignment);
1337 $tpl->setContent($tab->getHTML());
1338 }

References $tab, $tpl, and addSubTabs().

+ Here is the call graph for this function:

◆ showMultiFeedbackObject()

ilExerciseManagementGUI::showMultiFeedbackObject ( ilPropertyFormGUI  $a_form = null)

Show multi-feedback screen.

Parameters

return

Definition at line 1266 of file class.ilExerciseManagementGUI.php.

1267 {
1268 global $ilToolbar, $lng, $tpl;
1269
1270 ilUtil::sendInfo($lng->txt("exc_multi_feedb_info"));
1271
1272 $this->addSubTabs("assignment");
1273
1274 // #13719
1275 include_once("./Services/UIComponent/Button/classes/class.ilLinkButton.php");
1276 $button = ilLinkButton::getInstance();
1277 $button->setCaption("exc_download_zip_structure");
1278 $button->setUrl($this->ctrl->getLinkTarget($this, "downloadMultiFeedbackZip"));
1279 $button->setOmitPreventDoubleSubmission(true);
1280 $ilToolbar->addButtonInstance($button);
1281
1282 if(!$a_form)
1283 {
1284 $a_form = $this->initMultiFeedbackForm($this->assignment->getId());
1285 }
1286
1287 $tpl->setContent($a_form->getHTML());
1288 }
static getInstance()
Factory.

References $lng, $tpl, addSubTabs(), ilLinkButton\getInstance(), initMultiFeedbackForm(), and ilUtil\sendInfo().

Referenced by uploadMultiFeedbackObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showParticipantObject()

ilExerciseManagementGUI::showParticipantObject ( )

Show Participant.

Definition at line 464 of file class.ilExerciseManagementGUI.php.

465 {
466 global $rbacsystem, $tree, $tpl, $ilToolbar, $ilCtrl, $ilTabs, $lng;
467
468 $this->addSubTabs("participant");
469
470 // participant selection
471 include_once("./Modules/Exercise/classes/class.ilExAssignment.php");
472 $ass = ilExAssignment::getAssignmentDataOfExercise($this->exercise->getId());
473 $members = $this->exercise->members_obj->getMembers();
474
475 if (count($members) == 0)
476 {
477 ilUtil::sendInfo($lng->txt("exc_no_participants"));
478 return;
479 }
480
481 $mems = array();
482 foreach ($members as $mem_id)
483 {
484 if (ilObject::_lookupType($mem_id) == "usr")
485 {
486 include_once("./Services/User/classes/class.ilObjUser.php");
487 $name = ilObjUser::_lookupName($mem_id);
488 if (trim($name["login"]) != "") // #20073
489 {
490 $mems[$mem_id] = $name;
491 }
492 }
493 }
494
495 $mems = ilUtil::sortArray($mems, "lastname", "asc", false, true);
496
497 if ($_GET["part_id"] == "" && count($mems) > 0)
498 {
499 $_GET["part_id"] = key($mems);
500 }
501
502 $current_participant = $_GET["part_id"];
503
504 reset($mems);
505 if (count($mems) > 1)
506 {
507 $options = array();
508 foreach ($mems as $k => $m)
509 {
510 $options[$k] =
511 $m["lastname"].", ".$m["firstname"]." [".$m["login"]."]";
512 }
513 include_once("./Services/Form/classes/class.ilSelectInputGUI.php");
514 $si = new ilSelectInputGUI($this->lng->txt(""), "part_id");
515 $si->setOptions($options);
516 $si->setValue($current_participant);
517 $ilToolbar->addStickyItem($si);
518
519 include_once("./Services/UIComponent/Button/classes/class.ilSubmitButton.php");
520 $button = ilSubmitButton::getInstance();
521 $button->setCaption("exc_select_part");
522 $button->setCommand("selectParticipant");
523 $ilToolbar->addStickyItem($button);
524
525 $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
526 }
527
528 if (count($mems) > 0)
529 {
530 $this->ctrl->setParameter($this, "vw", self::VIEW_PARTICIPANT);
531 $this->ctrl->setParameter($this, "part_id", $current_participant);
532
533 include_once("./Modules/Exercise/classes/class.ilExParticipantTableGUI.php");
534 $part_tab = new ilExParticipantTableGUI($this, "showParticipant",
535 $this->exercise, $current_participant);
536 $tpl->setContent($part_tab->getHTML());
537 }
538 else
539 {
540 ilUtil::sendInfo($this->lng->txt("exc_no_assignments_available"));
541 }
542 }
static getAssignmentDataOfExercise($a_exc_id)
Get assignments data of an exercise in an array.
static _lookupType($a_id, $a_reference=false)
lookup object type
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray

References $_GET, $ilCtrl, $lng, $options, $si, $tpl, ilObjUser\_lookupName(), ilObject\_lookupType(), addSubTabs(), ilExAssignment\getAssignmentDataOfExercise(), ilSubmitButton\getInstance(), ilUtil\sendInfo(), and ilUtil\sortArray().

Referenced by selectParticipantObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ uploadMultiFeedbackObject()

ilExerciseManagementGUI::uploadMultiFeedbackObject ( )

Upload multi feedback file.

Definition at line 1301 of file class.ilExerciseManagementGUI.php.

1302 {
1303 // #11983
1304 $form = $this->initMultiFeedbackForm($this->assignment->getId());
1305 if($form->checkInput())
1306 {
1307 try
1308 {
1309 $this->assignment->uploadMultiFeedbackFile(ilUtil::stripSlashesArray($_FILES["mfzip"]));
1310 $this->ctrl->redirect($this, "showMultiFeedbackConfirmationTable");
1311 }
1312 catch (ilExerciseException $e)
1313 {
1314 ilUtil::sendFailure($e->getMessage(), true);
1315 $this->ctrl->redirect($this, "showMultiFeedback");
1316 }
1317 }
1318
1319 $form->setValuesByPost();
1320 $this->showMultiFeedbackObject($form);
1321 }
Class to report exception.
showMultiFeedbackObject(ilPropertyFormGUI $a_form=null)
Show multi-feedback screen.
static stripSlashesArray($a_arr, $a_strip_html=true, $a_allow="")
Strip slashes from array.

References initMultiFeedbackForm(), ilUtil\sendFailure(), showMultiFeedbackObject(), and ilUtil\stripSlashesArray().

+ Here is the call graph for this function:

Field Documentation

◆ $assignment

ilExerciseManagementGUI::$assignment
protected

Definition at line 21 of file class.ilExerciseManagementGUI.php.

◆ $exercise

ilExerciseManagementGUI::$exercise
protected

Definition at line 20 of file class.ilExerciseManagementGUI.php.

◆ VIEW_ASSIGNMENT

const ilExerciseManagementGUI::VIEW_ASSIGNMENT = 1

Definition at line 23 of file class.ilExerciseManagementGUI.php.

◆ VIEW_GRADES

const ilExerciseManagementGUI::VIEW_GRADES = 3

Definition at line 25 of file class.ilExerciseManagementGUI.php.

Referenced by getViewBack().

◆ VIEW_PARTICIPANT

const ilExerciseManagementGUI::VIEW_PARTICIPANT = 2

Definition at line 24 of file class.ilExerciseManagementGUI.php.

Referenced by getViewBack().


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