From 632bfeb5a3d8ae6d7da91a7e368feaed253e7acf Mon Sep 17 00:00:00 2001 From: Angel Fernando Quiroz Campos Date: Tue, 30 May 2017 17:37:25 -0500 Subject: [PATCH] Fix subscribe users to learning path - refs BT#12833 --- main/lp/lp_subscribe_users.php | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/main/lp/lp_subscribe_users.php b/main/lp/lp_subscribe_users.php index 11841055b5..00201839a6 100644 --- a/main/lp/lp_subscribe_users.php +++ b/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();