From 1a8e35e0b3dc9f91d979abf941f47fe142ba6de0 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 2 Jan 2020 11:36:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AF=95=E4=B8=9A=E8=AE=BE=E8=AE=A1bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/edu_settings_controller.rb | 2 +- .../graduation_topics_controller.rb | 4 ++-- app/controllers/shixuns_controller.rb | 2 +- app/models/course_group.rb | 4 +++- app/models/teacher_course_group.rb | 2 ++ ...02030945_modify_course_group_for_courses.rb | 18 ++++++++++++++++++ 6 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 db/migrate/20200102030945_modify_course_group_for_courses.rb diff --git a/app/controllers/edu_settings_controller.rb b/app/controllers/edu_settings_controller.rb index 6baf38e5b..d3b796da7 100644 --- a/app/controllers/edu_settings_controller.rb +++ b/app/controllers/edu_settings_controller.rb @@ -1,7 +1,7 @@ class EduSettingsController < ApplicationController before_action :require_admin before_action :set_edu_setting, only: [:show, :edit, :update, :destroy] - + skip_before_action :check_sign # GET /edu_settings # GET /edu_settings.json def index diff --git a/app/controllers/graduation_topics_controller.rb b/app/controllers/graduation_topics_controller.rb index 0e6135e8c..de707d7c7 100644 --- a/app/controllers/graduation_topics_controller.rb +++ b/app/controllers/graduation_topics_controller.rb @@ -171,8 +171,8 @@ class GraduationTopicsController < ApplicationController unless teacher_group.present? member = @course.course_members.where(:user_id => @graduation_topic.tea_id).first tip_exception("分班名称不能为空") if params[:course_group_name].blank? - course_group = CourseGroup.create(:name => params[:course_group_name], :course_id => @course.id) - teacher_group = TeacherCourseGroup.create(:course_id => @course.id, :course_member_id => member.try(:id), + course_group = CourseGroup.find_or_create_by!(:name => params[:course_group_name], :course_id => @course.id) + teacher_group = TeacherCourseGroup.find_or_create_by!(:course_id => @course.id, :course_member_id => member.try(:id), :user_id => @graduation_topic.tea_id, :course_group_id => course_group.try(:id)) end diff --git a/app/controllers/shixuns_controller.rb b/app/controllers/shixuns_controller.rb index c641231a6..3de5970b6 100644 --- a/app/controllers/shixuns_controller.rb +++ b/app/controllers/shixuns_controller.rb @@ -892,7 +892,7 @@ class ShixunsController < ApplicationController content = upload_file.tempfile.read author_name = current_user.real_name author_email = current_user.git_mail - update_file_content(content, @repo_path, author_email, author_name, "upload by browser") + update_file_content(content, @repo_path, author_email, author_name, "upload file by browser") render_ok end diff --git a/app/models/course_group.rb b/app/models/course_group.rb index d57edf497..9486c9043 100644 --- a/app/models/course_group.rb +++ b/app/models/course_group.rb @@ -2,13 +2,15 @@ class CourseGroup < ApplicationRecord default_scope { order("course_groups.position ASC") } belongs_to :course, counter_cache: true has_many :course_members - has_many :exercise_group_settings,:dependent => :destroy has_many :attachment_group_settings, :dependent => :destroy has_many :homework_group_reviews, :dependent => :destroy + has_many :teacher_course_groups, :dependent => :destroy + has_many :homework_group_settings, :dependent => :destroy scope :by_group_ids, lambda { |ids| where(id: ids)} validates :name, length: { maximum: 60 } + validates_uniqueness_of :name, scope: :course_id, message: "不能创建相同名称的分班" after_create :generate_invite_code diff --git a/app/models/teacher_course_group.rb b/app/models/teacher_course_group.rb index fbf9849ac..769026366 100644 --- a/app/models/teacher_course_group.rb +++ b/app/models/teacher_course_group.rb @@ -8,6 +8,8 @@ class TeacherCourseGroup < ApplicationRecord scope :find_teacher_group_ids, lambda { |ids| where(course_group_id: ids) unless ids.blank?} scope :get_user_groups,lambda {|ids| where(user_id:ids)} + validates_uniqueness_of :course_group_id, scope: :course_member_id + def course_members self.course_group.course_members end diff --git a/db/migrate/20200102030945_modify_course_group_for_courses.rb b/db/migrate/20200102030945_modify_course_group_for_courses.rb new file mode 100644 index 000000000..f613023c8 --- /dev/null +++ b/db/migrate/20200102030945_modify_course_group_for_courses.rb @@ -0,0 +1,18 @@ +class ModifyCourseGroupForCourses < ActiveRecord::Migration[5.2] + def change + groups = CourseGroup.where(course_id:3128).order("created_at desc").group(:name) + ActiveRecord::Base.transaction do + groups.each do |g| + CourseGroup.where(name: g.name).where.not(id: g.id).each do |cg| + cg.course_members.update_all(course_group_id: g.id) + cg.exercise_group_settings.update_all(course_group_id: g.id) + cg.attachment_group_settings.update_all(course_group_id: g.id) + cg.homework_group_reviews.update_all(course_group_id: g.id) + cg.homework_group_settings.update_all(course_group_id: g.id) + cg.teacher_course_groups.update_all(course_group_id: g.id) + cg.destory! + end + end + end + end +end