Fixing group member subscriptions.

1.9.x
Julio Montoya 12 years ago
parent 0503684637
commit 2cd592d727
  1. 8
      main/group/member_settings.php
  2. 1
      main/group/tutor_settings.php
  3. 16
      main/inc/lib/groupmanager.lib.php

@ -117,13 +117,9 @@ $form->addElement('hidden', 'action');
$form->addElement('hidden', 'max_student', $current_group['max_student']); $form->addElement('hidden', 'max_student', $current_group['max_student']);
$complete_user_list = GroupManager::fill_groups_list($current_group['id']); $complete_user_list = GroupManager::fill_groups_list($current_group['id']);
usort($complete_user_list, 'sort_users'); usort($complete_user_list, 'sort_users');
$possible_users = array();
foreach ($complete_user_list as $index => $user) {
$possible_users[$user['user_id']] = api_get_person_name($user['firstname'], $user['lastname']).' ('.$user['username'].')';
}
// Group members // Group members
$group_member_list = GroupManager :: get_subscribed_users($current_group['id']); $group_member_list = GroupManager::get_subscribed_users($current_group['id']);
$selected_users = array (); $selected_users = array ();
foreach ($group_member_list as $index => $user) { foreach ($group_member_list as $index => $user) {
@ -133,9 +129,7 @@ foreach ($group_member_list as $index => $user) {
// possible : number_groups_left > 0 and is group member // possible : number_groups_left > 0 and is group member
$possible_users = array(); $possible_users = array();
foreach ($complete_user_list as $index => $user) { foreach ($complete_user_list as $index => $user) {
if ($user['number_groups_left'] > 0 || in_array($user['user_id'], $selected_users)) {
$possible_users[$user['user_id']] = api_get_person_name($user['firstname'], $user['lastname']).' ('.$user['username'].')'; $possible_users[$user['user_id']] = api_get_person_name($user['firstname'], $user['lastname']).' ('.$user['username'].')';
}
} }
$group_members_element = $form->addElement('advmultiselect', 'group_members', get_lang('GroupMembers'), $possible_users, 'style="width: 280px;"'); $group_members_element = $form->addElement('advmultiselect', 'group_members', get_lang('GroupMembers'), $possible_users, 'style="width: 280px;"');

@ -104,7 +104,6 @@ $form->addElement('hidden', 'action');
// Group tutors // Group tutors
$group_tutor_list = GroupManager :: get_subscribed_tutors($current_group['id']); $group_tutor_list = GroupManager :: get_subscribed_tutors($current_group['id']);
$selected_users = array();
$selected_tutors = array(); $selected_tutors = array();
foreach ($group_tutor_list as $index => $user) { foreach ($group_tutor_list as $index => $user) {
$selected_tutors[] = $user['user_id']; $selected_tutors[] = $user['user_id'];

@ -1347,19 +1347,21 @@ class GroupManager
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
$sql = "SELECT ug.id, u.user_id, u.lastname, u.firstname, u.email, u.username $sql = "SELECT ug.id, u.user_id, u.lastname, u.firstname, u.email, u.username
FROM $table_user u INNER JOIN $table_group_user ug ON (ug.user_id = u.user_id) FROM $table_user u INNER JOIN $table_group_user ug
ON (ug.user_id = u.user_id)
WHERE ug.c_id = $course_id AND WHERE ug.c_id = $course_id AND
ug.group_id = $group_id ug.group_id = $group_id
$order_clause"; $order_clause";
$db_result = Database::query($sql); $db_result = Database::query($sql);
$users = array(); $users = array();
while ($user = Database::fetch_object($db_result)) { while ($user = Database::fetch_object($db_result)) {
$member['user_id'] = $user->user_id; $users[$user->user_id] = array(
$member['firstname'] = $user->firstname; 'user_id' => $user->user_id,
$member['lastname'] = $user->lastname; 'firstname' => $user->firstname,
$member['email'] = $user->email; 'lastname' => $user->lastname,
$member['username'] = $user->username; 'email' => $user->email,
$users[$member['user_id']] = $member; 'username' => $user->username
);
} }
return $users; return $users;
} }

Loading…
Cancel
Save