From 5251ab9ca29f71bf55e9c430d6439d8d1998549d Mon Sep 17 00:00:00 2001 From: cxt Date: Thu, 12 Jan 2017 17:27:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BA=E7=8F=AD=E7=BA=A7=E6=96=B0=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=9A=84=E5=AD=A6=E7=94=9F=E5=88=9B=E5=BB=BA=E5=B7=B2?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E4=BD=9C=E4=B8=9A=E7=9A=84=E4=BD=9C=E5=93=81?= =?UTF-8?q?=EF=BC=8C=E7=8A=B6=E6=80=81=E4=B8=BA=E6=9C=AA=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/students_for_course.rb | 13 +++++++++- .../20170112072122_add_student_work_data.rb | 26 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20170112072122_add_student_work_data.rb diff --git a/app/models/students_for_course.rb b/app/models/students_for_course.rb index d9bf96770..8e7026912 100644 --- a/app/models/students_for_course.rb +++ b/app/models/students_for_course.rb @@ -1,3 +1,4 @@ +#encoding: utf-8 class StudentsForCourse < ActiveRecord::Base attr_accessible :course_id, :student_id @@ -9,7 +10,7 @@ class StudentsForCourse < ActiveRecord::Base validates_uniqueness_of :student_id, :scope => :course_id after_destroy :delete_student_works - after_create :recovery_student_works + after_create :recovery_student_works, :create_student_works #退出班级或删除学生时隐藏学生的作品 def delete_student_works @@ -26,4 +27,14 @@ class StudentsForCourse < ActiveRecord::Base student_works = StudentWork.where("user_id = #{self.student_id} && homework_common_id in #{homework_ids}") student_works.update_all(:is_delete => 0) end + + #加入班级时创建已发布作业的作品 + def create_student_works + course = self.course + course.homework_commons.each do |hw| + if hw.homework_type != 3 && hw.student_works.where("user_id = #{self.student_id}").count == 0 + hw.student_works << StudentWork.new(:user_id => self.student_id, :name => hw.name.to_s+"的作品提交", :work_status => 0) + end + end + end end diff --git a/db/migrate/20170112072122_add_student_work_data.rb b/db/migrate/20170112072122_add_student_work_data.rb new file mode 100644 index 000000000..24f966d03 --- /dev/null +++ b/db/migrate/20170112072122_add_student_work_data.rb @@ -0,0 +1,26 @@ +#encoding: utf-8 +class AddStudentWorkData < ActiveRecord::Migration + def up + count = Course.all.count / 30 + 2 + transaction do + for i in 1 .. count do i + Course.page(i).per(30).each do |course| + begin + course.student.each do |student| + course.homework_commons.each do |hw| + if hw.homework_type != 3 && hw.student_works.where("user_id = #{student.student_id}").count == 0 + hw.student_works << StudentWork.new(:user_id => student.student_id, :name => hw.name.to_s+"的作品提交", :work_status => 0) + end + end + end + rescue Exception => e + logger.error "[AddStudentWorkData] ===> #{e}" + end + end + end + end + end + + def down + end +end