parent
cb303ddc8e
commit
23f82bc5b8
@ -0,0 +1,58 @@ |
|||||||
|
<?php |
||||||
|
/* For licensing terms, see /license.txt */ |
||||||
|
|
||||||
|
namespace Chamilo\PluginBundle\MigrationMoodle\Loader; |
||||||
|
|
||||||
|
use Chamilo\CourseBundle\Entity\CLpItemView; |
||||||
|
use Chamilo\PluginBundle\MigrationMoodle\Interfaces\LoaderInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class UserLearnPathsSectionsLoader. |
||||||
|
* |
||||||
|
* @package Chamilo\PluginBundle\MigrationMoodle\Loader |
||||||
|
*/ |
||||||
|
class UserLearnPathsSectionsLoader implements LoaderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @inheritDoc |
||||||
|
*/ |
||||||
|
public function load(array $incomingData) |
||||||
|
{ |
||||||
|
$em = \Database::getManager(); |
||||||
|
|
||||||
|
$lpViewRepo = $em->getRepository('ChamiloCourseBundle:CLpView'); |
||||||
|
$lpItemViewRepo = $em->getRepository('ChamiloCourseBundle:CLpItemView'); |
||||||
|
|
||||||
|
$lpView = $lpViewRepo->findOneBy(['userId' => $incomingData['user_id'], 'lpId' => $incomingData['lp_id']]); |
||||||
|
|
||||||
|
if (empty($lpView)) { |
||||||
|
throw new \Exception( |
||||||
|
"LP view not found for user ({$incomingData['user_id']}) and LP ({$incomingData['lp_id']})" |
||||||
|
); |
||||||
|
} |
||||||
|
|
||||||
|
/** @var CLpItemView $lpItemView */ |
||||||
|
$lpItemView = $lpItemViewRepo->findOneBy( |
||||||
|
[ |
||||||
|
'lpViewId' => $lpView->getId(), |
||||||
|
'lpItemId' => $incomingData['item_id'] |
||||||
|
] |
||||||
|
); |
||||||
|
|
||||||
|
if (empty($lpItemView)) { |
||||||
|
throw new \Exception( |
||||||
|
"LP item view not found for view ({$lpView->getId()}) and item ({$incomingData['item_id']})" |
||||||
|
); |
||||||
|
} |
||||||
|
|
||||||
|
$lpItemView |
||||||
|
->setMaxScore('100') |
||||||
|
->setStartTime($incomingData['start_time']) |
||||||
|
->setTotalTime($incomingData['total_time']); |
||||||
|
|
||||||
|
$em->persist($lpItemView); |
||||||
|
$em->flush(); |
||||||
|
|
||||||
|
return $lpItemView->getId(); |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,69 @@ |
|||||||
|
<?php |
||||||
|
/* For licensing terms, see /license.txt */ |
||||||
|
|
||||||
|
namespace Chamilo\PluginBundle\MigrationMoodle\Task; |
||||||
|
|
||||||
|
use Chamilo\PluginBundle\MigrationMoodle\Extractor\UserExtractor; |
||||||
|
use Chamilo\PluginBundle\MigrationMoodle\Loader\UserLearnPathsSectionsLoader; |
||||||
|
use Chamilo\PluginBundle\MigrationMoodle\Transformer\BaseTransformer; |
||||||
|
use Chamilo\PluginBundle\MigrationMoodle\Transformer\Property\LoadedCourseModuleLessonLookup; |
||||||
|
use Chamilo\PluginBundle\MigrationMoodle\Transformer\Property\LoadedCourseSectionFromLessonLookup; |
||||||
|
use Chamilo\PluginBundle\MigrationMoodle\Transformer\Property\LoadedUserLookup; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class UsersLearnPathsSectionsTask. |
||||||
|
* |
||||||
|
* Update lp item (dirs) view. |
||||||
|
* |
||||||
|
* @package Chamilo\PluginBundle\MigrationMoodle\Task |
||||||
|
*/ |
||||||
|
class UsersLearnPathsSectionsTask extends BaseTask |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @inheritDoc |
||||||
|
*/ |
||||||
|
public function getExtractConfiguration() |
||||||
|
{ |
||||||
|
return [ |
||||||
|
'class' => UserExtractor::class, |
||||||
|
'query' => "SELECT id, lessonid, userid, starttime, lessontime - starttime AS total_time |
||||||
|
FROM mdl_lesson_timer", |
||||||
|
]; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @inheritDoc |
||||||
|
*/ |
||||||
|
public function getTransformConfiguration() |
||||||
|
{ |
||||||
|
return [ |
||||||
|
'class' => BaseTransformer::class, |
||||||
|
'map' => [ |
||||||
|
'user_id' => [ |
||||||
|
'class' => LoadedUserLookup::class, |
||||||
|
'properties' => ['userid'], |
||||||
|
], |
||||||
|
'item_id' => [ |
||||||
|
'class' => LoadedCourseModuleLessonLookup::class, |
||||||
|
'properties' => ['lessonid'] |
||||||
|
], |
||||||
|
'start_time' => 'starttime', |
||||||
|
'total_time' => 'total_time', |
||||||
|
'lp_id' => [ |
||||||
|
'class' => LoadedCourseSectionFromLessonLookup::class, |
||||||
|
'properties' => ['lessonid'], |
||||||
|
], |
||||||
|
], |
||||||
|
]; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @inheritDoc |
||||||
|
*/ |
||||||
|
public function getLoadConfiguration() |
||||||
|
{ |
||||||
|
return [ |
||||||
|
'class' => UserLearnPathsSectionsLoader::class, |
||||||
|
]; |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue