Browse Source

Merge branch '1.11.x' of github.com:chamilo/chamilo-lms into 1.11.x

jmontoyaa 8 years ago
parent
commit
dff98bb8b3
2 changed files with 26 additions and 15 deletions
  1. 2 3
      main/mySpace/myStudents.php
  2. 24 12
      main/work/work.lib.php

+ 2 - 3
main/mySpace/myStudents.php

@@ -1287,8 +1287,7 @@ if (!empty($student_id)) {
         }
 
         require_once '../work/work.lib.php';
-
-        $userworks = getWorkPerUser($student_id);
+        $userworks = getWorkPerUser($student_id, $courseInfo['real_id'], $sessionId);
         echo '
             <div class="table-responsive">
                 <table class="table table-striped table-hover">
@@ -1315,7 +1314,7 @@ if (!empty($student_id)) {
                     $qualification = !empty($results['qualification']) ? $results['qualification'] : '-';
                     echo '<td class="text-center">' . $qualification. '</td>';
                     echo '<td class="text-center">' . $results['formatted_date']. '</td>';
-                    $assignment = get_work_assignment_by_id($work->id);
+                    $assignment = get_work_assignment_by_id($work->id, $courseInfo['real_id']);
                     echo '<td class="text-center">' . api_convert_and_format_date($assignment['expires_on']) . '</td>';
 
                     $fieldValue = new ExtraFieldValue('work');

+ 24 - 12
main/work/work.lib.php

@@ -267,15 +267,17 @@ function get_work_assignment_by_id($id, $courseId = null)
  * @param int $id
  * @param array $my_folder_data
  * @param string $add_in_where_query
+ * @param int $course_id
+ * @param int $session_id
  *
  * @return array
  */
-function getWorkList($id, $my_folder_data, $add_in_where_query = null)
+function getWorkList($id, $my_folder_data, $add_in_where_query = null, $course_id = 0, $session_id = 0)
 {
     $work_table = Database::get_course_table(TABLE_STUDENT_PUBLICATION);
 
-    $course_id = api_get_course_int_id();
-    $session_id = api_get_session_id();
+    $course_id = $course_id ? $course_id : api_get_course_int_id();
+    $session_id = $session_id ? $session_id : api_get_session_id();
     $condition_session = api_get_session_condition($session_id);
     $group_id = api_get_group_id();
 
@@ -358,11 +360,13 @@ function getWorkList($id, $my_folder_data, $add_in_where_query = null)
 
 /**
  * @param int $userId
+ * @param int $courseId
+ * @param int $sessionId
  * @return array
  */
-function getWorkPerUser($userId)
+function getWorkPerUser($userId, $courseId = 0, $sessionId = 0)
 {
-    $works = getWorkList(null, null, null);
+    $works = getWorkList(null, null, null, $courseId, $sessionId);
     $result = array();
     if (!empty($works)) {
         foreach ($works as $workData) {
@@ -375,7 +379,10 @@ function getWorkPerUser($userId)
                 null,
                 $workId,
                 null,
-                $userId
+                $userId,
+                false,
+                $courseId,
+                $sessionId
             );
         }
     }
@@ -1835,6 +1842,8 @@ function get_work_user_list_from_documents(
  * @param array $where_condition
  * @param int $studentId
  * @param bool $getCount
+ * @param int $courseId
+ * @param int $sessionId
  * @return array
  */
 function get_work_user_list(
@@ -1845,15 +1854,18 @@ function get_work_user_list(
     $work_id,
     $where_condition = null,
     $studentId = null,
-    $getCount = false
+    $getCount = false,
+    $courseId = 0,
+    $sessionId = 0
 ) {
     $work_table = Database::get_course_table(TABLE_STUDENT_PUBLICATION);
     $user_table = Database::get_main_table(TABLE_MAIN_USER);
 
-    $session_id = api_get_session_id();
+    $session_id = $sessionId ? $sessionId : api_get_session_id();
     $group_id = api_get_group_id();
     $course_info = api_get_course_info();
-    $course_id = $course_info['real_id'];
+    $course_info = empty($course_info) ? api_get_course_info_by_id($courseId) : $course_info;
+    $course_id = isset($course_info['real_id']) ? $course_info['real_id'] : $courseId;
 
     $work_id = intval($work_id);
     $column = !empty($column) ? Database::escape_string($column) : 'sent_date';
@@ -1864,10 +1876,10 @@ function get_work_user_list(
         $direction = 'desc';
     }
 
-    $work_data = get_work_data_by_id($work_id);
+    $work_data = get_work_data_by_id($work_id, $courseId, $sessionId);
     $is_allowed_to_edit = api_is_allowed_to_edit() || api_is_coach();
     $condition_session  = api_get_session_condition($session_id, true, false, 'work.session_id');
-    $locked = api_resource_is_locked_by_gradebook($work_id, LINK_STUDENTPUBLICATION);
+    $locked = api_resource_is_locked_by_gradebook($work_id, LINK_STUDENTPUBLICATION, $course_info['code']);
 
     $isDrhOfCourse = CourseManager::isUserSubscribedInCourseAsDrh(
         api_get_user_id(),
@@ -1927,7 +1939,7 @@ function get_work_user_list(
         }
 
         $user_condition = "INNER JOIN $user_table u  ON (work.user_id = u.user_id) ";
-        $work_assignment = get_work_assignment_by_id($work_id);
+        $work_assignment = get_work_assignment_by_id($work_id, $courseId);
 
         if (!empty($studentId)) {
             $where_condition.= " AND u.user_id = ".intval($studentId);