Example #1
0
 /**
  * @param Course $course
  * @return Course
  */
 public function addToolsInCourse(Course $course)
 {
     $tools = $this->getTools();
     /** @var BaseTool $tool */
     foreach ($tools as $tool) {
         $toolEntity = new CTool();
         $toolEntity->setCId($course->getId())->setImage($tool->getImage())->setName($tool->getName())->setVisibility(1)->setLink($tool->getLink())->setTarget($tool->getTarget())->setCategory($tool->getCategory());
         $course->addTools($toolEntity);
     }
     return $course;
 }
 /**
  * Get the last acquired skill by a user on course and/or session
  * @param User $user The user
  * @param Course $course The course
  * @param Session $session The session
  * @return Skill
  */
 public function getLastByUser(User $user, Course $course = null, Session $session = null)
 {
     $qb = $this->createQueryBuilder('s');
     $qb->innerJoin('ChamiloCoreBundle:SkillRelUser', 'su', Join::WITH, $qb->expr()->eq('s', 'su.skill'))->where($qb->expr()->eq('su.user', $user->getId()));
     if ($course) {
         $qb->andWhere($qb->expr()->eq('su.course', $course->getId()));
     }
     if ($session) {
         $qb->andWhere($qb->expr()->eq('su.session', $session->getId()));
     }
     $qb->setMaxResults(1)->orderBy('su.id', 'DESC');
     return $qb->getQuery()->getOneOrNullResult();
 }
Example #3
0
 /**
  * Get all users that are registered in the course. No matter the status
  *
  * @param Course $course
  *
  * @return \Doctrine\ORM\QueryBuilder
  */
 public function getSubscribedUsers(Course $course)
 {
     $queryBuilder = $this->createQueryBuilder('a');
     // Selecting user info.
     $queryBuilder->select('DISTINCT u');
     // Loading EntityUser.
     $queryBuilder->from('Chamilo\\UserBundle\\Entity\\User', 'u');
     // Selecting courses for users.
     $queryBuilder->innerJoin('u.courses', 'c');
     //@todo check app settings
     $queryBuilder->add('orderBy', 'u.lastname ASC');
     $wherePart = $queryBuilder->expr()->andx();
     // Get only users subscribed to this course
     $wherePart->add($queryBuilder->expr()->eq('c.cId', $course->getId()));
     // $wherePart->add($queryBuilder->expr()->eq('c.status', $status));
     $queryBuilder->where($wherePart);
     //$q = $queryBuilder->getQuery();
     //return $q->execute();
     return $queryBuilder;
 }
 /**
  * Get all users that are registered in the course. No matter the status
  *
  * @param Course $course
  *
  * @return \Doctrine\ORM\QueryBuilder
  */
 public function getSubscribedUsers(Course $course)
 {
     // Course builder
     $queryBuilder = $this->createQueryBuilder('c');
     // Selecting user info.
     $queryBuilder->select('DISTINCT user');
     // Selecting courses for users.
     $queryBuilder->innerJoin('c.users', 'subscriptions');
     $queryBuilder->innerJoin('ChamiloUserBundle:User', 'user', Join::WITH, 'subscriptions.user = user.id');
     if (api_is_western_name_order()) {
         $queryBuilder->add('orderBy', 'user.firstname ASC');
     } else {
         $queryBuilder->add('orderBy', 'user.lastname ASC');
     }
     $wherePart = $queryBuilder->expr()->andx();
     // Get only users subscribed to this course
     $wherePart->add($queryBuilder->expr()->eq('c.id', $course->getId()));
     // $wherePart->add($queryBuilder->expr()->eq('c.status', $status));
     $queryBuilder->where($wherePart);
     //var_dump($queryBuilder->getQuery()->getSQL());
     //$q = $queryBuilder->getQuery();
     //return $q->execute();
     return $queryBuilder;
 }
 /**
  * Get the coaches for a course within a session
  * @param Session $session The session
  * @param Course $course The course
  * @return \Doctrine\ORM\QueryBuilder
  */
 public function getCoachesForSessionCourse(Session $session, Course $course)
 {
     $queryBuilder = $this->createQueryBuilder('u');
     $queryBuilder->select('u')->innerJoin('ChamiloCoreBundle:SessionRelCourseRelUser', 'scu', Join::WITH, 'scu.user = u')->where($queryBuilder->expr()->andX($queryBuilder->expr()->eq('scu.session', $session->getId()), $queryBuilder->expr()->eq('scu.course', $course->getId()), $queryBuilder->expr()->eq('scu.status', SessionRelCourseRelUser::STATUS_COURSE_COACH)));
     return $queryBuilder->getQuery()->getResult();
 }
Example #6
0
 /**
  * @param Course $course
  * @return $this
  */
 public function setCurrentCourse(Course $course)
 {
     // If the session is registered in the course session list.
     if ($this->getCourses()->contains($course->getId())) {
         $this->currentCourse = $course;
     }
     return $this;
 }
 /**
  * Convert the course info to array with necessary course data for save item
  * @param \Chamilo\CoreBundle\Entity\Course $course
  * @param array $defaultCurrency Optional. Currency data
  * @return array
  */
 public function getCourseForConfiguration(\Chamilo\CoreBundle\Entity\Course $course, $defaultCurrency = null)
 {
     $courseItem = ['item_id' => null, 'course_id' => $course->getId(), 'course_visual_code' => $course->getVisualCode(), 'course_code' => $course->getCode(), 'course_title' => $course->getTitle(), 'course_visibility' => $course->getVisibility(), 'visible' => false, 'currency' => empty($defaultCurrency) ? null : $defaultCurrency['iso_code'], 'price' => 0.0];
     $item = $this->getItemByProduct($course->getId(), self::PRODUCT_TYPE_COURSE);
     if ($item !== false) {
         $courseItem['item_id'] = $item['id'];
         $courseItem['visible'] = true;
         $courseItem['currency'] = $item['iso_code'];
         $courseItem['price'] = $item['price'];
     }
     return $courseItem;
 }
 /**
  * Get the course template for a user
  * @param Course $course
  * @param User $user
  * @return ArrayCollection
  */
 public function getCourseTemplates(Course $course, User $user)
 {
     $qb = $this->createQueryBuilder('t');
     $qb->select('t', 'd.path')->innerJoin('ChamiloCoreBundle:Course', 'c', Join::WITH, $qb->expr()->eq('t.courseCode', 'c.code'))->innerJoin('ChamiloCourseBundle:CDocument', 'd', Join::WITH, $qb->expr()->eq('c.id', 'd.cId'))->where($qb->expr()->eq('d.iid', 't.refDoc'))->andWhere($qb->expr()->eq('c.id', $course->getId()))->andWhere($qb->expr()->eq('t.userId', $user->getId()));
     return $qb->getQuery()->getResult();
 }