19 declare(strict_types=1);
35 protected \ILIAS\FileUpload\FileUpload
$upload;
36 protected \ilExAssignmentTypeInterface
$type;
51 $this->
upload = $DIC->upload();
56 if ($this->type->usesTeams()) {
58 $this->stakeholder = $team_stakeholder;
74 $this->domain->resourceStorage()->events()->attach(
76 Event::COLLECTION_RESOURCE_ADDED
82 $log = $this->domain->log();
83 $log->debug(
"Ass id: " . $this->ass_id);
93 $log->debug(
"Get notification");
94 $notification = $this->domain->notification(
$ref_id);
95 $log->debug(
"Get participant");
96 $part_id = $this->repo->getParticipantIdForRcid($this->ass_id, $rcid);
97 $log->debug(
"Get filename");
98 $filename = $this->repo->getFilenameForRid($this->ass_id, $part_id, $rid);
99 $log->debug(
"Get assignment");
100 $ass = new \ilExAssignment($this->ass_id);
101 $log->debug(
"Get submission");
102 $submission = new \ilExSubmission($ass, $part_id);
103 $feedback_id = $submission->getFeedbackId();
104 $noti_rec_ids = $submission->getUserIds();
106 $log->debug(
"Feedback id: " . $feedback_id);
109 foreach ($noti_rec_ids as $user_id) {
110 $member_status = $ass->getMemberStatus($user_id);
111 $member_status->setFeedback(
true);
112 $member_status->update();
115 $notification->sendFeedbackNotification(
131 if ($this->type->usesTeams()) {
132 $team_id = $this->domain->team()->getTeamForMember($this->ass_id, $participant_id);
133 if (is_null($team_id)) {
134 throw new \ilExerciseException(
"Team for user " . $participant_id .
" in assignment " . $this->ass_id .
" not found.");
136 return "t" . $team_id;
138 return (
string) $participant_id;
146 return $this->repo->count($this->ass_id, $participant_id);
151 $storage = new \ilFSStorageExercise($exc_id, $this->ass_id);
160 $title = $this->domain->lng()->txt(
'exc_fb_files');
161 if ($this->type->usesTeams()) {
163 return $title .
": " . $name[
"lastname"] .
", " . $name[
"firstname"];
166 return $title .
": " . $name[
"lastname"] .
", " . $name[
"firstname"];
172 return $this->repo->getIdStringForAssIdAndUserId($this->ass_id, $participant_id);
177 $this->repo->createCollection($this->ass_id, $participant_id);
182 $this->repo->deleteCollection(
189 public function getFiles(
int $participant_id): array
192 if ($this->repo->hasCollection($this->ass_id, $participant_id)) {
195 }, iterator_to_array($this->repo->getCollectionResourcesInfo($this->ass_id, $participant_id)));
198 $storage = new \ilFSStorageExercise($exc_id, $this->ass_id);
204 public function deliver(
int $participant_id,
string $file): void
206 $assignment = $this->domain->assignment()->getAssignment($this->ass_id);
207 if ($assignment->notStartedYet()) {
211 if ($this->repo->hasCollection($this->ass_id, $participant_id)) {
213 $this->repo->deliverFile($this->ass_id, $participant_id, $file);
217 $storage = new \ilFSStorageExercise($exc_id, $this->ass_id);
220 foreach ($files as $fb_file) {
221 if ($fb_file === $file) {
getLegacyFeedbackId(int $participant_id)
sendNotification(string $rcid, string $rid)
ILIAS FileUpload FileUpload $upload
getFiles(int $participant_id)
getFeedbackTitle(int $participant_id)
static _getAllReferences(int $id)
get all reference ids for object ID
static lookupType(int $a_id)
static _lookupName(int $a_user_id)
lookup user name
count(int $participant_id)
static deliverFileLegacy(string $a_file, ?string $a_filename=null, ?string $a_mime=null, ?bool $isInline=false, ?bool $removeAfterDelivery=false, ?bool $a_exit_after=true)
__construct(int $ass_id, InternalRepoService $repo, InternalDomainService $domain, \ilExcTutorFeedbackFileStakeholder $stakeholder, \ilExcTutorTeamFeedbackFileStakeholder $team_stakeholder, TutorFeedbackFileObserver $file_observer)
deleteCollection(int $participant_id)
TutorFeedbackFileObserver $file_observer
ResourceStakeholder $stakeholder
InternalDomainService $domain
hasCollection(int $participant_id)
deliver(int $participant_id, string $file)
Interface ResourceStakeholder.
TutorFeedbackFileRepositoryInterface $repo
static lookupExerciseId(int $a_ass_id)
createCollection(int $participant_id)
ilExAssignmentTypeInterface $type
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getCollectionIdString(int $participant_id)