|
|
|
@ -17,7 +17,7 @@ namespace :migrate_course_resource do
|
|
|
|
|
if atta.course_second_category.present?
|
|
|
|
|
target_category = CourseSecondCategory.find_by(name: atta.course_second_category.name, course_id: target_course.id, category_type: "attachment")
|
|
|
|
|
unless target_category.present?
|
|
|
|
|
course_module = Course.course_modules.find_by(module_type: "attachment")
|
|
|
|
|
course_module = target_course.course_modules.find_by(module_type: "attachment")
|
|
|
|
|
target_category = CourseSecondCategory.create(name: atta.course_second_category.name, course_id: target_course.id,
|
|
|
|
|
category_type: "attachment", course_module_id: course_module&.id,
|
|
|
|
|
position: course_module&.course_second_categories&.count.to_i + 1)
|
|
|
|
@ -53,7 +53,7 @@ namespace :migrate_course_resource do
|
|
|
|
|
if homework.course_second_category.present?
|
|
|
|
|
target_category = CourseSecondCategory.find_by(name: homework.course_second_category.name, course_id: target_course.id, category_type: "shixun_homework")
|
|
|
|
|
unless target_category.present?
|
|
|
|
|
course_module = Course.course_modules.find_by(module_type: "shixun_homework")
|
|
|
|
|
course_module = target_course.course_modules.find_by(module_type: "shixun_homework")
|
|
|
|
|
target_category = CourseSecondCategory.create(name: homework.course_second_category.name, course_id: target_course.id,
|
|
|
|
|
category_type: "shixun_homework", course_module_id: course_module&.id,
|
|
|
|
|
position: course_module&.course_second_categories&.count.to_i + 1)
|
|
|
|
@ -193,6 +193,16 @@ namespace :migrate_course_resource do
|
|
|
|
|
target_course = Course.find_by(id: target_id)
|
|
|
|
|
return if source_course.blank? || target_course.blank?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 先把target——course中的老师创建分班权限
|
|
|
|
|
target_course.teachers.each do |member|
|
|
|
|
|
if member.teacher_course_groups.blank?
|
|
|
|
|
target_course.course_groups.each do |group|
|
|
|
|
|
TeacherCourseGroup.create!(course_group_id: group.id, course_id: target_course.id, course_member_id: member&.id, user_id: member&.user_id)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
source_course.course_members.where(role: %i[PROFESSOR ASSISTANT_PROFESSOR]).each do |teacher|
|
|
|
|
|
new_member = target_course.teachers.find_by(user_id: teacher.user_id)
|
|
|
|
|
unless new_member.present?
|
|
|
|
@ -208,25 +218,37 @@ namespace :migrate_course_resource do
|
|
|
|
|
end
|
|
|
|
|
new_user_ids = []
|
|
|
|
|
group.course_members.where(role: 4).each do |member|
|
|
|
|
|
new_member = target_course.course_members.find_by(user_id: member.user_id)
|
|
|
|
|
new_member = target_course.students.find_by(user_id: member.user_id)
|
|
|
|
|
if new_member.present?
|
|
|
|
|
new_member.update_column("course_group_id", new_group.id)
|
|
|
|
|
new_member.update_attributes(course_group_id: new_group.id)
|
|
|
|
|
else
|
|
|
|
|
CourseMember.create!(course_id: target_course.id, course_group_id: new_group.id, user_id: member.user_id, role: member.role)
|
|
|
|
|
new_user_ids << member.user_id
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# CourseAddStudentCreateWorksJob.perform_later(target_course.id, new_user_ids) unless new_user_ids.blank?
|
|
|
|
|
CourseAddStudentCreateWorksJob.perform_later(target_course.id, new_user_ids) unless new_user_ids.blank?
|
|
|
|
|
|
|
|
|
|
group.teacher_course_groups.each do |teacher_group|
|
|
|
|
|
member = CourseMember.find_by(course_id: target_course.id, user_id: teacher_group.user_id, role: %i[CREATOR PROFESSOR ASSISTANT_PROFESSOR])
|
|
|
|
|
if member.present?
|
|
|
|
|
if member.present? && !member.teacher_course_groups.where(course_group_id: new_group.id).exists?
|
|
|
|
|
TeacherCourseGroup.create!(course_group_id: new_group.id, course_id: target_course.id, course_member_id: member&.id, user_id: member&.user_id)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
user_ids = []
|
|
|
|
|
source_course.students.where(course_group_id: 0).each do |member|
|
|
|
|
|
new_member = target_course.students.find_by(user_id: member.user_id)
|
|
|
|
|
if new_member.present?
|
|
|
|
|
new_member.update_attributes(course_group_id: 0)
|
|
|
|
|
else
|
|
|
|
|
CourseMember.create!(course_id: target_course.id, course_group_id: 0, user_id: member.user_id, role: member.role)
|
|
|
|
|
user_ids << member.user_id
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
CourseAddStudentCreateWorksJob.perform_later(target_course.id, user_ids) unless user_ids.blank?
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|