@ -68,7 +68,7 @@ class StudentWorksController < ApplicationController
begin
begin
work = @homework . student_works . find_by! ( user_id : params [ :user_id ] )
work = @homework . student_works . find_by! ( user_id : params [ :user_id ] )
tip_exception ( " 只有组长才能删除组员 " ) if work . commit_user_id != current_user . id
tip_exception ( " 只有组长才能删除组员 " ) if work . commit_user_id != current_user . id
work . update_attributes ( description : nil , project_id : 0 ,
work . update_attributes ! ( description : nil , project_id : 0 ,
late_penalty : 0 , work_status : 0 ,
late_penalty : 0 , work_status : 0 ,
commit_time : nil , update_time : nil , group_id : 0 ,
commit_time : nil , update_time : nil , group_id : 0 ,
commit_user_id : nil , final_score : nil , work_score : nil , teacher_score : nil , teaching_asistant_score : nil )
commit_user_id : nil , final_score : nil , work_score : nil , teacher_score : nil , teaching_asistant_score : nil )
@ -112,7 +112,7 @@ class StudentWorksController < ApplicationController
student_ids += members
student_ids += members
for i in 0 .. members . count - 1
for i in 0 .. members . count - 1
stu_work = @homework . student_works . find_or_initialize_by ( user_id : members [ i ] . to_i )
stu_work = @homework . student_works . find_or_initialize_by ( user_id : members [ i ] . to_i )
stu_work . update_attributes ( user_id : members [ i ] . to_i , description : student_work . description ,
stu_work . update_attributes ! ( user_id : members [ i ] . to_i , description : student_work . description ,
homework_common_id : @homework . id , project_id : student_work . project_id ,
homework_common_id : @homework . id , project_id : student_work . project_id ,
late_penalty : student_work . late_penalty , work_status : student_work . work_status ,
late_penalty : student_work . late_penalty , work_status : student_work . work_status ,
commit_time : Time . now , update_time : Time . now , group_id : student_work . group_id ,
commit_time : Time . now , update_time : Time . now , group_id : student_work . group_id ,
@ -177,7 +177,7 @@ class StudentWorksController < ApplicationController
# 原成员更新描述、更新时间以及附件
# 原成员更新描述、更新时间以及附件
@homework . student_works . where ( group_id : @work . group_id , user_id : ( work_user_ids & params_user_ids ) ) . each do | work |
@homework . student_works . where ( group_id : @work . group_id , user_id : ( work_user_ids & params_user_ids ) ) . each do | work |
# work.update_attributes(update_time: Time.now, description: @work.description, commit_user_id: current_user.id)
# work.update_attributes(update_time: Time.now, description: @work.description, commit_user_id: current_user.id)
work . update_attributes ( update_time : Time . now , description : @work . description , update_user_id : current_user . id )
work . update_attributes ! ( update_time : Time . now , description : @work . description , update_user_id : current_user . id )
work . attachments . destroy_all
work . attachments . destroy_all
@work . attachments . each do | attachment |
@work . attachments . each do | attachment |
att = attachment . copy
att = attachment . copy
@ -202,7 +202,7 @@ class StudentWorksController < ApplicationController
# 新增加的成员
# 新增加的成员
( params_user_ids - work_user_ids ) . each do | user_id |
( params_user_ids - work_user_ids ) . each do | user_id |
stu_work = @homework . student_works . find_or_initialize_by ( user_id : user_id )
stu_work = @homework . student_works . find_or_initialize_by ( user_id : user_id )
stu_work . update_attributes ( user_id : user_id , description : @work . description , homework_common_id : @homework . id ,
stu_work . update_attributes ! ( user_id : user_id , description : @work . description , homework_common_id : @homework . id ,
project_id : @work . project_id , late_penalty : @work . late_penalty ,
project_id : @work . project_id , late_penalty : @work . late_penalty ,
work_status : @work . work_status , commit_time : Time . now , update_time : Time . now ,
work_status : @work . work_status , commit_time : Time . now , update_time : Time . now ,
group_id : @work . group_id , commit_user_id : @work . commit_user_id , update_user_id : current_user . id )
group_id : @work . group_id , commit_user_id : @work . commit_user_id , update_user_id : current_user . id )
@ -257,14 +257,14 @@ class StudentWorksController < ApplicationController
work = @homework . student_works . find_or_create_by ( user_id : current_user . id )
work = @homework . student_works . find_or_create_by ( user_id : current_user . id )
if work . work_status == 0 && work . project_id == 0
if work . work_status == 0 && work . project_id == 0
work . update_attributes ( project_id : project . id , update_time : Time . now )
work . update_attributes ! ( project_id : project . id , update_time : Time . now )
# 将老师加入项目
# 将老师加入项目
project_member = project . members . find_by_user_id ( @homework . user_id )
project_member = project . members . find_by_user_id ( @homework . user_id )
if project_member . present?
if project_member . present?
project_member . member_roles . take . update_attributes ( role_id : 3 ) if project_member . member_roles . take . present?
project_member . member_roles . take . update_attributes ! ( role_id : 3 ) if project_member . member_roles . take . present?
else
else
member = Member . create ( user_id : @homework . user_id , project_id : project . id )
member = Member . create ! ( user_id : @homework . user_id , project_id : project . id )
member . member_roles << MemberRole . new ( role_id : 3 )
member . member_roles << MemberRole . new ( role_id : 3 )
Tiding . create ( user_id : @homework . user_id , trigger_user_id : current_user . id , container_id : project . id ,
Tiding . create ( user_id : @homework . user_id , trigger_user_id : current_user . id , container_id : project . id ,
container_type : 'ManagerJoinProject' , belong_container_id : project . id ,
container_type : 'ManagerJoinProject' , belong_container_id : project . id ,
@ -295,7 +295,7 @@ class StudentWorksController < ApplicationController
Tiding . where ( user_id : @homework . user_id , trigger_user_id : current_user . id , container_id : work . project . id ,
Tiding . where ( user_id : @homework . user_id , trigger_user_id : current_user . id , container_id : work . project . id ,
container_type : 'ManagerJoinProject' ) . destroy_all
container_type : 'ManagerJoinProject' ) . destroy_all
work . update_attributes ( project_id : 0 )
work . update_attributes ! ( project_id : 0 )
normal_status ( 0 , " 取消关联成功 " )
normal_status ( 0 , " 取消关联成功 " )
rescue Exception = > e
rescue Exception = > e
@ -329,9 +329,9 @@ class StudentWorksController < ApplicationController
# end
# end
Attachment . associate_container ( params [ :attachment_ids ] , @work . id , @work . class , 7 )
Attachment . associate_container ( params [ :attachment_ids ] , @work . id , @work . class , 7 )
revise_attachment = Attachment . where ( attachtype : 7 , container_id : @work . id , container_type : " StudentWork " ) . last
revise_attachment = Attachment . where ( attachtype : 7 , container_id : @work . id , container_type : " StudentWork " ) . last
revise_attachment . update_attributes ( description : params [ :description ] ) if revise_attachment . present?
revise_attachment . update_attributes ! ( description : params [ :description ] ) if revise_attachment . present?
@work . update_attributes ( update_time : Time . now )
@work . update_attributes ! ( update_time : Time . now )
# 补交附件时给评阅过作品的教师、助教发消息
# 补交附件时给评阅过作品的教师、助教发消息
unless @work . student_works_scores . where . not ( score : nil ) . where ( reviewer_role : [ 1 , 2 ] ) . pluck ( :user_id ) . uniq . blank?
unless @work . student_works_scores . where . not ( score : nil ) . where ( reviewer_role : [ 1 , 2 ] ) . pluck ( :user_id ) . uniq . blank?
@ -376,9 +376,9 @@ class StudentWorksController < ApplicationController
# 如果作品是未提交的状态则更新为已提交
# 如果作品是未提交的状态则更新为已提交
if @user_course_identity < Course :: STUDENT && ! new_score . score . nil? && @work . work_status == 0
if @user_course_identity < Course :: STUDENT && ! new_score . score . nil? && @work . work_status == 0
@work . update_attributes ( work_status : 1 , commit_time : Time . now )
@work . update_attributes ! ( work_status : 1 , commit_time : Time . now )
# 分组作业更新分组id
# 分组作业更新分组id
@work . update_attributes ( group_id : @homework . max_group_id ) if @homework . homework_type == " group "
@work . update_attributes ! ( group_id : @homework . max_group_id ) if @homework . homework_type == " group "
end
end
new_score . reviewer_role = reviewer_role
new_score . reviewer_role = reviewer_role
@ -442,7 +442,7 @@ class StudentWorksController < ApplicationController
# 实训作品的总结
# 实训作品的总结
def update_des
def update_des
@work . update_attributes ( des_params )
@work . update_attributes ! ( des_params )
tip_exception ( 0 , " 提交成功 " )
tip_exception ( 0 , " 提交成功 " )
end
end
@ -590,7 +590,7 @@ class StudentWorksController < ApplicationController
begin
begin
score = @work . student_works_scores . find_by! ( id : params [ :score_id ] )
score = @work . student_works_scores . find_by! ( id : params [ :score_id ] )
jour = score . journals_for_messages . new ( user_id : current_user . id , notes : params [ :comment ] , reply_id : score . user_id )
jour = score . journals_for_messages . new ( user_id : current_user . id , notes : params [ :comment ] , reply_id : score . user_id )
jour . save
jour . save !
normal_status ( 0 , " 回复成功 " )
normal_status ( 0 , " 回复成功 " )
rescue Exception = > e
rescue Exception = > e
uid_logger ( e . message )
uid_logger ( e . message )
@ -624,7 +624,7 @@ class StudentWorksController < ApplicationController
score_appeal = nil
score_appeal = nil
ActiveRecord :: Base . transaction do
ActiveRecord :: Base . transaction do
begin
begin
score . update_attributes ( appeal_status : 1 )
score . update_attributes ! ( appeal_status : 1 )
score_appeal = StudentWorksScoresAppeal . create! ( user_id : current_user . id , student_works_score_id : score . id ,
score_appeal = StudentWorksScoresAppeal . create! ( user_id : current_user . id , student_works_score_id : score . id ,
comment : params [ :comment ] , appeal_status : 1 )
comment : params [ :comment ] , appeal_status : 1 )
@ -645,9 +645,9 @@ class StudentWorksController < ApplicationController
if score . present? && score . appeal_status == 1
if score . present? && score . appeal_status == 1
ActiveRecord :: Base . transaction do
ActiveRecord :: Base . transaction do
begin
begin
score . update_attributes ( appeal_status : 2 )
score . update_attributes ! ( appeal_status : 2 )
score_appeal = score . student_works_scores_appeal
score_appeal = score . student_works_scores_appeal
score_appeal . update_attributes ( appeal_status : 2 )
score_appeal . update_attributes ! ( appeal_status : 2 )
score_appeal . tidings . destroy_all
score_appeal . tidings . destroy_all
normal_status ( 0 , " 撤销成功 " )
normal_status ( 0 , " 撤销成功 " )
rescue Exception = > e
rescue Exception = > e
@ -670,18 +670,18 @@ class StudentWorksController < ApplicationController
ActiveRecord :: Base . transaction do
ActiveRecord :: Base . transaction do
begin
begin
# 更新appeal_status的值
# 更新appeal_status的值
score . update_attributes ( appeal_status : params [ :status ] . to_i )
score . update_attributes ! ( appeal_status : params [ :status ] . to_i )
score_appeal = score . student_works_scores_appeal
score_appeal = score . student_works_scores_appeal
score_appeal . update_attributes ( appeal_status : params [ :status ] . to_i )
score_appeal . update_attributes ! ( appeal_status : params [ :status ] . to_i )
score_appeal . tidings . update_all ( status : 1 )
score_appeal . tidings . update_all ( status : 1 )
if params [ :status ] . to_i == 3
if params [ :status ] . to_i == 3
# 申诉成功后该评分失效
# 申诉成功后该评分失效
score . update_attributes ( is_invalid : 1 )
score . update_attributes ! ( is_invalid : 1 )
# 申诉成功后 扣匿评学生的违规匿评扣分
# 申诉成功后 扣匿评学生的违规匿评扣分
sw = @homework . student_works . find_by ( user_id : score . user_id )
sw = @homework . student_works . find_by ( user_id : score . user_id )
sw . update_attribute ( " appeal_penalty " , @homework . homework_detail_manual . appeal_penalty + sw . appeal_penalty ) if sw . present?
sw . update_attribute s!( appeal_penalty : @homework . homework_detail_manual . appeal_penalty + sw . appeal_penalty ) if sw . present?
# 申诉成功 重新计算申诉者的匿评分
# 申诉成功 重新计算申诉者的匿评分
if @work . student_works_scores . where ( " reviewer_role = 3 AND appeal_status != 3 " ) . count > 0
if @work . student_works_scores . where ( " reviewer_role = 3 AND appeal_status != 3 " ) . count > 0
@ -689,7 +689,7 @@ class StudentWorksController < ApplicationController
else
else
@work . student_score = nil
@work . student_score = nil
end
end
@work . save
@work . save !
end
end
# todo tiding
# todo tiding
@ -737,7 +737,7 @@ class StudentWorksController < ApplicationController
else
else
comment = " 根据实训报告中最终提交的代码调整第 #{ challenge . position } 关分数 "
comment = " 根据实训报告中最终提交的代码调整第 #{ challenge . position } 关分数 "
end
end
challenge_score = @work . challenge_work_scores . create ( challenge_id : params [ :challenge_id ] , user_id : current_user . id , score : params [ :score ] ,
challenge_score = @work . challenge_work_scores . create ! ( challenge_id : params [ :challenge_id ] , user_id : current_user . id , score : params [ :score ] ,
comment : comment )
comment : comment )
challenge_score . create_tiding current_user . id
challenge_score . create_tiding current_user . id
if @work . work_status != 0 && @work . myshixun
if @work . work_status != 0 && @work . myshixun
@ -862,7 +862,7 @@ class StudentWorksController < ApplicationController
else
else
st_work . student_score = student_work . student_score
st_work . student_score = student_work . student_score
end
end
st_work . save
st_work . save !
Tiding . create ( user_id : st_work . user_id , trigger_user_id : current_user . id , container_id : st_score . id ,
Tiding . create ( user_id : st_work . user_id , trigger_user_id : current_user . id , container_id : st_score . id ,
container_type : " StudentWorksScore " , parent_container_id : st_work . id , parent_container_type : " StudentWork " ,
container_type : " StudentWorksScore " , parent_container_id : st_work . id , parent_container_type : " StudentWork " ,