When using "post_group_id" use the group.iid

pull/2487/head
jmontoyaa 9 years ago
parent f88440d41c
commit dada35ea04
  1. 10
      main/inc/lib/groupmanager.lib.php
  2. 89
      main/work/work.lib.php

@ -1021,7 +1021,9 @@ class GroupManager
FROM $group_user_table g
INNER JOIN $user_table u
ON (u.user_id = g.user_id)
WHERE c_id = $courseId AND g.group_id = $group_id";
WHERE
c_id = $courseId AND
g.group_id = $group_id";
if (!empty($column) && !empty($direction)) {
$column = Database::escape_string($column, null, false);
@ -1638,11 +1640,11 @@ class GroupManager
*/
public static function unsubscribe_all_users($groupId)
{
$courseId = api_get_course_int_id();
$course_id = api_get_course_int_id();
//api_is_element_in_the_session(TOOL_GROUP, $group_ids[$i])
$groupId = (int) $groupId;
if (empty($courseId) || empty($groupId)) {
if (empty($course_id) || empty($groupId)) {
return false;
}
@ -1650,7 +1652,7 @@ class GroupManager
$sql = "DELETE FROM $table_group_user
WHERE
group_id = $groupId AND
c_id = $courseId";
c_id = $course_id";
$result = Database::query($sql);
return $result;

@ -271,6 +271,12 @@ function getWorkList($id, $my_folder_data, $add_in_where_query = null)
$session_id = api_get_session_id();
$condition_session = api_get_session_condition($session_id);
$group_id = api_get_group_id();
$groupInfo = GroupManager::get_group_properties($group_id);
$groupIid = 0;
if ($groupInfo) {
$groupIid = $groupInfo['iid'];
}
$is_allowed_to_edit = api_is_allowed_to_edit(null, true);
$linkInfo = GradebookUtils::isResourceInCourseGradebook(
@ -305,17 +311,17 @@ function getWorkList($id, $my_folder_data, $add_in_where_query = null)
$condition_session AND
$active_condition AND
(parent_id = 0)
$contains_file_query AND
post_group_id = '".$group_id."'
$contains_file_query AND
post_group_id = $groupIid
ORDER BY sent_date DESC";
} else {
if (!empty($group_id)) {
// set to select only messages posted by the user's group
$group_query = " WHERE c_id = $course_id AND post_group_id = '".$group_id."' ";
$subdirs_query = "AND parent_id = 0";
$group_query = " WHERE c_id = $course_id AND post_group_id = '".$groupIid."' ";
$subdirs_query = " AND parent_id = 0";
} else {
$group_query = " WHERE c_id = $course_id AND post_group_id = '0' ";
$subdirs_query = "AND parent_id = 0";
$group_query = " WHERE c_id = $course_id AND (post_group_id = '0' OR post_group_id is NULL) ";
$subdirs_query = " AND parent_id = 0";
}
//@todo how we can active or not an assignment?
$active_condition = ' AND active IN (1, 0)';
@ -370,7 +376,7 @@ function getWorkPerUser($userId)
/**
* @param int $workId
* @param int $groupId
* @param int $groupId iid
* @param int $course_id
* @param int $sessionId
* @return mixed
@ -388,12 +394,12 @@ function getUniqueStudentAttemptsTotal($workId, $groupId, $course_id, $sessionId
$sql = "SELECT count(DISTINCT u.user_id)
FROM $work_table w
INNER JOIN $user_table u
ON w.user_id = u.user_id
ON w.user_id = u.user_id
WHERE
w.c_id = $course_id
$sessionCondition AND
w.parent_id = ".$workId." AND
w.post_group_id = ".$groupId." AND
w.parent_id = $workId AND
w.post_group_id = $groupId AND
w.active IN (0, 1)
";
@ -437,6 +443,12 @@ function getUniqueStudentAttempts(
$sessionId = intval($sessionId);
$groupId = intval($groupId);
$groupInfo = GroupManager::get_group_properties($groupId);
$groupIid = 0;
if ($groupInfo) {
$groupIid = $groupInfo['iid'];
}
$studentCondition = null;
if (!empty($onlyUserList)) {
@ -454,13 +466,13 @@ function getUniqueStudentAttempts(
SELECT count(*), w.parent_id
FROM $work_table w
INNER JOIN $user_table u
ON w.user_id = u.user_id
ON w.user_id = u.user_id
WHERE
w.filetype = 'file' AND
w.c_id = $course_id
$sessionCondition AND
$workCondition
w.post_group_id = ".$groupId." AND
w.post_group_id = $groupIid AND
w.active IN (0, 1) $studentCondition
";
if (!empty($userId)) {
@ -1174,9 +1186,9 @@ function get_work_id($path)
*/
function get_count_work($work_id, $onlyMeUserId = null, $notMeUserId = null)
{
$work_table = Database::get_course_table(TABLE_STUDENT_PUBLICATION);
$iprop_table = Database::get_course_table(TABLE_ITEM_PROPERTY);
$user_table = Database::get_main_table(TABLE_MAIN_USER);
$work_table = Database::get_course_table(TABLE_STUDENT_PUBLICATION);
$iprop_table = Database::get_course_table(TABLE_ITEM_PROPERTY);
$user_table = Database::get_main_table(TABLE_MAIN_USER);
$is_allowed_to_edit = api_is_allowed_to_edit(null, true);
$session_id = api_get_session_id();
@ -1187,11 +1199,17 @@ function get_count_work($work_id, $onlyMeUserId = null, $notMeUserId = null)
$course_id = $course_info['real_id'];
$work_id = intval($work_id);
$groupInfo = GroupManager::get_group_properties($group_id);
$groupIid = 0;
if ($groupInfo) {
$groupIid = $groupInfo['iid'];
}
if (!empty($group_id)) {
// set to select only messages posted by the user's group
$extra_conditions = " work.post_group_id = '".intval($group_id)."' ";
$extra_conditions = " work.post_group_id = '".intval($groupIid)."' ";
} else {
$extra_conditions = " work.post_group_id = '0' ";
$extra_conditions = " (work.post_group_id = '0' or work.post_group_id IS NULL) ";
}
if ($is_allowed_to_edit) {
@ -1227,7 +1245,8 @@ function get_count_work($work_id, $onlyMeUserId = null, $notMeUserId = null)
prop.visibility <> 2 AND
work.c_id = $course_id
)
INNER JOIN $user_table u ON (work.user_id = u.user_id)
INNER JOIN $user_table u
ON (work.user_id = u.user_id)
WHERE $extra_conditions $where_condition $condition_session";
$result = Database::query($sql);
@ -1264,6 +1283,13 @@ function getWorkListStudent(
$session_id = api_get_session_id();
$condition_session = api_get_session_condition($session_id);
$group_id = api_get_group_id();
$groupInfo = GroupManager::get_group_properties($group_id);
$groupIid = 0;
if ($groupInfo) {
$groupIid = $groupInfo['iid'];
}
$userId = api_get_user_id();
$isDrhOfCourse = CourseManager::isUserSubscribedInCourseAsDrh(
@ -1285,7 +1311,7 @@ function getWorkListStudent(
// Get list from database
if (!empty($group_id)) {
$group_query = " WHERE w.c_id = $course_id AND post_group_id = '".$group_id."' ";
$group_query = " WHERE w.c_id = $course_id AND post_group_id = '".$groupIid."' ";
$subdirs_query = "AND parent_id = 0";
} else {
$group_query = " WHERE w.c_id = $course_id AND (post_group_id = '0' or post_group_id is NULL) ";
@ -1476,7 +1502,7 @@ function getWorkListTeacher(
$countUniqueAttempts = getUniqueStudentAttemptsTotal(
$workId,
$group_id,
$groupIid,
$course_id,
$session_id
);
@ -1796,6 +1822,13 @@ function get_work_user_list(
$session_id = api_get_session_id();
$group_id = api_get_group_id();
$groupInfo = GroupManager::get_group_properties($group_id);
$groupIid = 0;
if ($groupInfo) {
$groupIid = $groupInfo['iid'];
}
$course_info = api_get_course_info();
$course_id = $course_info['real_id'];
@ -1820,7 +1853,7 @@ function get_work_user_list(
if (!empty($work_data)) {
if (!empty($group_id)) {
$extra_conditions = " work.post_group_id = '".intval($group_id)."' ";
$extra_conditions = " work.post_group_id = '".intval($groupIid)."' ";
// set to select only messages posted by the user's group
} else {
$extra_conditions = " (work.post_group_id = '0' OR work.post_group_id is NULL) ";
@ -1865,8 +1898,9 @@ function get_work_user_list(
}
$user_condition = "INNER JOIN $user_table u ON (work.user_id = u.user_id) ";
$work_condition = "$iprop_table prop INNER JOIN $work_table work
ON (prop.ref = work.id AND prop.c_id = $course_id AND work.c_id = $course_id ) ";
$work_condition = "$iprop_table prop
INNER JOIN $work_table work
ON (prop.ref = work.id AND prop.c_id = $course_id AND work.c_id = $course_id) ";
$work_assignment = get_work_assignment_by_id($work_id);
@ -4312,13 +4346,20 @@ function generateMoveForm($item_id, $path, $courseInfo, $groupId, $sessionId)
$session_id = intval($sessionId);
$groupId = intval($groupId);
$sessionCondition = empty($sessionId) ? " AND (session_id = 0 OR session_id IS NULL) " : " AND session_id='".$session_id."'";
$groupInfo = GroupManager::get_group_properties($group_id);
$groupIid = 0;
if ($groupInfo) {
$groupIid = $groupInfo['iid'];
}
$sql = "SELECT id, url, title
FROM $work_table
WHERE
c_id = $courseId AND
active IN (0, 1) AND
url LIKE '/%' AND
post_group_id = $groupId
post_group_id = $groupIid
$sessionCondition";
$res = Database::query($sql);
while ($folder = Database::fetch_array($res)) {

Loading…
Cancel
Save