Selaa lähdekoodia

Fix subscribe users to learning path - refs BT#12833

Angel Fernando Quiroz Campos 7 vuotta sitten
vanhempi
commit
632bfeb5a3
1 muutettua tiedostoa jossa 22 lisäystä ja 4 poistoa
  1. 22 4
      main/lp/lp_subscribe_users.php

+ 22 - 4
main/lp/lp_subscribe_users.php

@@ -3,6 +3,9 @@
 
 use Chamilo\CourseBundle\Entity\CItemProperty;
 use Chamilo\UserBundle\Entity\User;
+use Chamilo\CoreBundle\Entity\Repository\CourseRepository;
+use Chamilo\CoreBundle\Entity\Session;
+use Chamilo\CoreBundle\Entity\SessionRelCourseRelUser;
 
 require_once __DIR__.'/../inc/global.inc.php';
 
@@ -35,23 +38,37 @@ $interbreadcrumb[] = array(
 
 $courseId = api_get_course_int_id();
 $courseCode = api_get_course_id();
+$sessionId = api_get_session_id();
 
 $url = api_get_self().'?'.api_get_cidreq().'&lp_id='.$lpId;
 $lp = new \learnpath($courseCode, $lpId, api_get_user_id());
 $em = Database::getManager();
+/** @var CourseRepository $courseRepo */
+$courseRepo = $em->getRepository('ChamiloCoreBundle:Course');
 
+/** @var Session $session */
 $session = null;
 if (!empty($sessionId)) {
     $session = $em->getRepository('ChamiloCoreBundle:Session')->find($sessionId);
 }
 
 // Find course.
-$course = $em->getRepository('ChamiloCoreBundle:Course')->find($courseId);
+$course = $courseRepo->find($courseId);
+$subscribedUsers = [];
 
 // Getting subscribe users to the course.
-$subscribedUsers = $em->getRepository('ChamiloCoreBundle:Course')->getSubscribedStudents($course);
-$subscribedUsers = $subscribedUsers->getQuery();
-$subscribedUsers = $subscribedUsers->execute();
+if (!$session) {
+    $subscribedUsers = $courseRepo
+        ->getSubscribedStudents($course)
+        ->getQuery()
+        ->getResult();
+} else {
+    $session
+        ->getUserCourseSubscriptionsByStatus($course, Session::STUDENT)
+        ->forAll(function ($i, SessionRelCourseRelUser $sessionCourseUser) use (&$subscribedUsers) {
+            $subscribedUsers[$i] = $sessionCourseUser->getUser();
+        });
+}
 
 // Getting all users in a nice format.
 $choices = array();
@@ -67,6 +84,7 @@ $subscribedUsersInLp = $em->getRepository('ChamiloCourseBundle:CItemProperty')->
     $course,
     $session
 );
+
 $selectedChoices = array();
 foreach ($subscribedUsersInLp as $itemProperty) {
     $selectedChoices[] = $itemProperty->getToUser()->getId();