From cb303ddc8e3639960e34795cbe9308e259301c33 Mon Sep 17 00:00:00 2001 From: Angel Fernando Quiroz Campos Date: Tue, 18 Feb 2020 16:14:19 -0500 Subject: [PATCH] MigrationMoodle: Add task for learning paths views - refs BT#15992 --- plugin/migrationmoodle/admin.php | 1 + plugin/migrationmoodle/lang/english.php | 1 + .../src/Loader/UserLearnPathsLoader.php | 45 +++++++++++++++ .../src/Task/UsersLearnPathsTask.php | 56 +++++++++++++++++++ 4 files changed, 103 insertions(+) create mode 100644 plugin/migrationmoodle/src/Loader/UserLearnPathsLoader.php create mode 100644 plugin/migrationmoodle/src/Task/UsersLearnPathsTask.php diff --git a/plugin/migrationmoodle/admin.php b/plugin/migrationmoodle/admin.php index 51aa01ef9b..aa0a285eee 100644 --- a/plugin/migrationmoodle/admin.php +++ b/plugin/migrationmoodle/admin.php @@ -92,6 +92,7 @@ $menu = [ ], 'efc_users' => [ 'efc_user_sessions', + 'users_learn_paths', 'users_scorms_view', ], 'users_scorms_view' => [ diff --git a/plugin/migrationmoodle/lang/english.php b/plugin/migrationmoodle/lang/english.php index 7a1afd902b..7c549242cb 100644 --- a/plugin/migrationmoodle/lang/english.php +++ b/plugin/migrationmoodle/lang/english.php @@ -50,3 +50,4 @@ $strings['UrlsTask'] = 'URLs'; $strings['SortSectionModulesTask'] = 'Sort modules in section'; $strings['UsersScormsViewTask'] = 'Scorm views for users'; $strings['UsersScormsProgressTask'] = 'Scorm progress'; +$strings['UsersLearnPathsTask'] = 'Learn paths views of users'; diff --git a/plugin/migrationmoodle/src/Loader/UserLearnPathsLoader.php b/plugin/migrationmoodle/src/Loader/UserLearnPathsLoader.php new file mode 100644 index 0000000000..6c687e17b7 --- /dev/null +++ b/plugin/migrationmoodle/src/Loader/UserLearnPathsLoader.php @@ -0,0 +1,45 @@ +getRepository('ChamiloCoreBundle:SessionRelCourseRelUser'); + $learnPathsRepo = $em->getRepository('ChamiloCourseBundle:CLp'); + + $userId = $incomingData['user_id']; + + $subscriptions = $subscriptionsRepo->findBy(['user' => $userId]); + + foreach ($subscriptions as $subscription) { + $course = $subscription->getCourse(); + + $lps = $learnPathsRepo->findBy(['cId' => $course->getId(), 'lpType' => 1]); + + foreach ($lps as $lp) { + new \learnpath( + $course->getCode(), + $lp->getId(), + $userId + ); + } + } + + return $userId; + } +} diff --git a/plugin/migrationmoodle/src/Task/UsersLearnPathsTask.php b/plugin/migrationmoodle/src/Task/UsersLearnPathsTask.php new file mode 100644 index 0000000000..07517cff29 --- /dev/null +++ b/plugin/migrationmoodle/src/Task/UsersLearnPathsTask.php @@ -0,0 +1,56 @@ + UserExtractor::class, + 'query' => 'SELECT id FROM mdl_user WHERE username LIKE "efc%"', + ]; + } + + /** + * @inheritDoc + */ + public function getTransformConfiguration() + { + return [ + 'class' => BaseTransformer::class, + 'map' => [ + 'user_id' => [ + 'class' => LoadedUserLookup::class, + 'properties' => ['id'], + ], + ], + ]; + } + + /** + * @inheritDoc + */ + public function getLoadConfiguration() + { + return [ + 'class' => UserLearnPathsLoader::class, + ]; + } +}