ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
ILIAS\Exercise\Submission\SubmissionManager Class Reference
+ Collaboration diagram for ILIAS\Exercise\Submission\SubmissionManager:

Public Member Functions

 __construct (InternalRepoService $repo, protected InternalDomainService $domain, protected \ilExcSubmissionStakeholder $stakeholder, protected int $ass_id)
 
 countSubmissionsOfUser (int $user_id)
 
 getSubmissionsOfUser (int $user_id, ?array $submit_ids=null, bool $only_valid=false, ?string $min_timestamp=null, bool $print_versions=false)
 Note: this includes submissions of other team members, if user is in a team. More...
 
 getSubmissionsOfOwners (array $user_ids)
 This is only suitable for types like text or single upload, where no teams are used. More...
 
 recalculateLateSubmissions ()
 
 getAllAssignmentFiles ()
 
 getMaxAmountOfSubmittedFiles (int $user_id=0)
 
 getUsersWithSubmission ()
 Get all user ids, that have submitted something. More...
 
 addLocalFile (int $user_id, string $file, string $filename="")
 
 addUpload (int $user_id, UploadResult $result, string $filename="")
 
 addZipUploads (int $user_id, UploadResult $result)
 
 deliverFile (int $user_id, string $rid, string $filetitle="")
 
 copyRidToWebDir (string $rid, string $internal_file_path)
 
 deleteSubmissions (int $user_id, array $ids)
 Delete submissions. More...
 
 deleteAllSubmissionsOfUser (int $user_id)
 
 copySubmissionsToDir (array $user_ids, string $directory)
 Should be replaced by writing into a zip directly in the future. More...
 

Protected Member Functions

 remainingFilesAllowed (int $user_id)
 
 getAllSubmissionIdsOfUser (int $user_id)
 All, include print, include all from team. More...
 
 getDirectoryNameFromUserData (int $user_id)
 there is still a version in ilExSubmission that needs to be replaced More...
 

Protected Attributes

ilExAssignmentTypeInterface $type
 
ILIAS Exercise Team TeamManager $team
 
ilLogger $log
 
SubmissionRepositoryInterface $repo
 
ilExAssignment $assignment
 

Detailed Description

Definition at line 28 of file SubmissionManager.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Exercise\Submission\SubmissionManager::__construct ( InternalRepoService  $repo,
protected InternalDomainService  $domain,
protected \ilExcSubmissionStakeholder  $stakeholder,
protected int  $ass_id 
)

Definition at line 36 of file SubmissionManager.php.

References ILIAS\Exercise\InternalDomainService\assignment(), ILIAS\Exercise\InternalRepoService\submission(), and ILIAS\Exercise\InternalDomainService\team().

41  {
42  $this->assignment = $domain->assignment()->getAssignment($ass_id);
43  $this->type = $this->assignment->getAssignmentType();
44  $this->repo = $repo->submission();
45  $this->log = $this->domain->logger()->exc();
46  $this->team = $domain->team();
47  }
+ Here is the call graph for this function:

Member Function Documentation

◆ addLocalFile()

ILIAS\Exercise\Submission\SubmissionManager::addLocalFile ( int  $user_id,
string  $file,
string  $filename = "" 
)

Definition at line 205 of file SubmissionManager.php.

References ILIAS\Exercise\Submission\Submission\$ass_id, $filename, ILIAS\Exercise\Submission\Submission\$team_id, ILIAS\Exercise\Submission\Submission\$user_id, and ilExAssignmentTeam\TEAM_LOG_ADD_FILE.

209  : bool {
210 
211  if ($filename === "") {
212  $filename = basename($file);
213  }
214  $submission = new \ilExSubmission(
215  $this->assignment,
216  $user_id
217  );
218 
219  if (!$submission->canAddFile()) {
220  return false;
221  }
222 
223  if ($this->type->isSubmissionAssignedToTeam()) {
224  $team_id = $submission->getTeam()->getId();
225  $user_id = 0;
226  if ($team_id === 0) {
227  return false;
228  }
229  } else {
230  $team_id = 0;
231  }
232  $success = $this->repo->addLocalFile(
233  $this->assignment->getExerciseId(),
235  $user_id,
236  $team_id,
237  $file,
238  $filename,
239  $submission->isLate(),
240  $this->stakeholder
241  );
242 
243  if ($success && $team_id > 0) {
244  $this->domain->team()->writeLog(
245  $team_id,
247  $filename
248  );
249  }
250 
251  return $success;
252  }
$filename
Definition: buildRTE.php:78

◆ addUpload()

ILIAS\Exercise\Submission\SubmissionManager::addUpload ( int  $user_id,
UploadResult  $result,
string  $filename = "" 
)

Definition at line 254 of file SubmissionManager.php.

References ILIAS\Exercise\Submission\Submission\$ass_id, $filename, ILIAS\Exercise\Submission\Submission\$team_id, ILIAS\Exercise\Submission\Submission\$user_id, ILIAS\FileUpload\DTO\UploadResult\getName(), and ilExAssignmentTeam\TEAM_LOG_ADD_FILE.

258  : bool {
259 
260  if ($filename === "") {
261  $filename = $result->getName();
262  }
263  $submission = new \ilExSubmission(
264  $this->assignment,
265  $user_id
266  );
267 
268  if (!$submission->canAddFile()) {
269  return false;
270  }
271 
272  if ($this->type->isSubmissionAssignedToTeam()) {
273  $team_id = $submission->getTeam()->getId();
274  $user_id = 0;
275  if ($team_id === 0) {
276  return false;
277  }
278  } else {
279  $team_id = 0;
280  }
281  $success = $this->repo->addUpload(
282  $this->assignment->getExerciseId(),
284  $user_id,
285  $team_id,
286  $result,
287  $filename,
288  $submission->isLate(),
289  $this->stakeholder
290  );
291 
292  if ($success && $team_id > 0) {
293  $this->domain->team()->writeLog(
294  $team_id,
296  $filename
297  );
298  }
299 
300  return $success;
301  }
$filename
Definition: buildRTE.php:78
+ Here is the call graph for this function:

◆ addZipUploads()

ILIAS\Exercise\Submission\SubmissionManager::addZipUploads ( int  $user_id,
UploadResult  $result 
)

Definition at line 318 of file SubmissionManager.php.

References ILIAS\Exercise\Submission\Submission\$ass_id, $filename, ILIAS\Exercise\Submission\Submission\$team_id, ILIAS\Exercise\Submission\Submission\$user_id, ILIAS\Exercise\Submission\SubmissionManager\remainingFilesAllowed(), and ilExAssignmentTeam\TEAM_LOG_ADD_FILE.

321  : bool {
322  $submission = new \ilExSubmission(
323  $this->assignment,
324  $user_id
325  );
326  if (!$submission->canAddFile()) {
327  return false;
328  }
329  if ($this->type->isSubmissionAssignedToTeam()) {
330  $team_id = $submission->getTeam()->getId();
331  $user_id = 0;
332  if ($team_id === 0) {
333  return false;
334  }
335  } else {
336  $team_id = 0;
337  }
338  $filenames = $this->repo->addZipUpload(
339  $this->assignment->getExerciseId(),
341  $user_id,
342  $team_id,
343  $result,
344  $submission->isLate(),
345  $this->stakeholder,
346  $this->remainingFilesAllowed($user_id)
347  );
348  $this->log->debug("99");
349  if ($team_id > 0) {
350  foreach ($filenames as $filename) {
351  $this->domain->team()->writeLog(
352  $team_id,
354  $filename
355  );
356  }
357  }
358 
359  return count($filenames) > 0;
360  }
$filename
Definition: buildRTE.php:78
+ Here is the call graph for this function:

◆ copyRidToWebDir()

ILIAS\Exercise\Submission\SubmissionManager::copyRidToWebDir ( string  $rid,
string  $internal_file_path 
)

Definition at line 375 of file SubmissionManager.php.

References $DIC, CLIENT_ID, ILIAS_WEB_DIR, and null.

378  : ?string {
379  global $DIC;
380 
381  $web_filesystem = $DIC->filesystem()->web();
382 
383  $internal_dirs = dirname($internal_file_path);
384  $zip_file = basename($internal_file_path);
385 
386  if ($rid !== "") {
387  //$this->log->debug("internal file path: " . $internal_file_path);
388  if ($web_filesystem->hasDir($internal_dirs)) {
389  $web_filesystem->deleteDir($internal_dirs);
390  }
391  $web_filesystem->createDir($internal_dirs);
392  if ($web_filesystem->has($internal_file_path)) {
393  $web_filesystem->delete($internal_file_path);
394  }
395  if (!$web_filesystem->has($internal_file_path)) {
396  //$this->log->debug("writing: " . $internal_file_path);
397  $stream = $this->repo->getStream(
398  $this->ass_id,
399  $rid
400  );
401  if (!is_null($stream)) {
402  $web_filesystem->writeStream($internal_file_path, $stream);
403 
404  return ILIAS_ABSOLUTE_PATH .
405  DIRECTORY_SEPARATOR .
406  "public" .
407  DIRECTORY_SEPARATOR .
408  ILIAS_WEB_DIR .
409  DIRECTORY_SEPARATOR .
410  CLIENT_ID .
411  DIRECTORY_SEPARATOR .
412  $internal_dirs .
413  DIRECTORY_SEPARATOR .
414  $zip_file;
415  }
416  }
417  }
418 
419  return null;
420  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
const CLIENT_ID
Definition: constants.php:41
global $DIC
Definition: shib_login.php:26
const ILIAS_WEB_DIR
Definition: constants.php:45

◆ copySubmissionsToDir()

ILIAS\Exercise\Submission\SubmissionManager::copySubmissionsToDir ( array  $user_ids,
string  $directory 
)

Should be replaced by writing into a zip directly in the future.

Definition at line 478 of file SubmissionManager.php.

References ILIAS\Exercise\Submission\SubmissionManager\$assignment, $DIC, ILIAS\Exercise\Submission\Submission\$id, $lng, ILIAS\Exercise\Submission\SubmissionManager\$log, ILIAS\Exercise\Submission\Submission\$team_id, ilObjUser\_lookupName(), ilObject\_lookupObjId(), ilObject\_lookupType(), ilFileUtils\getASCIIFilename(), ilExAssignmentTeam\getAssignmentTeamMap(), ILIAS\Exercise\Submission\SubmissionManager\getDirectoryNameFromUserData(), ILIAS\Exercise\Submission\SubmissionManager\getSubmissionsOfUser(), ilFileUtils\makeDirParents(), null, and ilExSubmission\TYPE_REPO_OBJECT.

481  {
482  $members = [];
483  foreach ($user_ids as $member_id) {
484  $submission = new \ilExSubmission($this->assignment, $member_id);
485  $submission->updateTutorDownloadTime();
486 
487  // get member object (ilObjUser)
488  if ($this->domain->profile()->exists($member_id)) {
489  // adding file metadata
490  foreach ($this->getSubmissionsOfUser($member_id) as $sub) {
491  $members[$sub->getUserId()]["files"][$sub->getId()] = $sub;
492  }
493 
494  $name = \ilObjUser::_lookupName($member_id);
495  $members[$member_id]["name"] = $name["firstname"] . " " . $name["lastname"];
496  }
497  }
498  $this->copySubmissionFilesToDir($members, $directory);
499  }
static _lookupName(int $a_user_id)
lookup user name
getSubmissionsOfUser(int $user_id, ?array $submit_ids=null, bool $only_valid=false, ?string $min_timestamp=null, bool $print_versions=false)
Note: this includes submissions of other team members, if user is in a team.
+ Here is the call graph for this function:

◆ countSubmissionsOfUser()

ILIAS\Exercise\Submission\SubmissionManager::countSubmissionsOfUser ( int  $user_id)

Definition at line 49 of file SubmissionManager.php.

References ILIAS\Exercise\Submission\SubmissionManager\getSubmissionsOfUser().

Referenced by ILIAS\Exercise\Submission\SubmissionManager\remainingFilesAllowed().

49  : int
50  {
51  return count(iterator_to_array(
53  ));
54  }
getSubmissionsOfUser(int $user_id, ?array $submit_ids=null, bool $only_valid=false, ?string $min_timestamp=null, bool $print_versions=false)
Note: this includes submissions of other team members, if user is in a team.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deleteAllSubmissionsOfUser()

ILIAS\Exercise\Submission\SubmissionManager::deleteAllSubmissionsOfUser ( int  $user_id)

Definition at line 467 of file SubmissionManager.php.

References ILIAS\Exercise\Submission\SubmissionManager\deleteSubmissions(), and ILIAS\Exercise\Submission\SubmissionManager\getAllSubmissionIdsOfUser().

467  : void
468  {
469  $this->deleteSubmissions(
470  $user_id,
472  );
473  }
getAllSubmissionIdsOfUser(int $user_id)
All, include print, include all from team.
deleteSubmissions(int $user_id, array $ids)
Delete submissions.
+ Here is the call graph for this function:

◆ deleteSubmissions()

ILIAS\Exercise\Submission\SubmissionManager::deleteSubmissions ( int  $user_id,
array  $ids 
)

Delete submissions.

Definition at line 425 of file SubmissionManager.php.

References ILIAS\Exercise\Submission\Submission\$id, ILIAS\Exercise\Submission\Submission\$team_id, ILIAS\Exercise\Submission\SubmissionManager\getAllSubmissionIdsOfUser(), and ilExAssignmentTeam\TEAM_LOG_REMOVE_FILE.

Referenced by ILIAS\Exercise\Submission\SubmissionManager\deleteAllSubmissionsOfUser().

425  : void
426  {
427  if (count($ids) == 0) {
428  return;
429  }
430  $all = $this->getAllSubmissionIdsOfUser($user_id);
431  foreach ($ids as $id) {
432  // this ensures, the ids belong to user submissions at all
433  if (!in_array($id, $all)) {
434  continue;
435  }
436  $s = $this->repo->getById($id);
437  $this->repo->delete(
438  $id,
439  $this->stakeholder
440  );
441  $team_id = $this->team->getTeamForMember($this->ass_id, $user_id);
442  if ($team_id && $team_id > 0) {
443  $this->team->writeLog(
444  $team_id,
446  $s->getTitle()
447  );
448  }
449  }
450  }
getAllSubmissionIdsOfUser(int $user_id)
All, include print, include all from team.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deliverFile()

ILIAS\Exercise\Submission\SubmissionManager::deliverFile ( int  $user_id,
string  $rid,
string  $filetitle = "" 
)

Definition at line 362 of file SubmissionManager.php.

366  : void {
367  $this->repo->deliverFile(
368  $this->ass_id,
369  $user_id,
370  $rid,
371  $filetitle
372  );
373  }

◆ getAllAssignmentFiles()

ILIAS\Exercise\Submission\SubmissionManager::getAllAssignmentFiles ( )
Exceptions

Definition at line 170 of file SubmissionManager.php.

References ILIAS\Exercise\Submission\SubmissionManager\$assignment.

Referenced by ILIAS\Exercise\Submission\SubmissionManager\recalculateLateSubmissions().

170  : array
171  {
173 
174  $delivered = [];
175  foreach ($this->repo->getAllEntriesOfAssignment($assignment->getId()) as $row) {
176  $row["timestamp"] = $row["ts"];
177  $delivered[] = $row;
178  }
179 
180  return $delivered;
181  }
+ Here is the caller graph for this function:

◆ getAllSubmissionIdsOfUser()

ILIAS\Exercise\Submission\SubmissionManager::getAllSubmissionIdsOfUser ( int  $user_id)
protected

All, include print, include all from team.

Definition at line 455 of file SubmissionManager.php.

References ILIAS\Exercise\Submission\SubmissionManager\getSubmissionsOfUser(), and null.

Referenced by ILIAS\Exercise\Submission\SubmissionManager\deleteAllSubmissionsOfUser(), and ILIAS\Exercise\Submission\SubmissionManager\deleteSubmissions().

455  : array
456  {
457  $subs = [];
458  foreach ($this->getSubmissionsOfUser($user_id) as $s) {
459  $subs[] = $s->getId();
460  }
461  foreach ($this->getSubmissionsOfUser($user_id, null, false, null, true) as $s) {
462  $subs[] = $s->getId();
463  }
464  return $subs;
465  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
getSubmissionsOfUser(int $user_id, ?array $submit_ids=null, bool $only_valid=false, ?string $min_timestamp=null, bool $print_versions=false)
Note: this includes submissions of other team members, if user is in a team.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getDirectoryNameFromUserData()

ILIAS\Exercise\Submission\SubmissionManager::getDirectoryNameFromUserData ( int  $user_id)
protected

there is still a version in ilExSubmission that needs to be replaced

Definition at line 634 of file SubmissionManager.php.

References $DIC, $filename, ILIAS\Exercise\Submission\Submission\$late, $lng, ILIAS\Exercise\Submission\Submission\$user_id, ilObjUser\_lookupName(), ilFileUtils\getASCIIFilename(), ilExAssignment\lookupTitle(), and null.

Referenced by ILIAS\Exercise\Submission\SubmissionManager\copySubmissionsToDir().

634  : string
635  {
636  $userName = \ilObjUser::_lookupName($user_id);
637  return \ilFileUtils::getASCIIFilename(
638  trim($userName["lastname"]) . "_" .
639  trim($userName["firstname"]) . "_" .
640  trim($userName["login"]) . "_" .
641  $userName["user_id"]
642  );
643  }
static _lookupName(int $a_user_id)
lookup user name
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getMaxAmountOfSubmittedFiles()

ILIAS\Exercise\Submission\SubmissionManager::getMaxAmountOfSubmittedFiles ( int  $user_id = 0)

Definition at line 183 of file SubmissionManager.php.

References ILIAS\Exercise\Submission\SubmissionManager\$assignment, and ILIAS\Exercise\Submission\Submission\$user_id.

185  : int {
186  $ass = $this->assignment;
187  return $this->repo->getMaxAmountOfSubmittedFiles(
188  $ass->getExerciseId(),
189  $ass->getId(),
190  $user_id
191  );
192  }

◆ getSubmissionsOfOwners()

ILIAS\Exercise\Submission\SubmissionManager::getSubmissionsOfOwners ( array  $user_ids)

This is only suitable for types like text or single upload, where no teams are used.

Returns
<Submission>

Definition at line 110 of file SubmissionManager.php.

References ILIAS\ResourceStorage\Flavour\Machine\DefaultMachines\from(), ilExAssignment\TYPE_BLOG, ilExAssignment\TYPE_PORTFOLIO, and ilExAssignment\TYPE_WIKI_TEAM.

110  : \Generator
111  {
112  $type_uses_uploads = $this->type->usesFileUpload();
113  $type_uses_print_versions = in_array($this->assignment->getType(), [
117  ], true);
118  yield from $this->repo->getSubmissionsOfUsers(
119  $this->ass_id,
120  $type_uses_uploads,
121  $type_uses_print_versions,
122  $user_ids
123  );
124  }
+ Here is the call graph for this function:

◆ getSubmissionsOfUser()

ILIAS\Exercise\Submission\SubmissionManager::getSubmissionsOfUser ( int  $user_id,
?array  $submit_ids = null,
bool  $only_valid = false,
?string  $min_timestamp = null,
bool  $print_versions = false 
)

Note: this includes submissions of other team members, if user is in a team.

Returns
<Submission>

Definition at line 60 of file SubmissionManager.php.

References ILIAS\Exercise\Submission\Submission\$team_id, ILIAS\ResourceStorage\Flavour\Machine\DefaultMachines\from(), ilExAssignment\TYPE_BLOG, ilExAssignment\TYPE_PORTFOLIO, and ilExAssignment\TYPE_WIKI_TEAM.

Referenced by ILIAS\Exercise\Submission\SubmissionManager\copySubmissionsToDir(), ILIAS\Exercise\Submission\SubmissionManager\countSubmissionsOfUser(), and ILIAS\Exercise\Submission\SubmissionManager\getAllSubmissionIdsOfUser().

66  : \Generator {
67  $type_uses_print_versions = in_array($this->assignment->getType(), [
71  ], true);
72  $type_uses_uploads = $this->type->usesFileUpload();
73  if ($this->type->isSubmissionAssignedToTeam()) {
74  $team_id = $this->team->getTeamForMember($this->ass_id, $user_id);
75  if (((int) $team_id) !== 0) {
76  yield from $this->repo->getSubmissionsOfTeam(
77  $this->ass_id,
78  $type_uses_uploads,
79  $type_uses_print_versions,
80  $team_id,
81  $submit_ids,
82  $only_valid,
83  $min_timestamp,
84  $print_versions
85  );
86  }
87  } else {
88  $user_ids = $this->team->getTeamMemberIdsOrUserId(
89  $this->ass_id,
90  $user_id
91  );
92  yield from $this->repo->getSubmissionsOfUsers(
93  $this->ass_id,
94  $type_uses_uploads,
95  $type_uses_print_versions,
96  $user_ids,
97  $submit_ids,
98  $only_valid,
99  $min_timestamp,
100  $print_versions
101  );
102  }
103  yield from [];
104  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getUsersWithSubmission()

ILIAS\Exercise\Submission\SubmissionManager::getUsersWithSubmission ( )

Get all user ids, that have submitted something.

Returns
int[]

Definition at line 198 of file SubmissionManager.php.

198  : array
199  {
200  return $this->repo->getUsersWithSubmission(
201  $this->ass_id
202  );
203  }

◆ recalculateLateSubmissions()

ILIAS\Exercise\Submission\SubmissionManager::recalculateLateSubmissions ( )

Definition at line 126 of file SubmissionManager.php.

References ILIAS\Exercise\Submission\SubmissionManager\$assignment, ILIAS\Exercise\Submission\Submission\$id, ILIAS\Exercise\Submission\Submission\$late, ILIAS\Exercise\Submission\SubmissionManager\getAllAssignmentFiles(), ilExAssignment\getExtendedDeadline(), IL_CAL_DATETIME, IL_CAL_UNIX, and null.

126  : void
127  {
128  // see JF, 2015-05-11
129  $assigment = $this->assignment;
130 
131  $ext_deadline = $assigment->getExtendedDeadline();
132 
133  foreach ($this->getAllAssignmentFiles() as $file) {
134  $id = $file["returned_id"];
135  $uploaded = new \ilDateTime($file["ts"], IL_CAL_DATETIME);
136  $uploaded = $uploaded->get(IL_CAL_UNIX);
137 
138  $deadline = $assigment->getPersonalDeadline($file["user_id"]);
139  $last_deadline = max($deadline, $assigment->getExtendedDeadline());
140 
141  $late = null;
142 
143  // upload is not late anymore
144  if ($file["late"] &&
145  (!$last_deadline ||
146  !$ext_deadline ||
147  $uploaded < $deadline)) {
148  $late = false;
149  }
150  // upload is now late
151  elseif (!$file["late"] &&
152  $ext_deadline &&
153  $deadline &&
154  $uploaded > $deadline) {
155  $late = true;
156  }
157 
158  if ($late !== null) {
159  $this->repo->updateLate(
160  $id,
161  $late
162  );
163  }
164  }
165  }
const IL_CAL_DATETIME
const IL_CAL_UNIX
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ Here is the call graph for this function:

◆ remainingFilesAllowed()

ILIAS\Exercise\Submission\SubmissionManager::remainingFilesAllowed ( int  $user_id)
protected

Definition at line 303 of file SubmissionManager.php.

References ILIAS\Exercise\Submission\SubmissionManager\countSubmissionsOfUser().

Referenced by ILIAS\Exercise\Submission\SubmissionManager\addZipUploads().

303  : int
304  {
305  $submission = new \ilExSubmission(
306  $this->assignment,
307  $user_id
308  );
309  $max_file = $submission->getAssignment()->getMaxFile();
310  if ($max_file === 0) {
311  return -1;
312  }
313  $cnt_sub = $this->countSubmissionsOfUser($user_id);
314  $max_file -= $cnt_sub;
315  return max($max_file, 0);
316  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $assignment

◆ $log

ilLogger ILIAS\Exercise\Submission\SubmissionManager::$log
protected

◆ $repo

SubmissionRepositoryInterface ILIAS\Exercise\Submission\SubmissionManager::$repo
protected

Definition at line 33 of file SubmissionManager.php.

◆ $team

ILIAS Exercise Team TeamManager ILIAS\Exercise\Submission\SubmissionManager::$team
protected

Definition at line 31 of file SubmissionManager.php.

◆ $type

ilExAssignmentTypeInterface ILIAS\Exercise\Submission\SubmissionManager::$type
protected

Definition at line 30 of file SubmissionManager.php.


The documentation for this class was generated from the following file: