MigrationMoodle: Add task for course introductions - refs BT#15992

pull/3127/head
Angel Fernando Quiroz Campos 6 years ago
parent 3081d9b2fe
commit 013a7031ba
  1. 1
      plugin/migrationmoodle/admin.php
  2. 1
      plugin/migrationmoodle/lang/english.php
  3. 34
      plugin/migrationmoodle/src/Loader/CourseIntroductionLoader.php
  4. 60
      plugin/migrationmoodle/src/Task/CourseIntroductionsTask.php
  5. 3
      plugin/migrationmoodle/src/Task/CourseSectionsTask.php
  6. 10
      src/Chamilo/CourseBundle/Entity/CToolIntro.php

@ -27,6 +27,7 @@ $menu = [
'efc_user_sessions',
],
'efc_courses' => [
'course_introductions',
'course_sections',
'course_modules_scorm',
],

@ -41,3 +41,4 @@ $strings['CourseModulesScormTask'] = 'Course Scorms';
$strings['ScormScoesTask'] = 'Scorms items';
$strings['FilesForScormScoesTask'] = 'Files for Scorm items';
$strings['EfcUserSessionsTask'] = 'Course Sessions for efc* users';
$strings['CourseIntroductionsTask'] = 'Course introductions';

@ -0,0 +1,34 @@
<?php
/* For licensing terms, see /license.txt */
namespace Chamilo\PluginBundle\MigrationMoodle\Loader;
use Chamilo\CourseBundle\Entity\CToolIntro;
use Chamilo\PluginBundle\MigrationMoodle\Interfaces\LoaderInterface;
/**
* Class CourseIntroductionLoader.
*
* @package Chamilo\PluginBundle\MigrationMoodle\Loader
*/
class CourseIntroductionLoader implements LoaderInterface
{
/**
* @inheritDoc
*/
public function load(array $incomingData)
{
$intro = new CToolIntro();
$intro
->setSessionId(0)
->setCId($incomingData['c_id'])
->setId(TOOL_COURSE_HOMEPAGE)
->setIntroText($incomingData['description']);
$em = \Database::getManager();
$em->persist($intro);
$em->flush();
return $intro->getIid();
}
}

@ -0,0 +1,60 @@
<?php
/* For licensing terms, see /license.txt */
namespace Chamilo\PluginBundle\MigrationMoodle\Task;
use Chamilo\PluginBundle\MigrationMoodle\Extractor\CourseExtractor;
use Chamilo\PluginBundle\MigrationMoodle\Loader\CourseIntroductionLoader;
use Chamilo\PluginBundle\MigrationMoodle\Transformer\BaseTransformer;
use Chamilo\PluginBundle\MigrationMoodle\Transformer\Property\LoadedCourseLookup;
/**
* Class CourseIntroductionsTask.
*
* Migrate the first section (section 0) from a moodle course as introduction for a chamilo course.
*
* @package Chamilo\PluginBundle\MigrationMoodle\Task
*/
class CourseIntroductionsTask extends BaseTask
{
/**
* @inheritDoc
*/
public function getExtractConfiguration()
{
return [
'class' => CourseExtractor::class,
'query' => "SELECT id, course, name, summary
FROM mdl_course_sections
WHERE section = 0 AND (summary != '' AND summary IS NOT NULL)",
];
}
/**
* @inheritDoc
*/
public function getTransformConfiguration()
{
return [
'class' => BaseTransformer::class,
'map' => [
'c_id' => [
'class' => LoadedCourseLookup::class,
'properties' => ['course'],
],
'name' => 'name',
'description' => 'summary',
],
];
}
/**
* @inheritDoc
*/
public function getLoadConfiguration()
{
return [
'class' => CourseIntroductionLoader::class,
];
}
}

@ -24,7 +24,7 @@ class CourseSectionsTask extends BaseTask
{
return [
'class' => CourseExtractor::class,
'query' => "SELECT * FROM mdl_course_sections WHERE section > 0 AND (name != '' OR name IS NOT NULL)",
'query' => "SELECT id, course, summary FROM mdl_course_sections WHERE section > 0 AND (name != '' OR name IS NOT NULL)",
];
}
@ -40,7 +40,6 @@ class CourseSectionsTask extends BaseTask
'class' => LoadedCourseCodeLookup::class,
'properties' => ['course'],
],
'name' => 'name',
'description' => 'summary',
],
];

@ -150,4 +150,14 @@ class CToolIntro
{
return $this->sessionId;
}
/**
* Get iid.
*
* @return int
*/
public function getIid()
{
return $this->iid;
}
}

Loading…
Cancel
Save