Fix exercise category import see BT#10891

remotes/angel/1.11.x
jmontoyaa 8 years ago
parent 2d11c835fe
commit 4a2ca73213
  1. 34
      main/exercise/export/exercise_import.inc.php

@ -99,6 +99,8 @@ function import_exercise($file)
return 'UplZipCorrupt';
}
$baseWorkDir = $baseWorkDir.$uploadPath;
// find the different manifests for each question and parse them.
$exerciseHandle = opendir($baseWorkDir);
$file_found = false;
@ -174,6 +176,7 @@ function import_exercise($file)
$exercise->save();
$last_exercise_id = $exercise->selectId();
$courseId = api_get_course_int_id();
if (!empty($last_exercise_id)) {
// For each question found...
foreach ($exercise_info['question'] as $question_array) {
@ -195,18 +198,23 @@ function import_exercise($file)
if (isset($question_array['category'])) {
$category = formatText(strip_tags($question_array['category']));
$categoryId = TestCategory::get_category_id_for_title(
$category,
api_get_course_int_id()
);
if (!empty($categoryId)) {
$question->category = $categoryId;
} else {
$cat = new TestCategory();
$cat->name = $category;
$cat->description = '';
$question->category = $cat->save();
if (!empty($category)) {
$categoryId = TestCategory::get_category_id_for_title(
$category,
$courseId
);
if (empty($categoryId)) {
$cat = new TestCategory();
$cat->name = $category;
$cat->description = '';
$categoryId = $cat->save($courseId);
if ($categoryId) {
$question->category = $categoryId;
}
} else {
$question->category = $categoryId;
}
}
}
@ -214,8 +222,8 @@ function import_exercise($file)
$description .= $question_array['description'];
}
$question->updateDescription($description);
$question->save($last_exercise_id);
$last_question_id = $question->selectId();
//3. Create answer
$answer = new Answer($last_question_id);

Loading…
Cancel
Save