19declare(strict_types=1);
38 protected \ILIAS\Survey\Access\AccessManager
$access;
54 $this->feature_config = $this->domain_service->modeFeatureConfig(
$survey->
getMode());
59 $this->eval_repo = $this->repo_service->evaluation();
74 case \ilObjSurvey::MODE_360:
75 return (
$access->canEditSettings() ||
78 case \ilObjSurvey::MODE_IND_FEEDB:
79 return (
$access->canEditSettings());
80 case \ilObjSurvey::MODE_SELF_EVAL:
81 return (
$access->canEditSettings() ||
106 if ($feature_config->usesAppraisees()) {
109 $appraisee_ids[] = (
int) $item[
"user_id"];
121 return $appraisee_ids;
139 if ($req_appr_id === 0) {
146 if (in_array($req_appr_id,
$valid)) {
170 && !$this->isMultiParticipantsView()) {
172 if ($rater[
"finished"]) {
185 $valid = array_map(
static function ($i):
string {
186 return (
string) $i[
"user_id"];
188 if (in_array($req_rater_id,
$valid,
true)) {
189 return $req_rater_id;
199 $this->eval_repo->setAnonEvaluationAccess(
$ref_id);
204 return $this->eval_repo->getAnonEvaluationAccess();
209 $this->eval_repo->clearAnonEvaluationAccess();
219 $finished_ids =
null;
231 $this->access->canEditSettings()) {
237 $finished_ids = $this->survey->getFinishedIdsForAppraiseeId($appr_id);
238 if (!count($finished_ids)) {
253 return $finished_ids;
261 $participants = $this->
access->canReadResultOfParticipants($finished_ids);
262 foreach ($this->survey->getSurveyQuestions() as $qdata) {
264 $q_res = $q_eval->getResults();
267 if (is_array($q_res) && !is_object($q_res[0][1])) {
271 $question = is_array($q_res)
272 ? $q_res[0][1]->getQuestion()
273 : $q_res->getQuestion();
275 foreach ($participants as $user) {
278 $parsed_results = $q_eval->parseUserSpecificResults($q_res,
$user_id);
281 $wt = $this->survey->getWorkingtimeForParticipant(
$user_id);
283 $finished = $user[
"finished"]
284 ? $user[
"finished_tstamp"]
288 "username" => $user[
"sortname"],
289 "question" => $question->getTitle(),
290 "results" => $parsed_results,
291 "workingtime" => $wt,
292 "finished" => $finished,
293 "subitems" => array()
298 "question" => $question->getTitle(),
299 "results" => $parsed_results,
300 "workingtime" =>
null,
getSelectableRaters()
Only the individual feedback mode allows to select raters and only, if the user cannot select apprais...
ILIAS Survey Mode FeatureConfig $feature_config
clearAnonEvaluationAccess()
string $requested_rater_id
__construct(InternalDomainService $domain_service, InternalRepoService $repo_service, \ilObjSurvey $survey, int $user_id, int $requested_appr_id, string $requested_rater_id)
EvaluationSessionRepo $eval_repo
getSelectableAppraisees()
Get all participants the current user may see results from, including itself.
getCurrentAppraisee()
1) We have a set of selectable appraisees.
ILIAS Survey Access AccessManager $access
InternalRepoService $repo_service
getCurrentRater(bool $fallback_to_first=false)
getAnonEvaluationAccess()
isMultiParticipantsView()
Can the current user switch between participants and see their results?
setAnonEvaluationAccess(int $ref_id)
InternalDomainService $domain_service
Stores access codes of anonymous session.
Survey internal data service.
static _instanciateQuestionEvaluation(int $question_id, ?array $a_finished_ids=null)
getSelfEvaluationResults()
const RESULTS_SELF_EVAL_ALL
getSurveyParticipants(?array $finished_ids=null, bool $force_non_anonymous=false, bool $include_invites=false)
getRatersData(int $a_appraisee_id)
static _lookupId(string|array $a_user_str)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...