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