MigrationMoodle: Add task for users last logins - refs BT#15992

pull/3129/head
Angel Fernando Quiroz Campos 6 years ago
parent f6bdd94db5
commit d4d19d26f0
  1. 1
      plugin/migrationmoodle/admin.php
  2. 1
      plugin/migrationmoodle/lang/english.php
  3. 1
      plugin/migrationmoodle/run_cli.php
  4. 28
      plugin/migrationmoodle/src/Loader/UserLastLoginLoader.php
  5. 59
      plugin/migrationmoodle/src/Task/UsersLastLoginTask.php

@ -93,6 +93,7 @@ $menu = [
'urls',
],
'users' => [
'users_last_login',
'user_sessions',
],
'user_sessions' => [

@ -72,3 +72,4 @@ $strings['UsersQuizzesAttemptsTask'] = 'Quiz attempts of users';
$strings['UserQuestionAttemptsShortanswerTask'] = 'Question attempts of users for shortanswer';
$strings['UserQuestionAttemptsGapselectTask'] = 'Question attempts of users for gapselect';
$strings['UserQuestionAttemptsTruefalseTask'] = 'Question attempts of users for truefalse';
$strings['UsersLastLoginTask'] = 'Last logins for users';

@ -62,6 +62,7 @@ $taskNames = [
/**//**/'scorm_scoes',
/**//**//**/'files_for_scorm_scoes',
'users',
/**/'users_last_login',
/**/'user_sessions',
/**//**/'users_learn_paths',
/**//**//**/'users_learn_paths_lesson_timer',

@ -0,0 +1,28 @@
<?php
/* For licensing terms, see /license.txt */
namespace Chamilo\PluginBundle\MigrationMoodle\Loader;
use Chamilo\PluginBundle\MigrationMoodle\Interfaces\LoaderInterface;
/**
* Class UserLastLoginLoader.
*
* @package Chamilo\PluginBundle\MigrationMoodle\Loader
*/
class UserLastLoginLoader implements LoaderInterface
{
/**
* @inheritDoc
*/
public function load(array $incomingData)
{
\Database::update(
\Database::get_main_table(TABLE_MAIN_USER),
['last_login' => $incomingData['last_login']->format('Y-m-d H:i:s')],
['id = ?' => [$incomingData['user_id']]]
);
return $incomingData['user_id'];
}
}

@ -0,0 +1,59 @@
<?php
/* For licensing terms, see /license.txt */
namespace Chamilo\PluginBundle\MigrationMoodle\Task;
use Chamilo\PluginBundle\MigrationMoodle\Extractor\LoadedUsersFilterExtractor;
use Chamilo\PluginBundle\MigrationMoodle\Loader\UserLastLoginLoader;
use Chamilo\PluginBundle\MigrationMoodle\Transformer\BaseTransformer;
use Chamilo\PluginBundle\MigrationMoodle\Transformer\Property\DateTimeObject;
use Chamilo\PluginBundle\MigrationMoodle\Transformer\Property\LoadedUserLookup;
/**
* Class UsersLastLoginTask.
*
* @package Chamilo\PluginBundle\MigrationMoodle\Task
*/
class UsersLastLoginTask extends BaseTask
{
/**
* @inheritDoc
*/
public function getExtractConfiguration()
{
return [
'class' => LoadedUsersFilterExtractor::class,
'query' => 'SELECT id, lastlogin FROM mdl_user WHERE lastlogin != 0',
];
}
/**
* @inheritDoc
*/
public function getTransformConfiguration()
{
return [
'class' => BaseTransformer::class,
'map' => [
'user_id' => [
'class' => LoadedUserLookup::class,
'properties' => ['id'],
],
'last_login' => [
'class' => DateTimeObject::class,
'properties' => ['lastlogin'],
],
],
];
}
/**
* @inheritDoc
*/
public function getLoadConfiguration()
{
return [
'class' => UserLastLoginLoader::class,
];
}
}
Loading…
Cancel
Save