19 declare(strict_types=1);
44 $obj_id = $obj->
getId();
46 $res = $this->db->query($sql);
47 while ($rec = $this->db->fetchAssoc(
$res)) {
48 $members = $members->withAdditionalRecord($rec);
58 string $filter = null,
63 $sql .=
" WHERE obj_id = " . $this->db->quote($obj->
getId(),
'integer');
65 if (!is_null($filter)) {
69 if (!is_null($sort)) {
72 $res = $this->db->query($sql);
73 while ($rec = $this->db->fetchAssoc(
$res)) {
74 $usr =
new ilObjUser((
int)$rec[
"usr_id"]);
85 $obj_id = $obj->
getId();
86 $usr_id = $usr->
getId();
88 $sql .=
" WHERE obj_id = " . $this->db->quote($obj_id,
'integer') .
"\n" 89 .
" AND iassme.usr_id = " . $this->db->quote($usr_id,
'integer');
91 $rec = $this->db->fetchAssoc($this->db->query($sql));
105 if (!is_null($changer_id)) {
106 $changer_id = (
int) $changer_id;
110 if (!is_null($change_time_db)) {
114 if (!is_null($examiner_id)) {
115 $examiner_id = (
int) $examiner_id;
132 if (!is_null($event_time_db)) {
134 $event_time = $event_time->setTimestamp((
int) $event_time_db);
157 "usr_id" => [
"integer", $member->
id()]
161 if (!is_null($event_time)) {
162 $event_time = $event_time->getTimestamp();
181 $this->db->update(self::MEMBERS_TABLE, $values, $where);
186 return date(
"Y-m-d H:i:s");
196 $resource_id = $this->irss->manage()->find($identifier);
197 $this->irss->manage()->remove($resource_id, $this->stakeholder);
201 $sql =
"DELETE FROM " . self::MEMBERS_TABLE .
" WHERE obj_id = " . $this->db->quote($obj->
getId(),
'integer');
202 $this->db->manipulate($sql);
210 .
"iassme.examiner_id," 212 .
"iassme.internal_note," 214 .
"iassme.notification_ts," 215 .
"iassme.learning_progress," 216 .
"iassme.finalized," 218 .
"iassme.event_time," 219 .
"iassme.user_view_file," 220 .
"iassme.file_name," 221 .
"iassme.changer_id," 222 .
"iassme.change_time," 223 .
"usr.login AS user_login," 224 .
"ex.login AS examiner_login" 225 .
" FROM " . self::MEMBERS_TABLE .
" iassme\n" 226 .
" JOIN usr_data usr ON iassme.usr_id = usr.usr_id\n" 227 .
" LEFT JOIN usr_data ex ON iassme.examiner_id = ex.usr_id\n" 241 .
" ,iassme.obj_id, iassme.usr_id, iassme.examiner_id, iassme.record, iassme.internal_note, iassme.notify" 242 .
" ,iassme.notification_ts, iassme.learning_progress, iassme.finalized,iassme.place" 243 .
" ,iassme.event_time, iassme.changer_id, iassme.change_time\n" 244 .
" FROM iass_members iassme" 245 .
" JOIN usr_data usr ON iassme.usr_id = usr.usr_id" 246 .
" LEFT JOIN usr_data ex ON iassme.examiner_id = ex.usr_id" 247 .
" LEFT JOIN usr_data ud ON iassme.changer_id = ud.usr_id" 248 .
" WHERE obj_id = " . $this->db->quote($obj_id,
'integer');
347 $this->db->insert(self::MEMBERS_TABLE, $values);
358 $resource_id = $this->irss->manage()->find($identifier);
359 $this->irss->manage()->remove($resource_id, $this->stakeholder);
363 "DELETE FROM " . self::MEMBERS_TABLE . PHP_EOL
364 .
"WHERE obj_id = " . $this->db->quote($iass->
getId(),
'integer') . PHP_EOL
368 $this->db->manipulate($sql);
378 return " AND finalized = 0 AND examiner_id IS NULL\n";
380 return " AND finalized = 0 AND examiner_id IS NOT NULL\n";
382 return " AND finalized = 1 AND learning_progress = 2\n";
384 return " AND finalized = 1 AND learning_progress = 3\n";
392 $vals = explode(
":", $sort);
394 return " ORDER BY " . $vals[0] .
" " . $vals[1];
For the purpose of streamlining the grading and learning-process status definition outside of tests...
const FIELD_INTERNAL_NOTE
getFullname(int $a_max_strlen=0)
const FIELD_LEARNING_PROGRESS
const FIELD_CHANGER_FIRSTNAME
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const FIELD_USER_VIEW_FILE
const LP_ASSESSMENT_NOT_COMPLETED
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const FIELD_EXAMINER_FIRSTNAME
const FIELD_NOTIFICATION_TS
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const FIELD_EXAMINER_LASTNAME
const FIELD_CHANGER_LASTNAME
Member administration related logic, add and remove members, get the list of all members, etc ...