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\SessionRelUser;
use Chamilo\CoreBundle\Entity\Course;
use Chamilo\UserBundle\Entity\User;
/**
* Class SessionManager
@ -8659,4 +8660,29 @@ class SessionManager
])
->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
*/
use Chamilo\CoreBundle\Entity\Session,
Chamilo\CoreBundle\Entity\Course,
Chamilo\UserBundle\Entity\User,
Chamilo\CoreBundle\Entity\SessionRelCourseRelUser;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\Course;
// resetting the course id
$cidReset = true;
@ -38,7 +36,7 @@ if (!$session->getCourses()->count()) {
exit;
}
$avoidedCourseIds = getAvoidedCourses($user, $session);
$avoidedCourseIds = SessionManager::getAvoidedCoursesInSession($user, $session);
$form = new FormValidator(
'session_course_user',
@ -141,27 +139,3 @@ function getSessionCourseList(Session $session)
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