Skip to content

Commit d1bf590

Browse files
committed
Scripts: Use the appropriate directory name when replacing the course in replace_course_code.php - refs BT#22302
1 parent 86222db commit d1bf590

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

tests/scripts/replace_course_code.php

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,30 @@ function replaceCodes(array $list): Generator
4343
continue;
4444
}
4545

46+
$currentCourseInfo = api_get_course_info($currentCode);
47+
$currentDirectory = $currentCourseInfo['directory'];
48+
49+
$newCourseKeys = AddCourse::define_course_keys($newCode);
50+
51+
$newCode = $newCourseKeys['currentCourseCode'];
52+
$newVisualCode = $newCourseKeys['currentCourseId'];
53+
$newDirectory = $newCourseKeys['currentCourseRepository'];
54+
4655
$newCode = CourseManager::generate_course_code($newCode);
4756

48-
yield "New code to use for '$currentCode' is '$newCode'";
57+
yield "New code to use for '$currentCode' is '$newCode' and its directory is '$newDirectory'";
58+
59+
Database::update(
60+
'course',
61+
[
62+
'code' => $newCode,
63+
'visual_code' => $newVisualCode,
64+
'directory' => $newDirectory,
65+
],
66+
['code = ?' => [$currentCode]]
67+
);
4968

5069
$tablesWithCode = [
51-
'course' => ['code', 'visual_code', 'directory'],
5270
'course_rel_class' => ['course_code'],
5371
'course_request' => ['code'],
5472
'gradebook_category' => ['course_code'],
@@ -76,20 +94,20 @@ function replaceCodes(array $list): Generator
7694

7795
yield "Replacing course code in exercises content";
7896

79-
ExerciseLib::replaceTermsInContent("/courses/$currentCode/", "/courses/$newCode/");
97+
ExerciseLib::replaceTermsInContent("/courses/$currentDirectory/", "/courses/$newDirectory/");
8098

8199
yield "Replacing course code in HTML files";
82100

83101
$coursePath = api_get_path(SYS_COURSE_PATH);
84102

85-
exec('find '.$coursePath.$currentCode.'/document/ -type f -name "*.html" -exec sed -i '."'s#/courses/$currentCode/#/courses/$newCode/#g' {} +");
103+
exec('find '.$coursePath.$currentDirectory.'/document/ -type f -name "*.html" -exec sed -i '."'s#/courses/$currentDirectory/#/courses/$newDirectory/#g' {} +");
86104

87105
yield "Renaming course directory";
88106

89107
$fs = new Filesystem();
90108
$fs->rename(
91-
$coursePath.$currentCode,
92-
$coursePath.$newCode
109+
$coursePath.$currentDirectory,
110+
$coursePath.$newDirectory
93111
);
94112
}
95113

0 commit comments

Comments
 (0)