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;
138 if ($req_appr_id === 0) {
145 if (in_array($req_appr_id,
$valid)) {
169 && !$this->isMultiParticipantsView()) {
171 if ($rater[
"finished"]) {
184 $valid = array_map(
static function ($i):
string {
185 return (
string) $i[
"user_id"];
187 if (in_array($req_rater_id,
$valid,
true)) {
188 return $req_rater_id;
198 $this->eval_repo->setAnonEvaluationAccess(
$ref_id);
203 return $this->eval_repo->getAnonEvaluationAccess();
208 $this->eval_repo->clearAnonEvaluationAccess();
218 $finished_ids =
null;
229 $this->access->canEditSettings()) {
230 if ($appr_id === 0) {
236 $finished_ids = $this->survey->getFinishedIdsForAppraiseeId($appr_id);
237 if (!count($finished_ids)) {
252 return $finished_ids;
260 $participants = $this->
access->canReadResultOfParticipants($finished_ids);
261 foreach ($this->survey->getSurveyQuestions() as $qdata) {
263 $q_res = $q_eval->getResults();
266 if (is_array($q_res) && !is_object($q_res[0][1])) {
270 $question = is_array($q_res)
271 ? $q_res[0][1]->getQuestion()
272 : $q_res->getQuestion();
274 foreach ($participants as $user) {
277 $parsed_results = $q_eval->parseUserSpecificResults($q_res,
$user_id);
280 $wt = $this->survey->getWorkingtimeForParticipant(
$user_id);
282 $finished = $user[
"finished"]
283 ? $user[
"finished_tstamp"]
287 "username" => $user[
"sortname"],
288 "question" => $question->getTitle(),
289 "results" => $parsed_results,
290 "workingtime" => $wt,
291 "finished" => $finished,
292 "subitems" => array()
297 "question" => $question->getTitle(),
298 "results" => $parsed_results,
299 "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...