From 4e58b73b66f73aa39ef5fda179b107876aa2fbba Mon Sep 17 00:00:00 2001 From: Angel Fernando Quiroz Campos Date: Wed, 5 Feb 2020 23:36:08 -0500 Subject: [PATCH] MigrationMoodle: Don't migrate course sections with scorms - refs BT#15992 --- .../src/Extractor/CourseSectionsExtractor.php | 52 +++++++++++++++++++ .../src/Task/CourseSectionsTask.php | 10 ++-- 2 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 plugin/migrationmoodle/src/Extractor/CourseSectionsExtractor.php diff --git a/plugin/migrationmoodle/src/Extractor/CourseSectionsExtractor.php b/plugin/migrationmoodle/src/Extractor/CourseSectionsExtractor.php new file mode 100644 index 0000000000..c09002a794 --- /dev/null +++ b/plugin/migrationmoodle/src/Extractor/CourseSectionsExtractor.php @@ -0,0 +1,52 @@ +getConnection(); + } catch (DBALException $exception) { + throw new \Exception('Unable to get connection', 0, $exception); + } + + $sql = "SELECT COUNT(sco.id) + FROM mdl_scorm sco + INNER JOIN mdl_scorm_scoes i on sco.id = i.scorm + INNER JOIN mdl_course_modules cm ON (sco.course = cm.course AND cm.instance = sco.id) + INNER JOIN mdl_modules m ON cm.module = m.id + INNER JOIN mdl_course_sections cs ON (cm.course = cs.course AND cm.section = cs.id ) + WHERE m.name = 'scorm' + AND i.parent = '/' + AND cs.id = ".$sourceData['id']; + + try { + $statement = $connection->executeQuery($sql); + } catch (DBALException $exception) { + throw new \Exception("Unable to execute query \"$sql\"", 0, $exception); + } + + $row = $statement->fetch(FetchMode::NUMERIC); + + $connection->close(); + + return $row[0] > 0; + } +} diff --git a/plugin/migrationmoodle/src/Task/CourseSectionsTask.php b/plugin/migrationmoodle/src/Task/CourseSectionsTask.php index d115baa870..818ba48b39 100644 --- a/plugin/migrationmoodle/src/Task/CourseSectionsTask.php +++ b/plugin/migrationmoodle/src/Task/CourseSectionsTask.php @@ -3,7 +3,7 @@ namespace Chamilo\PluginBundle\MigrationMoodle\Task; -use Chamilo\PluginBundle\MigrationMoodle\Extractor\CourseExtractor; +use Chamilo\PluginBundle\MigrationMoodle\Extractor\CourseSectionsExtractor; use Chamilo\PluginBundle\MigrationMoodle\Loader\CourseSectionsLoader; use Chamilo\PluginBundle\MigrationMoodle\Transformer\BaseTransformer; use Chamilo\PluginBundle\MigrationMoodle\Transformer\Property\LoadedCourseCodeLookup; @@ -23,8 +23,11 @@ class CourseSectionsTask extends BaseTask public function getExtractConfiguration() { return [ - 'class' => CourseExtractor::class, - 'query' => "SELECT id, course, summary FROM mdl_course_sections WHERE section > 0 AND (name != '' OR name IS NOT NULL)", + 'class' => CourseSectionsExtractor::class, + 'query' => "SELECT id, course, name, summary + FROM mdl_course_sections + WHERE section > 0 AND (name != '' OR name IS NOT NULL) + ORDER BY course, section", ]; } @@ -40,6 +43,7 @@ class CourseSectionsTask extends BaseTask 'class' => LoadedCourseCodeLookup::class, 'properties' => ['course'], ], + 'name' => 'name', 'description' => 'summary', ], ];