Move function get avoid courses in sessionmanager #2087

pull/2487/head
Angel Fernando Quiroz Campos 8 years ago
parent bd0848db36
commit 0319454987
  1. 26
      main/inc/lib/sessionmanager.lib.php
  2. 32
      main/session/session_course_user.php

@ -8,6 +8,7 @@ use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\SequenceResource; use Chamilo\CoreBundle\Entity\SequenceResource;
use Chamilo\CoreBundle\Entity\SessionRelUser; use Chamilo\CoreBundle\Entity\SessionRelUser;
use Chamilo\CoreBundle\Entity\Course; use Chamilo\CoreBundle\Entity\Course;
use Chamilo\UserBundle\Entity\User;
/** /**
* Class SessionManager * Class SessionManager
@ -8659,4 +8660,29 @@ class SessionManager
]) ])
->getSingleScalarResult(); ->getSingleScalarResult();
} }
/**
* Get course IDs where user in not subscribed in session
* @param User $user
* @param Session $session
* @return array
*/
public static function getAvoidedCoursesInSession(User $user, Session $session)
{
$courseIds = [];
/** @var SessionRelCourse $sessionCourse */
foreach ($session->getCourses() as $sessionCourse) {
/** @var Course $course */
$course = $sessionCourse->getCourse();
if ($session->getUserInCourse($user, $course)->count()) {
continue;
}
$courseIds[] = $course->getId();
}
return $courseIds;
}
} }

@ -4,10 +4,8 @@
* @package chamilo.admin * @package chamilo.admin
*/ */
use Chamilo\CoreBundle\Entity\Session, use Chamilo\CoreBundle\Entity\Session;
Chamilo\CoreBundle\Entity\Course, use Chamilo\CoreBundle\Entity\Course;
Chamilo\UserBundle\Entity\User,
Chamilo\CoreBundle\Entity\SessionRelCourseRelUser;
// resetting the course id // resetting the course id
$cidReset = true; $cidReset = true;
@ -38,7 +36,7 @@ if (!$session->getCourses()->count()) {
exit; exit;
} }
$avoidedCourseIds = getAvoidedCourses($user, $session); $avoidedCourseIds = SessionManager::getAvoidedCoursesInSession($user, $session);
$form = new FormValidator( $form = new FormValidator(
'session_course_user', 'session_course_user',
@ -141,27 +139,3 @@ function getSessionCourseList(Session $session)
return $return; return $return;
}; };
/**
* @param User $user
* @param Session $session
* @return array
*/
function getAvoidedCourses(User $user, Session $session)
{
$return = [];
/** @var SessionRelCourseRelUser $sessionCourse */
foreach ($session->getCourses() as $sessionCourse) {
/** @var Course $course */
$course = $sessionCourse->getCourse();
if ($session->getUserInCourse($user, $course)->count()) {
continue;
}
$return[] = $course->getId();
}
return $return;
}

Loading…
Cancel
Save