patch curriculum..
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
WITH guide_week AS (
|
||||
SELECT w."id"
|
||||
FROM "course_weeks" w
|
||||
JOIN "courses" c ON c."id" = w."course_id"
|
||||
WHERE c."slug" = 'autonomy-studio-lms-guide'
|
||||
AND w."week" = 1
|
||||
), modules AS (
|
||||
SELECT *
|
||||
FROM (
|
||||
VALUES
|
||||
(
|
||||
1,
|
||||
'Simulator',
|
||||
'NAV2-Gazebo',
|
||||
'[lms-nav2-gazebo-simulator]nav2-simulator_v1.0.0_ws',
|
||||
'http://192.168.0.242:3000/templates/lms-nav2-gazebo-simulator.git',
|
||||
'future-nav2-gazebo:humble',
|
||||
'["gui:=false"]'::JSONB,
|
||||
'[{"url":"https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-simulator/1.0.0/prebuilt/latest/lms-nav2-gazebo-simulator-build-install.tar.zst","type":"build-install","fileName":"lms-nav2-gazebo-simulator-build-install.tar.zst","required":false,"extractPath":"."}]'::JSONB
|
||||
),
|
||||
(
|
||||
2,
|
||||
'Vehicle',
|
||||
'NAV2-TurtleBot3Burger',
|
||||
'[lms-nav2-gazebo-vehicle]nav2-vehicle_v1.0.0_ws',
|
||||
'http://192.168.0.242:3000/templates/lms-nav2-gazebo-vehicle.git',
|
||||
'future-nav2-gazebo:humble',
|
||||
'["sim_mode:=true","platform:=turtlebot3","level:=2d"]'::JSONB,
|
||||
'[{"url":"https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-vehicle/1.0.0/prebuilt/latest/lms-nav2-gazebo-vehicle-build-install.tar.zst","type":"build-install","fileName":"lms-nav2-gazebo-vehicle-build-install.tar.zst","required":false,"extractPath":"."}]'::JSONB
|
||||
),
|
||||
(
|
||||
3,
|
||||
'Localization',
|
||||
'NAV2-SLAM',
|
||||
'[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws',
|
||||
'http://192.168.0.242:3000/templates/lms-nav2-gazebo-slam.git',
|
||||
'future-nav2-gazebo:humble',
|
||||
'[]'::JSONB,
|
||||
'[{"url":"https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-slam/1.0.0/prebuilt/latest/lms-nav2-gazebo-slam-build-install.tar.zst","type":"build-install","fileName":"lms-nav2-gazebo-slam-build-install.tar.zst","required":false,"extractPath":"."}]'::JSONB
|
||||
)
|
||||
) AS value("sort_order", "category", "name", "folder_name", "template_repository_url", "docker_image", "default_parameters", "prebuilt_artifacts")
|
||||
)
|
||||
INSERT INTO "course_week_modules" (
|
||||
"week_id",
|
||||
"sort_order",
|
||||
"category",
|
||||
"name",
|
||||
"folder_name",
|
||||
"template_repository_url",
|
||||
"source_type",
|
||||
"prebuilt_artifacts",
|
||||
"default_parameters",
|
||||
"docker_image",
|
||||
"updated_at"
|
||||
)
|
||||
SELECT
|
||||
guide_week."id",
|
||||
modules."sort_order",
|
||||
modules."category",
|
||||
modules."name",
|
||||
modules."folder_name",
|
||||
modules."template_repository_url",
|
||||
'GIT',
|
||||
modules."prebuilt_artifacts",
|
||||
modules."default_parameters",
|
||||
modules."docker_image",
|
||||
CURRENT_TIMESTAMP
|
||||
FROM guide_week
|
||||
CROSS JOIN modules
|
||||
ON CONFLICT ("week_id", "folder_name") DO UPDATE
|
||||
SET "category" = EXCLUDED."category",
|
||||
"name" = EXCLUDED."name",
|
||||
"template_repository_url" = EXCLUDED."template_repository_url",
|
||||
"source_type" = EXCLUDED."source_type",
|
||||
"prebuilt_artifacts" = EXCLUDED."prebuilt_artifacts",
|
||||
"default_parameters" = EXCLUDED."default_parameters",
|
||||
"docker_image" = EXCLUDED."docker_image",
|
||||
"updated_at" = CURRENT_TIMESTAMP;
|
||||
|
||||
DELETE FROM "course_week_maps" maps
|
||||
USING "courses" course
|
||||
WHERE maps."course_id" = course."id"
|
||||
AND course."slug" = 'autonomy-studio-lms-guide'
|
||||
AND maps."week" = 1
|
||||
AND maps."map_key" <> 'nav2-turtlebot3-world';
|
||||
|
||||
INSERT INTO "course_week_maps" (
|
||||
"id",
|
||||
"course_id",
|
||||
"week",
|
||||
"map_key",
|
||||
"sort_order",
|
||||
"updated_at"
|
||||
)
|
||||
SELECT
|
||||
gen_random_uuid(),
|
||||
course."id",
|
||||
1,
|
||||
'nav2-turtlebot3-world',
|
||||
0,
|
||||
CURRENT_TIMESTAMP
|
||||
FROM "courses" course
|
||||
WHERE course."slug" = 'autonomy-studio-lms-guide'
|
||||
ON CONFLICT ("course_id", "week", "map_key") DO UPDATE
|
||||
SET "sort_order" = EXCLUDED."sort_order",
|
||||
"updated_at" = CURRENT_TIMESTAMP;
|
||||
@@ -0,0 +1,2 @@
|
||||
DROP TABLE IF EXISTS "course_week_visualization_platforms";
|
||||
DROP TABLE IF EXISTS "visualization_platforms";
|
||||
@@ -0,0 +1,53 @@
|
||||
UPDATE "course_week_modules" modules
|
||||
SET "sort_order" = 4,
|
||||
"updated_at" = CURRENT_TIMESTAMP
|
||||
FROM "course_weeks" week, "courses" course
|
||||
WHERE modules."week_id" = week."id"
|
||||
AND week."course_id" = course."id"
|
||||
AND course."slug" = 'autonomy-studio-lms-guide'
|
||||
AND week."week" = 1
|
||||
AND modules."folder_name" = '[lms-nav2-gazebo-slam]nav2-slam_v1.0.0_ws';
|
||||
|
||||
WITH guide_week AS (
|
||||
SELECT w."id"
|
||||
FROM "course_weeks" w
|
||||
JOIN "courses" c ON c."id" = w."course_id"
|
||||
WHERE c."slug" = 'autonomy-studio-lms-guide'
|
||||
AND w."week" = 1
|
||||
)
|
||||
INSERT INTO "course_week_modules" (
|
||||
"week_id",
|
||||
"sort_order",
|
||||
"category",
|
||||
"name",
|
||||
"folder_name",
|
||||
"template_repository_url",
|
||||
"source_type",
|
||||
"prebuilt_artifacts",
|
||||
"default_parameters",
|
||||
"docker_image",
|
||||
"updated_at"
|
||||
)
|
||||
SELECT
|
||||
guide_week."id",
|
||||
3,
|
||||
'Perception',
|
||||
'NAV2-Perception',
|
||||
'[lms-nav2-gazebo-perception]nav2-perception_v1.0.0_ws',
|
||||
'http://192.168.0.242:3000/templates/lms-nav2-gazebo-perception.git',
|
||||
'GIT',
|
||||
'[{"url":"https://pub-ca72c40797144462bdb7d200c215d361.r2.dev/studio-artifacts/modules/lms-nav2-gazebo-perception/1.0.0/prebuilt/latest/lms-nav2-gazebo-perception-build-install.tar.zst","type":"build-install","fileName":"lms-nav2-gazebo-perception-build-install.tar.zst","required":false,"extractPath":"."}]'::JSONB,
|
||||
'["sim_mode:=true"]'::JSONB,
|
||||
'future-nav2-gazebo:humble',
|
||||
CURRENT_TIMESTAMP
|
||||
FROM guide_week
|
||||
ON CONFLICT ("week_id", "folder_name") DO UPDATE
|
||||
SET "sort_order" = EXCLUDED."sort_order",
|
||||
"category" = EXCLUDED."category",
|
||||
"name" = EXCLUDED."name",
|
||||
"template_repository_url" = EXCLUDED."template_repository_url",
|
||||
"source_type" = EXCLUDED."source_type",
|
||||
"prebuilt_artifacts" = EXCLUDED."prebuilt_artifacts",
|
||||
"default_parameters" = EXCLUDED."default_parameters",
|
||||
"docker_image" = EXCLUDED."docker_image",
|
||||
"updated_at" = CURRENT_TIMESTAMP;
|
||||
@@ -162,7 +162,6 @@ model Course {
|
||||
instructorCurriculumSettings InstructorCurriculumSetting[]
|
||||
instructorCurriculumWeekOverrides InstructorCurriculumWeekOverride[]
|
||||
environmentProfiles CourseEnvironmentProfile[]
|
||||
visualizationSelections CourseWeekVisualizationPlatform[]
|
||||
maps CourseMap[]
|
||||
weekMaps CourseWeekMap[]
|
||||
savedMaps StudentSavedMap[]
|
||||
@@ -195,39 +194,6 @@ model CourseEnvironmentProfile {
|
||||
@@map("course_environment_profiles")
|
||||
}
|
||||
|
||||
model VisualizationPlatform {
|
||||
key String @id @map("platform_key")
|
||||
type String @unique
|
||||
displayName String @map("display_name")
|
||||
description String?
|
||||
defaultConfig Json @map("default_config")
|
||||
sortOrder Int @default(0) @map("sort_order")
|
||||
enabled Boolean @default(true)
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
||||
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
|
||||
courseWeekSelections CourseWeekVisualizationPlatform[]
|
||||
|
||||
@@index([enabled, sortOrder])
|
||||
@@map("visualization_platforms")
|
||||
}
|
||||
|
||||
model CourseWeekVisualizationPlatform {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
courseId String @map("course_id") @db.Uuid
|
||||
week Int
|
||||
platformKey String @map("platform_key")
|
||||
enabled Boolean @default(true)
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
||||
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
|
||||
course Course @relation(fields: [courseId], references: [id], onDelete: Cascade)
|
||||
platform VisualizationPlatform @relation(fields: [platformKey], references: [key], onDelete: Cascade)
|
||||
|
||||
@@unique([courseId, week, platformKey])
|
||||
@@index([courseId, week])
|
||||
@@index([platformKey])
|
||||
@@map("course_week_visualization_platforms")
|
||||
}
|
||||
|
||||
model CourseMap {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
courseId String @map("course_id") @db.Uuid
|
||||
|
||||
Reference in New Issue
Block a user