parent
007aa00174
commit
e4046851cf
@ -0,0 +1,119 @@
|
||||
#encoding=UTF-8
|
||||
class AboutHomework < ActiveRecord::Migration
|
||||
def up
|
||||
Bid.where("reward_type = 3").each do |bid|
|
||||
transaction do
|
||||
if bid.courses.first
|
||||
# 作品基础属性
|
||||
homework = HomeworkCommon.new
|
||||
homework.name = bid.name
|
||||
homework.description = bid.description
|
||||
homework.user_id = bid.author_id
|
||||
homework.end_time = bid.deadline
|
||||
homework.publish_time = bid.deadline
|
||||
bid.open_anonymous_evaluation == 1 ? homework.homework_type = 1 : homework.homework_type = 0
|
||||
homework.late_penalty = 0
|
||||
homework.course_id = bid.courses.first.id
|
||||
homework.created_at = bid.created_on
|
||||
homework.updated_at = bid.updated_on
|
||||
homework.save
|
||||
|
||||
#作业附件
|
||||
bid.attachments.each do |attach|
|
||||
attach.container = homework
|
||||
attach.save
|
||||
end
|
||||
|
||||
# 匿评作业相关属性
|
||||
homework_detail_manual = HomeworkDetailManual.new
|
||||
homework_detail_manual.ta_proportion = 0.6
|
||||
homework_detail_manual.comment_status = bid.comment_status + 1
|
||||
homework_detail_manual.evaluation_start = bid.created_on
|
||||
homework_detail_manual.evaluation_end = bid.created_on
|
||||
homework_detail_manual.evaluation_num = bid.evaluation_num
|
||||
homework_detail_manual.absence_penalty = 0
|
||||
homework_detail_manual.homework_common = homework
|
||||
homework_detail_manual.save
|
||||
|
||||
#作品列表
|
||||
bid.homeworks.each do |homework_attach|
|
||||
student_work = StudentWork.new
|
||||
student_work.name = homework_attach.name
|
||||
student_work.description = homework_attach.description
|
||||
student_work.user_id = homework_attach.user_id
|
||||
student_work.project_id = homework_attach.project_id
|
||||
student_work.homework_common = homework
|
||||
student_work.save
|
||||
|
||||
#作品文件
|
||||
homework_attach.attachments.each do |attach|
|
||||
attach.container = student_work
|
||||
attach.save
|
||||
end
|
||||
|
||||
#作品匿评列表
|
||||
homework_attach.homework_evaluations.each do |homework_evaluation|
|
||||
student_work_evaluation = StudentWorksEvaluationDistribution.new
|
||||
student_work_evaluation.user_id = homework_evaluation.user_id
|
||||
student_work_evaluation.student_work = student_work
|
||||
student_work_evaluation.save
|
||||
end
|
||||
|
||||
#评分评论相关
|
||||
stars_reates = homework_attach.rates(:quality)
|
||||
if stars_reates
|
||||
stars_reates.each do |reate|
|
||||
student_work_score = StudentWorksScore.new
|
||||
student_work_score.user_id = reate.rater_id
|
||||
student_work_score.score = reate.stars * 20
|
||||
student_work_score.student_work = student_work
|
||||
rater = User.find reate.rater_id
|
||||
if rater
|
||||
member = rater.members.where("course_id = ?",bid.courses.first.id).first
|
||||
if member
|
||||
role = member.roles.first.name
|
||||
case role
|
||||
when "Teacher"
|
||||
student_work_score.reviewer_role = 1
|
||||
when "Manager"
|
||||
student_work_score.reviewer_role = 1
|
||||
when "TeachingAsistant"
|
||||
student_work_score.reviewer_role = 2
|
||||
when "Student"
|
||||
student_work_score.reviewer_role = 3
|
||||
end
|
||||
else
|
||||
student_work_score.reviewer_role = 3
|
||||
end
|
||||
else
|
||||
student_work_score.reviewer_role = 3
|
||||
end
|
||||
|
||||
jour = homework_attach.journals_for_messages.where("is_comprehensive_evaluation = 1 and user_id = #{reate.rater_id}").order("created_on DESC").first
|
||||
if jour
|
||||
student_work_score.comment = jour.notes
|
||||
student_work_score.save
|
||||
#老师反馈附件
|
||||
homework_attach.attachments.each do |attach|
|
||||
attach.container = student_work_score
|
||||
attach.save
|
||||
end
|
||||
else
|
||||
student_work_score.save
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
HomeworkCommon.destroy_all
|
||||
HomeworkDetailManual.destroy_all
|
||||
StudentWork.destroy_all
|
||||
StudentWorksScore.destroy_all
|
||||
StudentWorksEvaluationDistribution.destroy_all
|
||||
end
|
||||
end
|
Loading…
Reference in new issue