60 protected function initMode(
int $a_item_id): void
64 $this->mode = self::MODE_BY_ASSIGNMENT;
67 $this->
setId(
"exc_mem");
71 $this->
setTitle(
$lng->
txt(
"exc_assignment") .
": " . $this->ass->getTitle());
79 $tmp_data = $this->ass->getMemberListData();
82 $usr_ids = array_keys($tmp_data);
83 $filtered_usr_ids =
$GLOBALS[
'DIC']->access()->filterUserIdsByRbacOrPositionOfCurrentUser(
84 'edit_submissions_grades',
85 'edit_submissions_grades',
86 $this->exc->getRefId(),
90 foreach ($filtered_usr_ids as $usr_id) {
91 $data[$usr_id] = $tmp_data[$usr_id];
95 $idl = $this->ass->getIndividualDeadlines();
96 $rdl = $this->ass->getRequestedDeadlines();
97 $calc_deadline = $this->ass->getCalculatedDeadlines();
100 if ($this->ass->hasTeam()) {
106 foreach (
$data as $item) {
108 if ($this->
filter[
"status"] &&
109 $item[
"status"] != $this->
filter[
"status"]) {
113 $team_id = $team_map[$item[
"usr_id"]] ??
"";
117 $team_id =
"nty" . $item[
"usr_id"];
120 if (!isset($tmp[$team_id])) {
121 $tmp[$team_id] = $item;
123 if (is_numeric($team_id)) {
124 $tmp[$team_id][
"submission_obj"] =
new ilExSubmission($this->ass, $item[
"usr_id"], $teams[$team_id]);
131 $tmp[$team_id][
"team"][$item[
"usr_id"]] = $item[
"name"];
133 if (is_numeric($team_id)) {
134 $idl_team_id =
"t" . $team_id;
135 if (array_key_exists($idl_team_id, $idl)) {
136 $tmp[$team_id][
"idl"] = $idl[$idl_team_id];
139 if (isset($calc_deadline[
"team"][$team_id])) {
140 $tmp[$team_id][
"calc_deadline"] = $calc_deadline[
"team"][$team_id][
"calculated_deadline"];
142 } elseif (isset($calc_deadline[
"user"][$item[
"usr_id"]])) {
143 $tmp[
"nty" . $item[
"usr_id"]][
"calc_deadline"] = $calc_deadline[
"user"][$item[
"usr_id"]][
"calculated_deadline"];
148 if ($this->
filter[
"name"]) {
149 foreach ($tmp as $idx => $item) {
150 if (!stristr(implode(
"", $item[
"team"]), $this->
filter[
"name"])) {
155 if ($this->
filter[
"subm"]) {
156 foreach ($tmp as $idx => $item) {
157 $submission = $item[
"submission_obj"];
158 if ($this->
filter[
"subm"] ==
"y" &&
159 !$submission->getLastSubmission()) {
161 } elseif ($this->
filter[
"subm"] ==
"n" &&
162 $submission->getLastSubmission()) {
167 if ($this->
filter[
"subm_after"]) {
168 foreach ($tmp as $idx => $item) {
169 $submission = $item[
"submission_obj"];
170 if ($this->
filter[
"subm_after"]) {
171 if (is_null($submission->getLastSubmission())) {
174 if ($submission->getLastSubmission() <
180 if ($this->
filter[
"subm_before"]) {
181 if (is_null($submission->getLastSubmission())) {
184 if ($submission->getLastSubmission() >
196 $member_of_members = null;
197 foreach (
$data as $idx => $item) {
199 if ($this->
filter[
"status"] &&
200 $item[
"status"] != $this->
filter[
"status"]) {
204 if ($this->
filter[
"name"] &&
205 !stristr($item[
"name"], $this->
filter[
"name"]) &&
206 !stristr($item[
"login"], $this->
filter[
"name"])) {
214 if ($this->
filter[
"subm"]) {
215 $submission =
$data[$idx][
"submission_obj"];
216 if ($this->
filter[
"subm"] ==
"y" &&
217 !$submission->getLastSubmission()) {
220 } elseif ($this->
filter[
"subm"] ==
"n" &&
221 $submission->getLastSubmission()) {
226 if ($this->
filter[
"subm_after"]) {
227 if (is_null(
$data[$idx][
"submission_obj"]->getLastSubmission())) {
230 if (
$data[$idx][
"submission_obj"]->getLastSubmission() <
236 if ($this->
filter[
"subm_before"]) {
237 if (is_null(
$data[$idx][
"submission_obj"]->getLastSubmission())) {
240 if (
$data[$idx][
"submission_obj"]->getLastSubmission() >
246 if ($this->
filter[
'member_of']) {
252 if (array_key_exists($item[
"usr_id"], $idl)) {
253 $data[$idx][
"idl"] = $idl[$item[
"usr_id"]];
256 if (isset(
$data[$idx])) {
257 $data[$idx][
"requested_idl"] = array_key_exists($item[
"usr_id"], $rdl);
260 if (isset($calc_deadline[
"user"][$item[
"usr_id"]])) {
261 $data[$idx][
"calc_deadline"] = $calc_deadline[
"user"][$item[
"usr_id"]][
"calculated_deadline"];
272 if (!$this->ass->hasTeam()) {
275 if (in_array(
"image", $selected)) {
276 $cols[
"image"] = array($this->
lng->txt(
"image"));
279 $cols[
"name"] = array($this->
lng->txt(
"name"),
"name");
281 if (in_array(
"login", $selected)) {
282 $cols[
"login"] = array($this->
lng->txt(
"login"),
"login");
285 $cols[
"name"] = array($this->
lng->txt(
"exc_team"));
295 if (!$this->ass->hasTeam()) {
296 $cols[
"image"] = array($this->
lng->txt(
"image"));
297 $cols[
"name"] = array($this->
lng->txt(
"name"),
"name");
298 $cols[
"login"] = array($this->
lng->txt(
"login"),
"login");
300 $cols[
"name"] = array($this->
lng->txt(
"exc_tbl_team"));
303 if ($this->ass->hasActiveIDl()) {
304 $cols[
"idl"] = array($this->
lng->txt(
"exc_tbl_individual_deadline"),
"idl");
308 $cols[
"calc_deadline"] = array($this->
lng->txt(
"exc_tbl_calculated_deadline"),
"calc_deadline");
319 protected function fillRow(array $a_set): void
323 $member_id = $a_set[
"usr_id"];
325 $ilCtrl->
setParameter($this->parent_obj,
"ass_id", $this->ass->getId());
326 $ilCtrl->setParameter($this->parent_obj,
"member_id", $member_id);
329 $this->tpl->setVariable(
"NAME_ID",
"sel_part_ids");
330 $this->tpl->setVariable(
"LISTED_NAME_ID",
"listed_part_ids");
331 $this->tpl->setVariable(
"VAL_ID", $member_id);
333 $this->parseRow($member_id, $this->ass, $a_set);
335 $ilCtrl->setParameter($this->parent_obj,
"ass_id", $this->ass->getId());
336 $ilCtrl->setParameter($this->parent_obj,
"member_id",
"");
__construct(object $a_parent_obj, string $a_parent_cmd, ilObjExercise $a_exc, int $a_item_id)
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...
setFormAction(string $a_form_action, bool $a_multipart=false)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
addCommandButton(string $a_cmd, string $a_text, string $a_onclick='', string $a_id="", string $a_class="")
setSelectAllCheckbox(string $a_select_all_checkbox, bool $a_select_all_on_top=false)
static lookupType(int $a_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
isForwardingToFormDispatcher()
Exercise submission table.
static getAssignmentTeamMap(int $a_ass_id)
setTitle(string $a_title, string $a_icon="", string $a_icon_alt="")
static _isParticipant(int $a_ref_id, int $a_usr_id)
Static function to check if a user is a participant of the container object.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
filter(string $filter_id, $class_path, string $cmd, bool $activated=true, bool $expanded=true)
setParameter(object $a_gui_obj, string $a_parameter, $a_value)
getFormAction(object $a_gui_obj, string $a_fallback_cmd=null, string $a_anchor=null, bool $is_async=false, bool $has_xml_style=false)
addMultiCommand(string $a_cmd, string $a_text)
static getInstancesFromMap(int $a_assignment_id)