19declare(strict_types=1);
43 $obj_id = $obj->
getId();
45 $res = $this->db->query($sql);
46 while ($rec = $this->db->fetchAssoc(
$res)) {
47 $members = $members->withAdditionalRecord($rec);
57 ?
string $filter =
null,
62 $sql .=
" WHERE obj_id = " . $this->db->quote($obj->
getId(),
'integer');
64 if (!is_null($filter)) {
68 if (!is_null($sort)) {
71 $res = $this->db->query($sql);
72 while ($rec = $this->db->fetchAssoc(
$res)) {
73 $usr =
new ilObjUser((
int) $rec[
"usr_id"]);
84 $obj_id = $obj->
getId();
85 $usr_id = $usr->
getId();
86 $sql = $this->loadMemberQuery();
87 $sql .=
" WHERE obj_id = " . $this->db->quote($obj_id,
'integer') .
"\n"
88 .
" AND iassme.usr_id = " . $this->db->quote($usr_id,
'integer');
90 $rec = $this->db->fetchAssoc($this->db->query($sql));
92 return $this->createAssessmentMember($obj, $usr, $rec);
104 if (!is_null($changer_id)) {
105 $changer_id = (
int) $changer_id;
109 if (!is_null($change_time_db)) {
110 $change_time =
new DateTimeImmutable($change_time_db);
113 if (!is_null($examiner_id)) {
114 $examiner_id = (
int) $examiner_id;
119 $this->createGrading($record, $usr->
getFullname()),
131 if (!is_null($event_time_db)) {
132 $event_time =
new DateTimeImmutable();
133 $event_time = $event_time->setTimestamp((
int) $event_time_db);
156 "usr_id" => [
"integer", $member->
id()]
160 if (!is_null($event_time)) {
161 $event_time = $event_time->getTimestamp();
180 $this->db->update(self::MEMBERS_TABLE, $values, $where);
185 return date(
"Y-m-d H:i:s");
193 foreach ($this->loadMembers($obj) as $member) {
195 $resource_id = $this->irss->manage()->find($identifier);
196 $this->irss->manage()->remove($resource_id, $this->stakeholder);
200 $sql =
"DELETE FROM " . self::MEMBERS_TABLE .
" WHERE obj_id = " . $this->db->quote($obj->
getId(),
'integer');
201 $this->db->manipulate($sql);
209 .
"iassme.examiner_id,"
211 .
"iassme.internal_note,"
213 .
"iassme.notification_ts,"
214 .
"iassme.learning_progress,"
215 .
"iassme.finalized,"
217 .
"iassme.event_time,"
218 .
"iassme.user_view_file,"
219 .
"iassme.file_name,"
220 .
"iassme.changer_id,"
221 .
"iassme.change_time,"
222 .
"usr.login AS user_login,"
223 .
"ex.login AS examiner_login"
224 .
" FROM " . self::MEMBERS_TABLE .
" iassme\n"
225 .
" JOIN usr_data usr ON iassme.usr_id = usr.usr_id\n"
226 .
" LEFT JOIN usr_data ex ON iassme.examiner_id = ex.usr_id\n"
240 .
" ,iassme.obj_id, iassme.usr_id, iassme.examiner_id, iassme.record, iassme.internal_note, iassme.notify"
241 .
" ,iassme.notification_ts, iassme.learning_progress, iassme.finalized,iassme.place"
242 .
" ,iassme.event_time, iassme.changer_id, iassme.change_time\n"
243 .
" FROM iass_members iassme"
244 .
" JOIN usr_data usr ON iassme.usr_id = usr.usr_id"
245 .
" LEFT JOIN usr_data ex ON iassme.examiner_id = ex.usr_id"
246 .
" LEFT JOIN usr_data ud ON iassme.changer_id = ud.usr_id"
247 .
" WHERE obj_id = " . $this->db->quote($obj_id,
'integer');
346 $this->db->insert(self::MEMBERS_TABLE, $values);
357 $resource_id = $this->irss->manage()->find($identifier);
358 if (!is_null($resource_id)) {
359 $this->irss->manage()->remove($resource_id, $this->stakeholder);
364 "DELETE FROM " . self::MEMBERS_TABLE . PHP_EOL
365 .
"WHERE obj_id = " . $this->db->quote($iass->
getId(),
'integer') . PHP_EOL
369 $this->db->manipulate($sql);
379 return " AND finalized = 0 AND examiner_id IS NULL\n";
381 return " AND finalized = 0 AND examiner_id IS NOT NULL\n";
383 return " AND finalized = 1 AND learning_progress = 2\n";
385 return " AND finalized = 1 AND learning_progress = 3\n";
393 $vals = explode(
":", $sort);
395 return " ORDER BY " . $vals[0] .
" " . $vals[1];
Edit the record of a user, set LP.
Member administration related logic, add and remove members, get the list of all members,...
const FIELD_INTERNAL_NOTE
const FIELD_CHANGER_LASTNAME
const FIELD_USER_VIEW_FILE
const FIELD_CHANGER_FIRSTNAME
const LP_ASSESSMENT_NOT_COMPLETED
const FIELD_EXAMINER_FIRSTNAME
const FIELD_NOTIFICATION_TS
const FIELD_LEARNING_PROGRESS
const FIELD_EXAMINER_LASTNAME
For the purpose of streamlining the grading and learning-process status definition outside of tests,...
getFullname(int $max_strlen=0)