MigrationMoodle: Add filters for loaded ids in scripts - refs BT#15992

pull/3147/head
Angel Fernando Quiroz Campos 6 years ago
parent 00958579d4
commit 229a843fc8
  1. 50
      plugin/migrationmoodle/src/Script/BaseScript.php
  2. 12
      plugin/migrationmoodle/src/Script/UserLearnPathsProgressScript.php
  3. 6
      plugin/migrationmoodle/src/Script/UserScormsProgressScript.php

@ -34,6 +34,56 @@ abstract class BaseScript
abstract public function process(); abstract public function process();
/**
* @param int $id
* @param string $taskName
*
* @return bool
*/
private function isLoadedId($id, $taskName)
{
$row = \Database::fetch_assoc(
\Database::query(
"SELECT COUNT(pmi.id) AS nbr
FROM plugin_migrationmoodle_item pmi
INNER JOIN plugin_migrationmoodle_task pmt ON pmi.task_id pmt.id
WHERE pmt.name = '$taskName' AND pmi.loade_id = $id"
)
);
return $row['nbr'] > 0;
}
/**
* @param int $userId
*
* @return bool
*/
protected function isLoadedUser($userId)
{
return $this->isLoadedId($userId, 'users_task');
}
/**
* @param int $lpId
*
* @return bool
*/
protected function isMigratedLearningPath($lpId)
{
return $this->isLoadedId($lpId, 'course_sections_task');
}
/**
* @param int $scormId
*
* @return bool
*/
protected function isMigratedScorm($scormId)
{
return $this->isLoadedId($scormId, 'course_modules_scorm_task');
}
/** /**
* @param string $message * @param string $message
*/ */

@ -78,14 +78,24 @@ class UserLearnPathsProgressScript extends BaseScript
"SELECT lpv.iid, lpv.lp_id, lpv.user_id, lpv.c_id "SELECT lpv.iid, lpv.lp_id, lpv.user_id, lpv.c_id
FROM $tblLpView lpv FROM $tblLpView lpv
INNER JOIN $tblLp lp ON lpv.lp_id = lp.iid INNER JOIN $tblLp lp ON lpv.lp_id = lp.iid
WHERE lp.lp_type = 1" INNER JOIN plugin_migrationmoodle_item pmi ON pmi.loaded_id = lpv.user_id
INNER JOIN plugin_migrationmoodle_task pmt ON pmi.task_id = pmt.id
WHERE lp.lp_type = 1 AND pmt.name = 'users_task'"
); );
while ($row = \Database::fetch_assoc($result)) { while ($row = \Database::fetch_assoc($result)) {
if (!$this->isLoadedUser($row['user_id']) ||
!$this->isMigratedLearningPath($row['lp_id'])
) {
continue;
}
yield $row; yield $row;
} }
} }
/** /**
* @param int $userId * @param int $userId
* @param int $lpId * @param int $lpId

@ -86,6 +86,12 @@ class UserScormsProgressScript extends BaseScript
); );
while ($row = \Database::fetch_assoc($result)) { while ($row = \Database::fetch_assoc($result)) {
if (!$this->isLoadedUser($row['user_id']) ||
!$this->isMigratedScorm($row['lp_id'])
) {
continue;
}
yield $row; yield $row;
} }
} }

Loading…
Cancel
Save