diff --git a/app/controllers/weapps/challenges_controller.rb b/app/controllers/weapps/challenges_controller.rb index 24bd4baeb..e29f16f28 100644 --- a/app/controllers/weapps/challenges_controller.rb +++ b/app/controllers/weapps/challenges_controller.rb @@ -6,10 +6,10 @@ class Weapps::ChallengesController < Weapps::BaseController # 关卡有展示效果 || 选择题 || jupyter实训 || vnc || 隐藏代码窗口 || html+css实训 # @challenge.show_type != -1 || @challenge.st == 1 || @shixun.is_jupyter? || @shixun.vnc || # @shixun.hide_code? || (@shixun.small_mirror_name & ["Css", "Html", "Web"]).present? - play = @shixun.is_jupyter? || @shixun.vnc || + play = @challenge.st == 1 || @shixun.is_jupyter? || @shixun.vnc || @shixun.hide_code? || (@shixun.small_mirror_name & ["Css", "Html", "Web"]).present? - if @challenge.st != 1 && play + if play normal_status(-5, "该关卡暂不支持小程序") else render_ok diff --git a/app/models/course.rb b/app/models/course.rb index f7db61995..14c17cf39 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -387,7 +387,7 @@ class Course < ApplicationRecord end def max_activity_time - course_acts.pluck(:updated_at).max + course_activities.pluck(:updated_at).max end # 课堂作业数 diff --git a/app/services/admins/school_daily_statistic_service.rb b/app/services/admins/school_daily_statistic_service.rb index 64bb97864..5dce40540 100644 --- a/app/services/admins/school_daily_statistic_service.rb +++ b/app/services/admins/school_daily_statistic_service.rb @@ -44,7 +44,7 @@ class Admins::SchoolDailyStatisticService < ApplicationService courses = Course.where(is_delete: 0, school_id: ids).group('school_id') course_map = courses.count - nearly_course_time_map = courses.joins(:course_acts).maximum('course_activities.updated_at') + nearly_course_time_map = courses.joins(:course_activities).maximum('course_activities.updated_at') active_course_map = courses.where(is_end: false).count shixun_map = Shixun.joins(user: :user_extension).where(user_extensions: { identity: :teacher, school_id: ids }) diff --git a/lib/tasks/migrate_course_resource.rake b/lib/tasks/migrate_course_resource.rake index d3095c6dd..34d216625 100644 --- a/lib/tasks/migrate_course_resource.rake +++ b/lib/tasks/migrate_course_resource.rake @@ -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 \ No newline at end of file diff --git a/public/react/src/modules/courses/ListPageIndex.js b/public/react/src/modules/courses/ListPageIndex.js index 6198484dd..d787bd9c6 100644 --- a/public/react/src/modules/courses/ListPageIndex.js +++ b/public/react/src/modules/courses/ListPageIndex.js @@ -175,6 +175,9 @@ class ListPageIndex extends Component{ isexcellent:excellent }) } + updatabanners=()=>{ + this.refs.CoursesBanner.updatabanner() + } render() { let {yslGuideone} =this.state; // console.log("98"); @@ -187,7 +190,7 @@ class ListPageIndex extends Component{