diff --git a/composer.json b/composer.json
index 4c5b64fde3..bada8a1ba7 100755
--- a/composer.json
+++ b/composer.json
@@ -142,10 +142,12 @@
             "Chamilo\\CoreBundle\\Composer\\ScriptHandler::deleteOldFilesFrom19x"
         ],
         "post-install-cmd": [
-            "Chamilo\\CoreBundle\\Composer\\ScriptHandler::dumpCssFiles"
+            "Chamilo\\CoreBundle\\Composer\\ScriptHandler::dumpCssFiles",
+            "Chamilo\\CoreBundle\\Composer\\ScriptHandler::generateDoctineProxies"
         ],
         "post-update-cmd": [
-            "Chamilo\\CoreBundle\\Composer\\ScriptHandler::dumpCssFiles"
+            "Chamilo\\CoreBundle\\Composer\\ScriptHandler::dumpCssFiles",
+            "Chamilo\\CoreBundle\\Composer\\ScriptHandler::generateDoctineProxies"
         ],
         "update-css": "Chamilo\\CoreBundle\\Composer\\ScriptHandler::updateCss"
     },
diff --git a/plugin/extramenufromwebservice/resources/css/extramenufromwebservice.css b/plugin/extramenufromwebservice/resources/css/extramenufromwebservice.css
index 473906ef4c..d3a0f1fa54 100644
--- a/plugin/extramenufromwebservice/resources/css/extramenufromwebservice.css
+++ b/plugin/extramenufromwebservice/resources/css/extramenufromwebservice.css
@@ -97,3 +97,9 @@
   top: 0;
   transform: rotate(90deg);
 }
+#date_alt_text {
+  z-index: 0; !important;
+}
+.input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group {
+  z-index: 0; !important;
+}
\ No newline at end of file
diff --git a/plugin/extramenufromwebservice/resources/js/extramenufromwebservice.js b/plugin/extramenufromwebservice/resources/js/extramenufromwebservice.js
index 691f4bc9ae..6ee64333a5 100644
--- a/plugin/extramenufromwebservice/resources/js/extramenufromwebservice.js
+++ b/plugin/extramenufromwebservice/resources/js/extramenufromwebservice.js
@@ -1,5 +1,7 @@
 $(document).ready(function () {
     $('#menu-toggle').click(function() {
         $("#nav-from-webservice").toggle("slow");
+        $("#nav-from-webservice").css("z-index", 15);
     });
+    $('#menu-toggle').click();
 });
diff --git a/plugin/oauth2/redirect_info.php b/plugin/oauth2/redirect_info.php
index 4518c6fa57..33e8efdb09 100644
--- a/plugin/oauth2/redirect_info.php
+++ b/plugin/oauth2/redirect_info.php
@@ -34,4 +34,4 @@ $content = '
 
 $template = new Template();
 $template->assign('content', $content);
-$template->display_one_col_template();
\ No newline at end of file
+$template->display_one_col_template();
diff --git a/plugin/oauth2/src/OAuth2.php b/plugin/oauth2/src/OAuth2.php
index cbbf891b81..20e300f984 100644
--- a/plugin/oauth2/src/OAuth2.php
+++ b/plugin/oauth2/src/OAuth2.php
@@ -337,6 +337,39 @@ class OAuth2 extends Plugin
         );
     }
 
+    public static function isFirstLoginAfterAuthSource(int $userId): bool
+    {
+        $em = Database::getManager();
+
+        $lastLogin = $em
+            ->getRepository(TrackELogin::class)
+            ->findOneBy(
+                ['loginUserId' => $userId],
+                ['loginDate' => 'DESC']
+            )
+        ;
+
+        if (!$lastLogin) {
+            return false;
+        }
+
+        $objExtraField = new ExtraField('user');
+        $field = $objExtraField->getHandlerEntityByFieldVariable(self::EXTRA_FIELD_OAUTH2_ID);
+
+        $fieldValue = $em
+            ->getRepository(ExtraFieldValues::class)
+            ->findOneBy(
+                ['itemId' => $userId, 'field' => $field]
+            )
+        ;
+
+        if (!$fieldValue) {
+            return false;
+        }
+
+        return $fieldValue->getCreatedAt() >= $lastLogin->getLoginDate();
+    }
+
     /**
      * Extends ArrayAccessorTrait::getValueByKey to return a list of values
      * $key can contain wild card character *
@@ -472,37 +505,4 @@ class OAuth2 extends Plugin
             error_log("OAuth2 plugin: $key: $content");
         }
     }
-
-    public static function isFirstLoginAfterAuthSource(int $userId): bool
-    {
-        $em = Database::getManager();
-
-        $lastLogin = $em
-            ->getRepository(TrackELogin::class)
-            ->findOneBy(
-                ['loginUserId' => $userId],
-                ['loginDate' => 'DESC']
-            )
-        ;
-
-        if (!$lastLogin) {
-            return false;
-        }
-
-        $objExtraField = new ExtraField('user');
-        $field = $objExtraField->getHandlerEntityByFieldVariable(self::EXTRA_FIELD_OAUTH2_ID);
-
-        $fieldValue = $em
-            ->getRepository(ExtraFieldValues::class)
-            ->findOneBy(
-                ['itemId' => $userId, 'field' => $field]
-            )
-        ;
-
-        if (!$fieldValue) {
-            return false;
-        }
-
-        return $fieldValue->getCreatedAt() >= $lastLogin->getLoginDate();
-    }
 }
diff --git a/src/Chamilo/CoreBundle/Component/Editor/Driver/CourseDriver.php b/src/Chamilo/CoreBundle/Component/Editor/Driver/CourseDriver.php
index f8026b8ddc..b71763d339 100644
--- a/src/Chamilo/CoreBundle/Component/Editor/Driver/CourseDriver.php
+++ b/src/Chamilo/CoreBundle/Component/Editor/Driver/CourseDriver.php
@@ -397,7 +397,7 @@ class CourseDriver extends Driver implements DriverInterface
             return false;
         }
 
-        $name= api_replace_dangerous_char($name);
+        $name = api_replace_dangerous_char($name);
         $result = parent::mkdir($path, $name);
 
         if ($result && isset($result['hash'])) {
diff --git a/src/Chamilo/CoreBundle/Composer/ScriptHandler.php b/src/Chamilo/CoreBundle/Composer/ScriptHandler.php
index ff14354968..c3d6ca88b8 100644
--- a/src/Chamilo/CoreBundle/Composer/ScriptHandler.php
+++ b/src/Chamilo/CoreBundle/Composer/ScriptHandler.php
@@ -3,6 +3,10 @@
 
 namespace Chamilo\CoreBundle\Composer;
 
+use Doctrine\DBAL\Migrations\Tools\Console\Command\GenerateCommand;
+use Doctrine\ORM\Tools\Console\ConsoleRunner;
+use Symfony\Component\Console\Input\ArrayInput;
+use Symfony\Component\Console\Output\BufferedOutput;
 use Symfony\Component\Filesystem\Filesystem;
 
 /**
@@ -261,6 +265,32 @@ class ScriptHandler
         }
     }
 
+    /**
+     * @throws \Exception
+     */
+    public static function generateDoctineProxies()
+    {
+        $helperSet = require __DIR__.'/../../../../cli-config.php';
+
+        $application = ConsoleRunner::createApplication(
+            $helperSet,
+            [
+                new GenerateCommand(),
+            ]
+        );
+
+        $application->setAutoExit(false);
+
+        $input = new ArrayInput([
+            'command' => 'orm:generate:proxies',
+        ]);
+        $output = new BufferedOutput();
+
+        $application->run($input, $output);
+
+        echo $output->fetch();
+    }
+
     /**
      * Copied from chamilo rmdirr function.
      *