26                $this->obj_id = $a_exc->getId();
 
   27                $this->ref_id = $a_exc->getRefId();
 
   52                $this->obj_id = $a_obj_id;
 
   60                return $this->members ? $this->members : array();
 
   68                $this->members = $a_members;
 
   80                if($this->exc->hasAddToDesktop())
 
   83                        $tmp_user->addDesktopItem($this->
getRefId(),
"exc");
 
   86                $ilDB->manipulate(
"DELETE FROM exc_members ".
 
   87                        "WHERE obj_id = ".
$ilDB->quote($this->getObjId(), 
"integer").
" ".
 
   88                        "AND usr_id = ".$ilDB->quote($a_usr_id, 
"integer").
" ");
 
   91                $ilDB->manipulateF(
"INSERT INTO exc_members (obj_id, usr_id, status, sent, feedback) ".
 
   92                        " VALUES (%s,%s,%s,%s,%s)",
 
   93                        array(
"integer", 
"integer", 
"text", 
"integer", 
"integer"),
 
   94                        array($this->
getObjId(), $a_usr_id, 
'notgraded', 0, 0));
 
   96                include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
 
  101                include_once(
"./Services/Tracking/classes/class.ilLPStatusWrapper.php");
 
  121                if(is_array($a_members))
 
  123                        foreach($a_members as $member)
 
  135                if($assigned == count($a_members))
 
  155                $tmp_user->dropDesktopItem($this->
getRefId(),
"exc");
 
  157                $query = 
"DELETE FROM exc_members ".
 
  158                        "WHERE obj_id = ".$ilDB->quote($this->
getObjId(), 
"integer").
" ".
 
  159                        "AND usr_id = ".$ilDB->quote($a_usr_id, 
"integer").
" ";
 
  165                include_once(
"./Services/Tracking/classes/class.ilLPStatusWrapper.php");
 
  169                include_once(
"./Modules/Exercise/classes/class.ilExSubmission.php");
 
  182                if(is_array($a_members))
 
  184                        foreach($a_members as $member)
 
  202                $tmp_arr_members = array();
 
  204                $query = 
"SELECT * FROM exc_members ".
 
  205                        "WHERE obj_id = ".$ilDB->quote($this->
getObjId(), 
"integer");
 
  210                        $tmp_arr_members[] = 
$row->usr_id;
 
  224                $query = 
"SELECT * FROM exc_members ".
 
  225                        "WHERE obj_id = ".$ilDB->quote($this->
getObjId(), 
"integer");
 
  230                        $data[] = array(
"usr_id" => 
$row->usr_id,
 
  231                                                        "notice" => 
$row->notice,
 
  232                                                        "returned" => 
$row->returned,
 
  233                                                        "status" => 
$row->status,
 
  234                                                        "sent"   => 
$row->sent,
 
  235                                                        "feedback"       => 
$row->feedback
 
  240                        $ilDB->manipulateF(
"INSERT INTO exc_members ".
 
  241                                " (obj_id, usr_id, notice, returned, status, feedback, sent) VALUES ".
 
  242                                " (%s,%s,%s,%s,%s,%s,%s)",
 
  243                                array (
"integer", 
"integer", 
"text", 
"integer", 
"text", 
"integer", 
"integer"),
 
  244                                array ($a_new_id, 
$row[
"usr_id"], 
$row[
"notice"], (
int) 
$row[
"returned"],
 
  245                                        $row[
"status"], (
int) 
$row[
"feedback"], (
int) 
$row[
"sent"])
 
  248                        include_once(
"./Services/Tracking/classes/class.ilLPStatusWrapper.php");
 
  259                $query = 
"DELETE FROM exc_members WHERE obj_id = ".
 
  261                $ilDB->manipulate(
$query);
 
  263                include_once(
"./Services/Tracking/classes/class.ilLPStatusWrapper.php");
 
  274                $query = 
"SELECT DISTINCT(excm.usr_id) ud".
 
  275                        " FROM exc_members excm".
 
  276                        " JOIN object_data od ON (od.obj_id = excm.usr_id)".
 
  277                        " WHERE excm.obj_id = ".$ilDB->quote($a_obj_id, 
"integer").
 
  278                        " AND od.type = ".$ilDB->quote(
"usr", 
"text");
 
  283                        $usr_ids[] = 
$row->ud;
 
  286                return $usr_ids ? $usr_ids : array();
 
  303                $query = 
"SELECT status FROM exc_members ".
 
  304                        "WHERE obj_id = ".$ilDB->quote($a_obj_id, 
"integer").
 
  305                        " AND usr_id = ".$ilDB->quote($a_user_id, 
"integer");
 
  310                        return $row[
"status"];
 
  331                $ilDB->manipulate(
"UPDATE exc_members SET ".
 
  332                        " status = ".
$ilDB->quote($a_status, 
"text").
 
  333                        " WHERE obj_id = ".$ilDB->quote($a_obj_id, 
"integer").
 
  334                        " AND usr_id = ".$ilDB->quote($a_user_id, 
"integer")
 
  337                include_once(
"./Services/Tracking/classes/class.ilLPStatusWrapper.php");
 
  357                $ilDB->manipulate(
"UPDATE exc_members SET ".
 
  358                        " returned = ".
$ilDB->quote($a_status, 
"integer").
 
  359                        " WHERE obj_id = ".$ilDB->quote($a_obj_id, 
"integer").
 
  360                        " AND usr_id = ".$ilDB->quote($a_user_id, 
"integer")
 
  363                include_once(
"./Services/Tracking/classes/class.ilLPStatusWrapper.php");
 
  380                $query = 
"SELECT DISTINCT(usr_id) as ud FROM exc_members ".
 
  381                        "WHERE obj_id = ".$ilDB->quote($a_obj_id, 
"integer").
" ".
 
  387                        $usr_ids[] = 
$row->ud;
 
  390                return $usr_ids ? $usr_ids : array();
 
  404                $set = 
$ilDB->query(
"SELECT DISTINCT(usr_id) FROM exc_members WHERE ".
 
  405                        " obj_id = ".
$ilDB->quote($a_obj_id, 
"integer").
" AND ".
 
  406                        " returned = ".$ilDB->quote(1, 
"integer").
" AND ".
 
  407                        " usr_id = ".$ilDB->quote($a_user_id, 
"integer")
 
  409                if ($rec = 
$ilDB->fetchAssoc($set))
 
  423                $query = 
"SELECT DISTINCT(usr_id) FROM exc_members ".
 
  424                        "WHERE obj_id = ".$ilDB->quote($a_obj_id, 
"integer").
" ".
 
  425                        "AND status = ".$ilDB->quote(
"passed", 
"text");
 
  429                        $usr_ids[] = 
$row->usr_id;
 
  431                return $usr_ids ? $usr_ids : array();
 
  441                $query = 
"SELECT DISTINCT(usr_id) FROM exc_members ".
 
  442                        "WHERE obj_id = ".$ilDB->quote($a_obj_id, 
"integer").
" ".
 
  443                        "AND status = ".$ilDB->quote(
"failed", 
"text");
 
  447                        $usr_ids[] = 
$row->usr_id;
 
  449                return $usr_ids ? $usr_ids : array();
 
static createNewUserRecords($a_user_id, $a_exc_id)
Create member status record for a new participant for all assignments.
static deleteUser($a_exc_id, $a_user_id)
Delete all delivered files of user.
deassignMember($a_usr_id)
Detaches a user from an exercise.
_getFailedUsers($a_obj_id)
Get all users that failed the exercise.
_getReturned($a_obj_id)
Get returned status for all members (if they have anything returned for any assignment)
_hasReturned($a_obj_id, $a_user_id)
Has user returned anything in any assignment?
setMembers($a_members)
Set members array.
getRefId()
Get exercise ref id.
ilExerciseMembers($a_exc)
getObjId()
Get exercise id.
assignMember($a_usr_id)
Assign a user to the exercise.
_writeReturned($a_obj_id, $a_user_id, $a_status)
Write returned status.
_writeStatus($a_obj_id, $a_user_id, $a_status)
Write user status.
_getPassedUsers($a_obj_id)
Get all users that passed the exercise.
deassignMembers($a_members)
Deassign members.
setObjId($a_obj_id)
Set exercise id.
isAssigned($a_id)
Is user assigned to exercise?
_lookupStatus($a_obj_id, $a_user_id)
Lookup current status (notgraded|passed|failed)
getMembers()
Get members array.
assignMembers($a_members)
Assign members to exercise.
_refreshStatus($a_obj_id, $a_users=null)
Set dirty.
static _updateStatus($a_obj_id, $a_usr_id, $a_obj=null, $a_percentage=false, $a_force_raise=false)
Update status.
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id