Surveys: Multiplicate only with group users see BT#17921

pull/3591/head
Julio Montoya 5 years ago
parent 3d3de794c1
commit b645f0478b
  1. 55
      main/survey/survey.lib.php

@ -2413,39 +2413,46 @@ class SurveyManager
return false; 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'); $extraFieldValue = new ExtraFieldValue('survey');
$groupData = $extraFieldValue->get_values_by_handler_and_field_variable($surveyId, 'group_id'); $groupData = $extraFieldValue->get_values_by_handler_and_field_variable($surveyId, 'group_id');
$groupId = null;
if ($groupData && !empty($groupData['value'])) { 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)) { if (!empty($groupInfo)) {
$users = GroupManager::getStudents($groupInfo['iid'], true); $users = GroupManager::getStudents($groupInfo['iid'], true);
if (!empty($users)) { if (!empty($users)) {
$users = array_column($users, 'id'); $users = array_column($users, 'id');
$classToParse = [ self::parseMultiplicateUserList(
[ [
'name' => $groupInfo['name'], [
'users' => $users, 'name' => $groupInfo['name'],
'users' => $users,
],
], ],
]; $questions,
self::parseMultiplicateUserList($classToParse, $questions, $courseId, $surveyData); $courseId,
$surveyData
);
} }
} }
} }

Loading…
Cancel
Save