Эх сурвалжийг харах

Merge branch '1.10.x' of ssh://github.com/chamilo/chamilo-lms into 1.10.x

Julio Montoya 9 жил өмнө
parent
commit
ffd6c42d2e

+ 18 - 0
main/gamification/my_progress.php

@@ -26,6 +26,24 @@ $userManager = UserManager::getManager();
 $entityManager = Database::getManager();
 
 $user = $userManager->findUserBy(['id' => $userId]);
+
+if (empty($sessionId)) {
+    $trackCourseAccessRepository = $entityManager->getRepository(
+        'ChamiloCoreBundle:TrackECourseAccess'
+    );
+
+    $lastCourseAccess = $trackCourseAccessRepository->getLastAccessByUser($user);
+
+    if (!empty($lastCourseAccess)) {
+        $urlWithSession = api_get_self() . '?' . http_build_query([
+            'session_id' => $lastCourseAccess->getSessionId()
+        ]);
+
+        header("Location: $urlWithSession");
+        exit;
+    }
+}
+
 $sessionCourseSubscriptions = $user->getSessionCourseSubscriptions();
 $currentSession = $entityManager->find('ChamiloCoreBundle:Session', $sessionId);
 

+ 42 - 0
src/Chamilo/CoreBundle/Entity/Repository/TrackECourseAccessRepository.php

@@ -0,0 +1,42 @@
+<?php
+/* For licensing terms, see /license.txt */
+
+namespace Chamilo\CoreBundle\Entity\Repository;
+
+use Doctrine\ORM\EntityRepository;
+use \Chamilo\UserBundle\Entity\User;
+
+/**
+ * TrackECourseAccessRepository
+ *
+ * @package Chamilo\CoreBundle\Entity\Repository
+ * @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com>
+ */
+class TrackECourseAccessRepository extends EntityRepository {
+
+    /**
+     * Get the last registered access by an user
+     * @param \Chamilo\UserBundle\Entity\User $user The user
+     * @return \ChamiloCoreBundle\TrackECourseAcess The access if exists.
+     *          Otherwise return null
+     */
+    public function getLastAccessByUser(User $user)
+    {
+        if (empty($user)) {
+            return null;
+        }
+
+        $lastAccess = $this->findBy(
+            ['userId' => $user->getId()],
+            ['courseAccessId' => 'DESC'],
+            1
+        );
+
+        if (!empty($lastAccess)) {
+            return $lastAccess[0];
+        }
+
+        return null;
+    }
+
+}

+ 1 - 1
src/Chamilo/CoreBundle/Entity/TrackECourseAccess.php

@@ -8,7 +8,7 @@ use Doctrine\ORM\Mapping as ORM;
  * TrackECourseAccess
  *
  * @ORM\Table(name="track_e_course_access", indexes={@ORM\Index(name="user_id", columns={"user_id"}), @ORM\Index(name="login_course_date", columns={"login_course_date"}), @ORM\Index(name="session_id", columns={"session_id"})})
- * @ORM\Entity
+ * @ORM\Entity(repositoryClass="Chamilo\CoreBundle\Entity\Repository\TrackECourseAccessRepository")
  */
 class TrackECourseAccess
 {