From b645f0478b2cb86d228aa1a8d55e4042dfbbee86 Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Tue, 27 Oct 2020 12:53:55 +0100 Subject: [PATCH] Surveys: Multiplicate only with group users see BT#17921 --- main/survey/survey.lib.php | 55 +++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/main/survey/survey.lib.php b/main/survey/survey.lib.php index 99a2d14b25..4c3924e131 100755 --- a/main/survey/survey.lib.php +++ b/main/survey/survey.lib.php @@ -2413,39 +2413,46 @@ class SurveyManager return false; } - $obj = new UserGroup(); - $options['where'] = [' usergroup.course_id = ? ' => $courseId]; - $classList = $obj->getUserGroupInCourse($options); - - $classToParse = []; - foreach ($classList as $class) { - $users = $obj->get_users_by_usergroup($class['id']); - if (empty($users)) { - continue; - } - $classToParse[] = [ - 'name' => $class['name'], - 'users' => $users, - ]; - } - - self::parseMultiplicateUserList($classToParse, $questions, $courseId, $surveyData); - $extraFieldValue = new ExtraFieldValue('survey'); $groupData = $extraFieldValue->get_values_by_handler_and_field_variable($surveyId, 'group_id'); + $groupId = null; if ($groupData && !empty($groupData['value'])) { - $groupInfo = GroupManager::get_group_properties($groupData['value']); + $groupId = (int) $groupData['value']; + } + + if (null === $groupId) { + $obj = new UserGroup(); + $options['where'] = [' usergroup.course_id = ? ' => $courseId]; + $classList = $obj->getUserGroupInCourse($options); + $classToParse = []; + foreach ($classList as $class) { + $users = $obj->get_users_by_usergroup($class['id']); + if (empty($users)) { + continue; + } + $classToParse[] = [ + 'name' => $class['name'], + 'users' => $users, + ]; + } + self::parseMultiplicateUserList($classToParse, $questions, $courseId, $surveyData); + } else { + $groupInfo = GroupManager::get_group_properties($groupId); if (!empty($groupInfo)) { $users = GroupManager::getStudents($groupInfo['iid'], true); if (!empty($users)) { $users = array_column($users, 'id'); - $classToParse = [ + self::parseMultiplicateUserList( [ - 'name' => $groupInfo['name'], - 'users' => $users, + [ + 'name' => $groupInfo['name'], + 'users' => $users, + ], ], - ]; - self::parseMultiplicateUserList($classToParse, $questions, $courseId, $surveyData); + $questions, + $courseId, + $surveyData + ); } } }