parent
23f82bc5b8
commit
2d930800c6
@ -0,0 +1,40 @@ |
|||||||
|
<?php |
||||||
|
/* For licensing terms, see /license.txt */ |
||||||
|
|
||||||
|
namespace Chamilo\PluginBundle\MigrationMoodle\Loader; |
||||||
|
|
||||||
|
use Chamilo\PluginBundle\MigrationMoodle\Interfaces\LoaderInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class QuizzesScoresLoader. |
||||||
|
* |
||||||
|
* @package Chamilo\PluginBundle\MigrationMoodle\Loader |
||||||
|
*/ |
||||||
|
class QuizzesScoresLoader implements LoaderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @inheritDoc |
||||||
|
*/ |
||||||
|
public function load(array $incomingData) |
||||||
|
{ |
||||||
|
$tblQuizQuestion = \Database::get_course_table(TABLE_QUIZ_QUESTION); |
||||||
|
$tblQuizRelQuestion = \Database::get_course_table(TABLE_QUIZ_TEST_QUESTION); |
||||||
|
$tblLpItem = \Database::get_course_table(TABLE_LP_ITEM); |
||||||
|
|
||||||
|
$sql = "SELECT SUM(ponderation) |
||||||
|
FROM $tblQuizQuestion as quiz_question |
||||||
|
INNER JOIN $tblQuizRelQuestion as quiz_rel_question |
||||||
|
ON (quiz_question.id = quiz_rel_question.question_id AND quiz_question.c_id = quiz_rel_question.c_id) |
||||||
|
WHERE |
||||||
|
quiz_rel_question.exercice_id = {$incomingData['quiz_id']} |
||||||
|
AND quiz_question.c_id = {$incomingData['c_id']} |
||||||
|
AND quiz_rel_question.c_id = {$incomingData['c_id']}"; |
||||||
|
|
||||||
|
$rsQuiz = \Database::query($sql); |
||||||
|
$maxScore = \Database::result($rsQuiz, 0, 0); |
||||||
|
|
||||||
|
\Database::query("UPDATE $tblLpItem SET max_score = $maxScore WHERE iid = {$incomingData['item_id']}"); |
||||||
|
|
||||||
|
return $incomingData['item_id']; |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,74 @@ |
|||||||
|
<?php |
||||||
|
/* For licensing terms, see /license.txt */ |
||||||
|
|
||||||
|
namespace Chamilo\PluginBundle\MigrationMoodle\Task; |
||||||
|
|
||||||
|
use Chamilo\PluginBundle\MigrationMoodle\Extractor\CourseExtractor; |
||||||
|
use Chamilo\PluginBundle\MigrationMoodle\Loader\QuizzesScoresLoader; |
||||||
|
use Chamilo\PluginBundle\MigrationMoodle\Transformer\BaseTransformer; |
||||||
|
use Chamilo\PluginBundle\MigrationMoodle\Transformer\Property\LoadedCourseLookup; |
||||||
|
use Chamilo\PluginBundle\MigrationMoodle\Transformer\Property\LoadedCourseModuleQuizLookup; |
||||||
|
use Chamilo\PluginBundle\MigrationMoodle\Transformer\Property\LoadedQuizLookup; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class QuizzesScoresTask. |
||||||
|
* |
||||||
|
* @package Chamilo\PluginBundle\MigrationMoodle\Task |
||||||
|
*/ |
||||||
|
class QuizzesScoresTask extends BaseTask |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @inheritDoc |
||||||
|
*/ |
||||||
|
public function getExtractConfiguration() |
||||||
|
{ |
||||||
|
return [ |
||||||
|
'class' => CourseExtractor::class, |
||||||
|
'query' => "SELECT |
||||||
|
q.id, |
||||||
|
q.course, |
||||||
|
cm.section, |
||||||
|
cm.id cm_id |
||||||
|
FROM mdl_quiz q |
||||||
|
INNER JOIN mdl_course_modules cm ON (q.course = cm.course AND cm.instance = q.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 = 'quiz' |
||||||
|
ORDER BY cs.id, FIND_IN_SET(cm.id, cs.sequence)", |
||||||
|
]; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @inheritDoc |
||||||
|
*/ |
||||||
|
public function getTransformConfiguration() |
||||||
|
{ |
||||||
|
return [ |
||||||
|
'class' => BaseTransformer::class, |
||||||
|
'map' => [ |
||||||
|
'quiz_id' => [ |
||||||
|
'class' => LoadedQuizLookup::class, |
||||||
|
'properties' => ['id'], |
||||||
|
], |
||||||
|
'c_id' => [ |
||||||
|
'class' => LoadedCourseLookup::class, |
||||||
|
'properties' => ['course'], |
||||||
|
], |
||||||
|
'item_id' => [ |
||||||
|
'class' => LoadedCourseModuleQuizLookup::class, |
||||||
|
'properties' => ['cm_id'], |
||||||
|
], |
||||||
|
], |
||||||
|
]; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @inheritDoc |
||||||
|
*/ |
||||||
|
public function getLoadConfiguration() |
||||||
|
{ |
||||||
|
return [ |
||||||
|
'class' => QuizzesScoresLoader::class, |
||||||
|
]; |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue