60                $this->
setType(self::TYPE_UPLOAD);
 
   74                $set = 
$ilDB->query(
"SELECT * FROM exc_assignment ".
 
   75                        " WHERE exc_id = ".
$ilDB->quote($a_exc_id, 
"integer").
 
   76                        " ORDER BY order_nr ASC");
 
   80                while ($rec = 
$ilDB->fetchAssoc($set))
 
   83                        $rec[
"order_val"] = $order_val;
 
   86                        $ass->initFromDB($rec);
 
  127                $this->exc_id = $a_val;
 
  147                $this->start_time = $a_val;
 
  167                $this->deadline = $a_val;
 
  190                if($this->
getType() == self::TYPE_UPLOAD_TEAM)
 
  192                        include_once(
"./Modules/Exercise/classes/class.ilExAssignmentTeam.php");
 
  199                        $a_user_id = $team_id;
 
  203                $set = 
$ilDB->query(
"SELECT tstamp FROM exc_idl".
 
  204                        " WHERE ass_id = ".
$ilDB->quote($this->getId(), 
"integer").
 
  205                        " AND member_id = ".$ilDB->quote($a_user_id, 
"integer").
 
  206                        " AND is_team = ".$ilDB->quote($is_team, 
"integer"));
 
  222                $set = 
$ilDB->query(
"SELECT MAX(tstamp) FROM exc_idl".
 
  223                        " WHERE ass_id = ".
$ilDB->quote($this->getId(), 
"integer"));
 
  225                return $row[
"tstamp"];
 
  237                        $a_val = (int)$a_val;
 
  239                $this->deadline2 = $a_val;
 
  259                $this->instruction = $a_val;
 
  279                $this->title = $a_val;
 
  299                $this->mandatory = $a_val;
 
  319                $this->order_nr = $a_val;
 
  341                        $this->type = (int)$a_value;
 
  343                        if($this->type == self::TYPE_UPLOAD_TEAM)
 
  368                if(in_array((
int)$a_value, array(self::TYPE_UPLOAD, self::TYPE_BLOG, 
 
  369                        self::TYPE_PORTFOLIO, self::TYPE_UPLOAD_TEAM, self::TYPE_TEXT)))
 
  383                $this->peer = (bool)$a_value;
 
  403                $this->peer_min = (int)$a_value;
 
  423                $this->peer_unlock = (bool)$a_value;
 
  443                $this->peer_dl = $a_val;
 
  463                $this->peer_valid = (int)$a_value;
 
  483                $this->peer_rating = (bool)$a_val;
 
  503                $this->peer_text = (bool)$a_val;
 
  523                $this->peer_file = (bool)$a_val;
 
  543                $this->peer_personal = (bool)$a_val;
 
  563                $a_value = (is_numeric($a_value) && (int)$a_value > 0)
 
  566                $this->peer_char = $a_value;
 
  586                $a_value = is_numeric($a_value)
 
  589                $this->crit_cat = $a_value;
 
  599                return $this->crit_cat;
 
  604                include_once 
"Modules/Exercise/classes/class.ilExcCriteria.php";
 
  614                        if($this->peer_rating)
 
  624                                        $crit->setMinChars($this->peer_char);
 
  645                $this->feedback_file = (string)$a_value;
 
  665                $this->feedback_cron = (string)$a_value;
 
  685                $this->feedback_date = (int)$a_value;
 
  705                $this->team_tutor = (bool)$a_value;
 
  725                if($a_value !== 
null)
 
  727                        $a_value = (int)$a_value;
 
  729                $this->max_file = $a_value;
 
  749                $set = 
$ilDB->query(
"SELECT * FROM exc_assignment ".
 
  750                        " WHERE id = ".
$ilDB->quote($this->getId(), 
"integer")
 
  752                $rec = 
$ilDB->fetchAssoc($set);
 
  769                $this->
setId($a_set[
"id"]);
 
  778                $this->
setType($a_set[
"type"]);
 
  811                $next_id = 
$ilDB->nextId(
"exc_assignment");
 
  812                $ilDB->insert(
"exc_assignment", array(
 
  813                        "id" => array(
"integer", $next_id),
 
  815                        "time_stamp" => array(
"integer", $this->
getDeadline()),
 
  818                        "title" => array(
"text", $this->
getTitle()),
 
  819                        "start_time" => array(
"integer", $this->
getStartTime()),
 
  820                        "order_nr" => array(
"integer", $this->
getOrderNr()),
 
  822                        "type" => array(
"integer", $this->
getType()),
 
  837                        "team_tutor" => array(
"integer", $this->
getTeamTutor()),
 
  838                        "max_file" => array(
"integer", $this->
getMaxFile())
 
  840                $this->
setId($next_id);
 
  842                $exc->updateAllUsersStatus();
 
  855                $ilDB->update(
"exc_assignment",
 
  858                        "time_stamp" => array(
"integer", $this->
getDeadline()),
 
  861                        "title" => array(
"text", $this->
getTitle()),
 
  862                        "start_time" => array(
"integer", $this->
getStartTime()),
 
  863                        "order_nr" => array(
"integer", $this->
getOrderNr()),
 
  865                        "type" => array(
"integer", $this->
getType()),
 
  880                        "team_tutor" => array(
"integer", $this->
getTeamTutor()),
 
  881                        "max_file" => array(
"integer", $this->
getMaxFile())
 
  884                        "id" => array(
"integer", $this->
getId()),
 
  887                $exc->updateAllUsersStatus();
 
  901                $ilDB->manipulate(
"DELETE FROM exc_assignment WHERE ".
 
  902                        " id = ".
$ilDB->quote($this->getId(), 
"integer")
 
  905                $exc->updateAllUsersStatus();
 
  920                $set = 
$ilDB->query(
"SELECT * FROM exc_assignment ".
 
  921                        " WHERE exc_id = ".
$ilDB->quote($a_exc_id, 
"integer").
 
  922                        " ORDER BY order_nr ASC");
 
  926                while ($rec = 
$ilDB->fetchAssoc($set))
 
  931                                "exc_id" => $rec[
"exc_id"],
 
  932                                "deadline" => $rec[
"time_stamp"],
 
  933                                "deadline2" => $rec[
"deadline2"],
 
  934                                "instruction" => $rec[
"instruction"],
 
  935                                "title" => $rec[
"title"],
 
  936                                "start_time" => $rec[
"start_time"],
 
  937                                "order_val" => $order_val,
 
  938                                "mandatory" => $rec[
"mandatory"],
 
  939                                "type" => $rec[
"type"],
 
  940                                "peer" => $rec[
"peer"],
 
  941                                "peer_min" => $rec[
"peer_min"],
 
  942                                "peer_dl" => $rec[
"peer_dl"],
 
  943                                "peer_file" => $rec[
"peer_file"],
 
  944                                "peer_prsl" => $rec[
"peer_prsl"],
 
  945                                "fb_file" => $rec[
"fb_file"],
 
  946                                "fb_date" => $rec[
"fb_date"],
 
  947                                "fb_cron" => $rec[
"fb_cron"],
 
  963                foreach ($ass_data as 
$d)
 
  967                        $new_ass->setExerciseId($a_new_exc_id);
 
  968                        $new_ass->setTitle(
$d->getTitle());
 
  969                        $new_ass->setDeadline(
$d->getDeadline());
 
  970                        $new_ass->setExtendedDeadline(
$d->getExtendedDeadline());
 
  971                        $new_ass->setInstruction(
$d->getInstruction());
 
  972                        $new_ass->setMandatory(
$d->getMandatory());
 
  973                        $new_ass->setOrderNr(
$d->getOrderNr());
 
  974                        $new_ass->setStartTime(
$d->getStartTime());
 
  975                        $new_ass->setType(
$d->getType());
 
  976                        $new_ass->setPeerReview(
$d->getPeerReview());
 
  977                        $new_ass->setPeerReviewMin(
$d->getPeerReviewMin());
 
  978                        $new_ass->setPeerReviewDeadline(
$d->getPeerReviewDeadline());
 
  979                        $new_ass->setPeerReviewFileUpload(
$d->hasPeerReviewFileUpload());
 
  980                        $new_ass->setPeerReviewPersonalized(
$d->hasPeerReviewPersonalized());
 
  981                        $new_ass->setPeerReviewValid(
$d->getPeerReviewValid());
 
  982                        $new_ass->setPeerReviewChars(
$d->getPeerReviewChars());
 
  983                        $new_ass->setPeerReviewText(
$d->hasPeerReviewText());
 
  984                        $new_ass->setPeerReviewRating(
$d->hasPeerReviewRating());
 
  985                        $new_ass->setPeerReviewCriteriaCatalogue(
$d->getPeerReviewCriteriaCatalogue());
 
  986                        $new_ass->setPeerReviewSimpleUnlock(
$d->getPeerReviewSimpleUnlock());
 
  987                        $new_ass->setPeerReviewText(
$d->hasPeerReviewText());
 
  988                        $new_ass->setPeerReviewRating(
$d->hasPeerReviewRating());                       
 
  989                        $new_ass->setFeedbackFile(
$d->getFeedbackFile());
 
  990                        $new_ass->setFeedbackDate(
$d->getFeedbackDate());
 
  991                        $new_ass->setFeedbackCron(
$d->hasFeedbackCron()); 
 
  992                        $new_ass->setTeamTutor(
$d->getTeamTutor());
 
  993                        $new_ass->setMaxFile(
$d->getMaxFile());
 
  996                        if(
$d->getPeerReviewCriteriaCatalogue() &&
 
  997                                array_key_exists(
$d->getPeerReviewCriteriaCatalogue(), $a_crit_cat_map))
 
  999                                $new_ass->setPeerReviewCriteriaCatalogue($a_crit_cat_map[
$d->getPeerReviewCriteriaCatalogue()]);
 
 1004                        include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
 
 1007                        $new_storage->create();
 
 1010                        if (is_dir($old_storage->getPath()))
 
 1012                                ilUtil::rCopy($old_storage->getPath(), $new_storage->getPath());
 
 1016                        if (is_dir($old_storage->getGlobalFeedbackPath()))
 
 1018                                ilUtil::rCopy($old_storage->getGlobalFeedbackPath(), $new_storage->getGlobalFeedbackPath());
 
 1028                include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
 
 1030                return $storage->getFiles();
 
 1040                $set = 
$ilDB->query(
"SELECT MAX(order_nr) mnr FROM exc_assignment ".
 
 1041                        " WHERE exc_id = ".
$ilDB->quote($a_exc_id, 
"integer")
 
 1043                while ($rec = 
$ilDB->fetchAssoc($set))
 
 1045                        return (
int) $rec[
"mnr"];
 
 1059                $query = 
"SELECT id FROM exc_assignment ".
 
 1060                        "WHERE start_time <= ".$ilDB->quote(time(),
'integer').
' '.
 
 1061                        "AND time_stamp >= ".$ilDB->quote(time(),
'integer').
' '.
 
 1062                        "AND id = ".$ilDB->quote($a_ass_id,
'integer');
 
 1065                return $res->numRows() ? true : 
false;
 
 1080                $query = 
"SELECT exc_id FROM exc_assignment ".
 
 1081                        "WHERE id = ".$ilDB->quote($a_ass_id,
'integer');
 
 1084                return (
int) 
$res[
"exc_id"];
 
 1090        private static function lookup($a_id, $a_field)
 
 1094                $set = 
$ilDB->query(
"SELECT ".$a_field.
" FROM exc_assignment ".
 
 1095                        " WHERE id = ".$ilDB->quote($a_id, 
"integer")
 
 1098                $rec = 
$ilDB->fetchAssoc($set);
 
 1100                return $rec[$a_field];
 
 1126                $result_order = array();
 
 1129                foreach ($a_order as $k => $v)
 
 1132                        $ilDB->manipulate(
$t = 
"UPDATE exc_assignment SET ".
 
 1133                                " order_nr = ".
$ilDB->quote($nr, 
"integer").
 
 1134                                " WHERE id = ".$ilDB->quote((
int) $k, 
"integer").
 
 1135                                " AND exc_id = ".$ilDB->quote((
int) $a_ex_id, 
"integer")
 
 1148                $set = 
$ilDB->query(
"SELECT id FROM exc_assignment ".
 
 1149                        " WHERE exc_id = ".
$ilDB->quote($a_ex_id, 
"integer").
 
 1150                        " ORDER BY time_stamp ASC" 
 1153                while ($rec  = 
$ilDB->fetchAssoc($set))
 
 1155                        $ilDB->manipulate(
"UPDATE exc_assignment SET ".
 
 1156                                " order_nr = ".
$ilDB->quote($nr, 
"integer").
 
 1157                                " WHERE id = ".$ilDB->quote($rec[
"id"], 
"integer")
 
 1170                $set = 
$ilDB->query(
"SELECT count(*) cntm FROM exc_assignment ".
 
 1171                        " WHERE exc_id = ".
$ilDB->quote($a_ex_id, 
"integer").
 
 1172                        " AND mandatory = ".$ilDB->quote(1, 
"integer")
 
 1174                $rec = 
$ilDB->fetchAssoc($set);
 
 1175                return $rec[
"cntm"];
 
 1188                $user_ids = self::getTeamMembersByAssignmentId($ass_id, $member_id);
 
 1191                        $user_ids = array($member_id);
 
 1194                $q=
"SELECT exc_mem_ass_status.status_time, exc_returned.ts ".
 
 1195                        "FROM exc_mem_ass_status, exc_returned ".
 
 1196                        "WHERE exc_mem_ass_status.status_time < exc_returned.ts ".
 
 1197                        "AND NOT exc_mem_ass_status.status_time IS NULL ".
 
 1198                        "AND exc_returned.ass_id = exc_mem_ass_status.ass_id ".
 
 1199                        "AND exc_returned.user_id = exc_mem_ass_status.usr_id ".
 
 1200                        "AND exc_returned.ass_id=".$ilDB->quote($ass_id, 
"integer").
 
 1201                        " AND ".$ilDB->in(
"exc_returned.user_id", $user_ids, 
"", 
"integer");
 
 1203                $usr_set = 
$ilDB->query($q);
 
 1205                $array = 
$ilDB->fetchAssoc($usr_set);
 
 1207                if (count($array)==0)
 
 1228                $set = 
$ilDB->query(
"SELECT ud.usr_id, ud.lastname, ud.firstname, ud.login".
 
 1229                        " FROM exc_members excm".
 
 1230                        " JOIN usr_data ud ON (ud.usr_id = excm.usr_id)".
 
 1231                        " WHERE excm.obj_id = ".
$ilDB->quote($this->getExerciseId(), 
"integer"));
 
 1232                while($rec = 
$ilDB->fetchAssoc($set))
 
 1234                        $mem[$rec[
"usr_id"]] =
 
 1236                                "name" => $rec[
"lastname"].
", ".$rec[
"firstname"],
 
 1237                                "login" => $rec[
"login"],
 
 1238                                "usr_id" => $rec[
"usr_id"],
 
 1239                                "lastname" => $rec[
"lastname"],
 
 1240                                "firstname" => $rec[
"firstname"]
 
 1244                include_once 
"Modules/Exercise/classes/class.ilExSubmission.php";
 
 1246                $q = 
"SELECT * FROM exc_mem_ass_status ".
 
 1247                        "WHERE ass_id = ".$ilDB->quote($this->
getId(), 
"integer");
 
 1248                $set = 
$ilDB->query($q);
 
 1249                while($rec = 
$ilDB->fetchAssoc($set))
 
 1251                        if (isset($mem[$rec[
"usr_id"]]))
 
 1255                                $mem[$rec[
"usr_id"]][
"sent_time"] = $rec[
"sent_time"];
 
 1256                                $mem[$rec[
"usr_id"]][
"submission"] = $sub->getLastSubmission();
 
 1257                                $mem[$rec[
"usr_id"]][
"status_time"] = $rec[
"status_time"];
 
 1258                                $mem[$rec[
"usr_id"]][
"feedback_time"] = $rec[
"feedback_time"];
 
 1259                                $mem[$rec[
"usr_id"]][
"notice"] = $rec[
"notice"];
 
 1260                                $mem[$rec[
"usr_id"]][
"status"] = $rec[
"status"];
 
 1261                                $mem[$rec[
"usr_id"]][
"mark"] = $rec[
"mark"];
 
 1262                                $mem[$rec[
"usr_id"]][
"comment"] = $rec[
"u_comment"];
 
 1276                foreach ($ass_data as $ass)
 
 1279                        $ilDB->replace(
"exc_mem_ass_status", array(
 
 1280                                "ass_id" => array(
"integer", $ass[
"id"]),
 
 1281                                "usr_id" => array(
"integer", $a_user_id)
 
 1283                                "status" => array(
"text", 
"notgraded")
 
 1295                include_once(
"./Modules/Exercise/classes/class.ilExerciseMembers.php");
 
 1297                $mems = $exmem->getMembers();
 
 1299                foreach ($mems as $mem)
 
 1301                        $ilDB->replace(
"exc_mem_ass_status", array(
 
 1302                                "ass_id" => array(
"integer", $a_ass_id),
 
 1303                                "usr_id" => array(
"integer", $mem)
 
 1305                                "status" => array(
"text", 
"notgraded")
 
 1316                include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
 
 1319                $storage->uploadAssignmentFiles($a_files);
 
 1336                $deliverFilename = trim(str_replace(
" ", 
"_", $this->
getTitle().
"_".$this->
getId()));
 
 1338                $deliverFilename = 
"multi_feedback_".$deliverFilename;
 
 1347                $mfdir = $tmpdir.
"/".$deliverFilename;
 
 1351                include_once(
"./Modules/Exercise/classes/class.ilExerciseMembers.php");
 
 1353                $mems = $exmem->getMembers();
 
 1355                foreach ($mems as $mem)
 
 1358                        $subdir = $name[
"lastname"].
"_".$name[
"firstname"].
"_".$name[
"login"].
"_".$name[
"user_id"];
 
 1365                $tmpzipfile = $tmpdir.
"/multi_feedback.zip";
 
 1383                include_once(
"./Modules/Exercise/exceptions/class.ilExerciseException.php");
 
 1384                if (!is_file($a_file[
"tmp_name"]))
 
 1389                include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
 
 1391                $mfu = $storage->getMultiFeedbackUploadPath(
$ilUser->getId());
 
 1396                $subdir = 
"notfound";
 
 1397                foreach ($subdirs as $s => $j)
 
 1399                        if ($j[
"type"] == 
"dir" && substr($s, 0, 14) == 
"multi_feedback")
 
 1405                if (!is_dir($mfu.
"/".$subdir))
 
 1423                if ($a_user_id == 0)
 
 1425                        $a_user_id = 
$ilUser->getId();
 
 1428                $mf_files = array();
 
 1432                include_once(
"./Modules/Exercise/classes/class.ilExerciseMembers.php");
 
 1434                $mems = $exmem->getMembers();
 
 1437                include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
 
 1439                $mfu = $storage->getMultiFeedbackUploadPath(
$ilUser->getId());
 
 1443                $subdir = 
"notfound";
 
 1444                foreach ($subdirs as $s => $j)
 
 1446                        if ($j[
"type"] == 
"dir" && substr($s, 0, 14) == 
"multi_feedback")
 
 1453                foreach ($items as $k => $i)
 
 1456                        if ($i[
"type"] == 
"dir" && !in_array($k, array(
".", 
"..")))
 
 1459                                $parts = explode(
"_", $i[
"entry"]);
 
 1460                                $user_id = (int) $parts[count($parts) - 1];
 
 1461                                if (in_array($user_id, $mems))
 
 1466                                        foreach (
$files as $k2 => $f)
 
 1469                                                if ($f[
"type"] == 
"file" && substr($k2, 0, 1) != 
".")
 
 1471                                                        $mf_files[] = array(
 
 1472                                                                "lastname" => $name[
"lastname"],
 
 1473                                                                "firstname" => $name[
"firstname"],
 
 1474                                                                "login" => $name[
"login"],
 
 1475                                                                "user_id" => $name[
"user_id"],
 
 1476                                                                "full_path" => $mfu.
"/".$subdir.
"/".$k.
"/".$k2,
 
 1496                include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
 
 1498                $mfu = $storage->getMultiFeedbackUploadPath(
$ilUser->getId());
 
 1515                include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
 
 1517                $fstorage->create();
 
 1519                $team_map = array();
 
 1522                foreach ($mf_files as $f)
 
 1524                        $user_id = $f[
"user_id"];
 
 1525                        $file_path = $f[
"full_path"];                           
 
 1526                        $file_name = $f[
"file"];
 
 1529                        if ($a_files[$user_id][md5($file_name)] != 
"")
 
 1532                                $feedback_id = $submission->getFeedbackId();
 
 1533                                $noti_rec_ids = $submission->getUserIds();
 
 1537                                        $fb_path = $fstorage->getFeedbackPath($feedback_id);
 
 1538                                        $target = $fb_path.
"/".$file_name;
 
 1548                                                foreach($noti_rec_ids as $user_id)
 
 1556                                                        (
int) $this->
getId());
 
 1575                global $ilAppEventHandler;
 
 1577                $dl_id = $this->
getId().
"0";
 
 1578                $fbdl_id = $this->
getId().
"1";
 
 1580                $context_ids = array($dl_id, $fbdl_id);         
 
 1583                if($a_event != 
"delete")
 
 1585                        include_once 
"Services/Calendar/classes/class.ilCalendarAppointmentTemplate.php";
 
 1591                                $app->setSubtitle(
"cal_exc_deadline");
 
 1593                                $app->setFullday(
false);
 
 1604                                $app->setSubtitle(
"cal_exc_peer_review_deadline");
 
 1606                                $app->setFullday(
false);
 
 1614                include_once 
"Modules/Exercise/classes/class.ilObjExercise.php";
 
 1617                $ilAppEventHandler->raise(
'Modules/Exercise',
 
 1618                        $a_event.
'Assignment',
 
 1621                        'obj_id' => $exc->getId(),                      
 
 1622                        'context_ids' => $context_ids,
 
 1623                        'appointments' => $apps));              
 
 1633                $set = 
$ilDB->query(
"SELECT id,fb_file FROM exc_assignment".
 
 1634                        " WHERE fb_cron = ".
$ilDB->quote(1, 
"integer").
 
 1635                        " AND fb_date = ".$ilDB->quote(self::FEEDBACK_DATE_DEADLINE, 
"integer").
 
 1636                        " AND time_stamp IS NOT NULL".
 
 1637                        " AND time_stamp > ".$ilDB->quote(0, 
"integer").                        
 
 1638                        " AND time_stamp < ".$ilDB->quote(time(), 
"integer").
 
 1639                        " AND fb_cron_done = ".
$ilDB->quote(0, 
"integer"));
 
 1642                        if(trim(
$row[
"fb_file"]))
 
 1655                $ass = 
new self($a_ass_id);
 
 1658                if(!$ass->hasFeedbackCron() || !$ass->getFeedbackFile())
 
 1666                        $set = 
$ilDB->query(
"SELECT fb_cron_done".
 
 1667                                " FROM exc_assignment".
 
 1668                                " WHERE id = ".
$ilDB->quote($a_ass_id, 
"integer"));
 
 1670                        if(
$row[
"fb_cron_done"])
 
 1676                include_once 
"./Services/Notification/classes/class.ilSystemNotification.php";
 
 1678                $ntf->setLangModules(array(
"exc"));
 
 1679                $ntf->setObjId($ass->getExerciseId());
 
 1680                $ntf->setSubjectLangId(
"exc_feedback_notification_subject");
 
 1681                $ntf->setIntroductionLangId(
"exc_feedback_notification_body");
 
 1682                $ntf->addAdditionalInfo(
"exc_assignment", $ass->getTitle());
 
 1683                $ntf->setGotoLangId(
"exc_feedback_notification_link");          
 
 1684                $ntf->setReasonLangId(
"exc_feedback_notification_reason");      
 
 1688                        include_once 
"./Modules/Exercise/classes/class.ilExerciseMembers.php";
 
 1691                        $ilDB->manipulate(
"UPDATE exc_assignment".
 
 1692                                " SET fb_cron_done = ".
$ilDB->quote(1, 
"integer").
 
 1693                                " WHERE id = ".$ilDB->quote($a_ass_id, 
"integer"));
 
 1697                        $ntf->sendMail(array($a_user_id));
 
 1714                $deadline = max($this->deadline, $this->deadline2, $idl);
 
 1723                $idl = (bool)$a_include_personal
 
 1728                $deadline = max($this->deadline, $this->deadline2, $idl);               
 
 1748                return (time() - $this->start_time <= 0);
 
 1758                include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
 
 1760                return $storage->getGlobalFeedbackPath();
 
 1800                        $a_user_id = 
$ilUser->getId();
 
 1802                if(!array_key_exists($a_user_id, $this->member_status))
 
 1804                        include_once 
"Modules/Exercise/classes/class.ilExAssignmentMemberStatus.php";
 
 1807                return $this->member_status[$a_user_id];
 
 1818                include_once 
"Modules/Exercise/classes/class.ilExSubmission.php";
 
 1839                        else if(!
$file[
"late"] &&
 
 1846                        else if($last_deadline && $uploaded > $last_deadline)
 
 1853                                $ilDB->manipulate(
"UPDATE exc_returned".
 
 1854                                        " SET late = ".
$ilDB->quote($late, 
"integer").
 
 1855                                        " WHERE returned_id = ".$ilDB->quote(
$id, 
"integer"));
 
 1870                if(!is_numeric(
$id))
 
 1876                $ilDB->replace(
"exc_idl",
 
 1878                                "ass_id" => array(
"integer", $this->
getId()),
 
 1879                                "member_id" => array(
"integer", 
$id),
 
 1880                                "is_team" => array(
"integer", $is_team)
 
 1894                $set = 
$ilDB->query(
"SELECT * FROM exc_idl".
 
 1895                        " WHERE ass_id = ".
$ilDB->quote($this->getId(), 
"integer"));
 
 1900                                $row[
"member_id"] = 
"t".$row[
"member_id"];
 
 1920                        include_once 
"Modules/Exercise/classes/class.ilExPeerReview.php";
 
 1922                        if($peer_review->hasPeerReviewGroups())
 
for($col=0; $col< 50; $col++) $d
An exception for terminatinating execution or to throw for unit testing.
const IL_CAL_TRANSLATION_SYSTEM
Apointment templates are used for automatic generated apointments.
@classDescription Date and time handling
get($a_format, $a_format_str='', $a_tz='')
get formatted date
Exercise assignment member status.
static getTeamId($a_assignment_id, $a_user_id, $a_create_on_demand=false)
Get team id for member id.
static orderAssByDeadline($a_ex_id)
Order assignments by deadline date.
getPersonalDeadline($a_user_id)
Get individual deadline.
deleteGlobalFeedbackFile()
hasPeerReviewText()
Get peer review text status.
afterDeadlineStrict($a_include_personal=true)
getPeerReviewChars()
Get peer review minimum characters.
hasPeerReviewPersonalized()
Get peer review personalized status.
setDeadline($a_val)
Set deadline (timestamp)
static lookupMaxOrderNrForEx($a_exc_id)
Select the maximum order nr for an exercise.
setOrderNr($a_val)
Set order nr.
clearMultiFeedbackDirectory()
Clear multi feedback directory.
getLastPersonalDeadline()
Get last/final personal deadline (of assignment)
setPeerReviewRating($a_val)
Set peer review rating.
setPeerReview($a_value)
Toggle peer review.
getFeedbackDate()
Get (global) feedback file availability date.
getPeerReviewValid()
Get peer review validatiob.
getMemberListData()
get member list data
getMultiFeedbackFiles($a_user_id=0)
Get multi feedback files (of uploader)
getExerciseId()
Get exercise id.
static lookup($a_id, $a_field)
Private lookup.
setTeamTutor($a_value)
Set team management by tutor.
setFeedbackCron($a_value)
Toggle (global) feedback file cron.
setTitle($a_val)
Set title.
uploadMultiFeedbackFile($a_file)
Upload multi feedback file.
handleCalendarEntries($a_event)
Handle calendar entries for deadline(s)
getId()
Get assignment id.
getInstruction()
Get instruction.
static lookupUpdatedSubmission($ass_id, $member_id)
Check whether student has upload new files after tutor has set the exercise to another than notgraded...
static countMandatory($a_ex_id)
Order assignments by deadline date.
const PEER_REVIEW_VALID_NONE
getTeamTutor()
Get team management by tutor.
getPeerReviewMin()
Get peer review minimum.
static getInstancesByExercise($a_exc_id)
setPeerReviewPersonalized($a_val)
Set peer review personalized.
const PEER_REVIEW_VALID_ALL
isValidType($a_value)
Is given type valid?
setPeerReviewValid($a_value)
Set peer review validation.
handleGlobalFeedbackFileUpload(array $a_file)
setPeerReviewText($a_val)
Set peer review text.
setPeerReviewSimpleUnlock($a_value)
Set peer review simple unlock.
getMaxFile()
Get max number of uploads.
static lookupExerciseId($a_ass_id)
Lookup excercise id for assignment id.
saveMultiFeedbackFiles($a_files, ilObjExercise $a_exc)
Save multi feedback files.
setExtendedDeadline($a_val)
Set extended deadline (timestamp)
setIndividualDeadline($id, ilDateTime $date)
setPeerReviewMin($a_value)
Set peer review minimum.
setInstruction($a_val)
Set instruction.
static createNewAssignmentRecords($a_ass_id, $a_exc)
Create member status record for a new assignment for all participants.
static getPendingFeedbackNotifications()
initFromDB(array $a_set)
Import DB record.
uploadAssignmentFiles($a_files)
Upload assignment files (from creation form)
__construct($a_id=0)
Constructor.
getPeerReview()
Get peer review status.
hasPeerReviewFileUpload()
Get peer review file upload status.
static sendFeedbackNotifications($a_ass_id, $a_user_id=null)
static cloneAssignmentsOfExercise($a_old_exc_id, $a_new_exc_id, array $a_crit_cat_map)
Clone assignments of exercise.
static getAssignmentDataOfExercise($a_exc_id)
Get assignments data of an exercise in an array.
setId($a_val)
Set assignment id.
setPeerReviewChars($a_value)
Set peer review minimum characters.
hasFeedbackCron()
Get (global) feedback file cron status.
recalculateLateSubmissions()
getStartTime()
Get start time (timestamp)
setMaxFile($a_value)
Set max number of uploads.
getMemberStatus($a_user_id=null)
setStartTime($a_val)
Set start time (timestamp)
setPeerReviewCriteriaCatalogue($a_value)
Set peer review criteria catalogue id.
getPeerReviewSimpleUnlock()
Get peer review simple unlock.
getGlobalFeedbackFileStoragePath()
sendMultiFeedbackStructureFile()
Create member status record for a new assignment for all participants.
const FEEDBACK_DATE_DEADLINE
getPeerReviewDeadline()
Get peer review deadline (timestamp)
const PEER_REVIEW_VALID_ONE
getOrderNr()
Get order nr.
getGlobalFeedbackFilePath()
setPeerReviewDeadline($a_val)
Set peer review deadline (timestamp)
setFeedbackDate($a_value)
Set (global) feedback file availability date.
static lookupTitle($a_id)
Lookup title.
getFeedbackFile()
Get (global) feedback file.
getPeerReviewCriteriaCatalogue()
Get peer review criteria catalogue id.
setPeerReviewFileUpload($a_val)
Set peer review file upload.
getPeerReviewCriteriaCatalogueItems()
saveAssOrderOfExercise($a_ex_id, $a_order)
Save ordering of all assignments of an exercise.
static createNewUserRecords($a_user_id, $a_exc_id)
Create member status record for a new participant for all assignments.
setType($a_value)
Set type.
const FEEDBACK_DATE_SUBMISSION
static lookupAssignmentOnline($a_ass_id)
Check if assignment is online.
getDeadline()
Get deadline (timestamp)
getExtendedDeadline()
Get extended deadline (timestamp)
setExerciseId($a_val)
Set exercise id.
static lookupType($a_id)
Lookup type.
setFeedbackFile($a_value)
Set (global) feedback file.
setMandatory($a_val)
Set mandatory.
getMandatory()
Get mandatory.
hasPeerReviewRating()
Get peer review rating status.
static getAllAssignmentFiles($a_exc_id, $a_ass_id)
static getInstancesByParentId($a_parent_id)
static getInstanceByType($a_type)
Class to report exception.
static _getMembers($a_obj_id)
sendFeedbackFileNotification($a_feedback_file, $a_user_id, $a_ass_id, $a_is_text_feedback=false)
Send feedback file notification to user.
static _lookupName($a_user_id)
lookup user name
getId()
get object id @access public
Wrapper classes for system notifications.
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
static rCopy($a_sdir, $a_tdir, $preserveTimeAttributes=false)
Copies content of a directory $a_sdir recursively to a directory $a_tdir.
static zip($a_dir, $a_file, $compress_content=false)
static getDir($a_dir, $a_rec=false, $a_sub_dir="")
get directory
static ilTempnam($a_temp_path=null)
Create a temporary file in an ILIAS writable directory.
static getASCIIFilename($a_filename)
convert utf8 to ascii filename
static unzip($a_file, $overwrite=false, $a_flat=false)
unzip file
static deliverFile($a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
if(!file_exists("$old.txt")) if( $old===$new) if(file_exists("$new.txt")) $file