@ -157,7 +157,7 @@ class StudentWorkController < ApplicationController
end
def edit
if @homework . homework_type == 2 #编程作业不能修改作业
if ! User . current . admin? && @homework . homework_type == 2 #编程作业不能修改作业
render_403
else
respond_to do | format |
@ -396,6 +396,7 @@ class StudentWorkController < ApplicationController
if student_work_test . result == 0
student_score_count += 1
end
student_work_test . error_msg = params [ :compile_error_msg ]
student_work_test . save!
end
end
@ -444,7 +445,7 @@ class StudentWorkController < ApplicationController
#判断是不是当前作品的提交者
#提交者 && (非匿评作业 || 未开启匿评) 可以编辑作品
def author_of_work
render_403 unless ( User . current . id == @work . user_id || User . current . admin? ) && ( @homework . homework_type != 1 || @homework . homework_detail_manual . comment_status == 1 )
render_403 unless User . current . admin? || ( User . current . id == @work . user_id && @homework . homework_type != 1 || @homework . homework_detail_manual . comment_status == 1 )
end
def teacher_of_course
@ -467,22 +468,60 @@ class StudentWorkController < ApplicationController
sheet1 = book . create_worksheet :name = > " homework "
blue = Spreadsheet :: Format . new :color = > :blue , :weight = > :bold , :size = > 10
sheet1 . row ( 0 ) . default_format = blue
sheet1 . row ( 0 ) . concat ( [ l ( :excel_user_id ) , l ( :excel_user_name ) , l ( :excel_nickname ) , l ( :excel_student_id ) , l ( :excel_mail ) , l ( :excel_homework_name ) ,
l ( :excel_t_score ) , l ( :excel_ta_score ) , l ( :excel_n_score ) , l ( :excel_f_score ) , l ( :excel_commit_time ) ] )
count_row = 1
items . each do | homework |
sheet1 [ count_row , 0 ] = homework . user . id
sheet1 [ count_row , 1 ] = homework . user . lastname . to_s + homework . user . firstname . to_s
sheet1 [ count_row , 2 ] = homework . user . login
sheet1 [ count_row , 3 ] = homework . user . user_extensions . student_id
sheet1 [ count_row , 4 ] = homework . user . mail
sheet1 [ count_row , 5 ] = homework . name
sheet1 [ count_row , 6 ] = homework . teacher_score . nil? ? l ( :label_without_score ) : format ( " %.2f " , homework . teacher_score )
sheet1 [ count_row , 7 ] = homework . teaching_asistant_score . nil? ? l ( :label_without_score ) : format ( " %.2f " , homework . teaching_asistant_score )
sheet1 [ count_row , 8 ] = homework . student_score . nil? ? l ( :label_without_score ) : format ( " %.2f " , homework . student_score )
sheet1 [ count_row , 9 ] = homework . respond_to? ( " score " ) ? homework . score . nil? ? l ( :label_without_score ) : format ( " %.2f " , homework . score ) : l ( :label_without_score )
sheet1 [ count_row , 10 ] = format_time ( homework . created_at )
count_row += 1
if @homework . homework_type == 0 #普通作业
sheet1 . row ( 0 ) . concat ( [ l ( :excel_user_id ) , l ( :excel_user_name ) , l ( :excel_nickname ) , l ( :excel_student_id ) , l ( :excel_mail ) , l ( :excel_homework_name ) ,
l ( :excel_t_score ) , l ( :excel_ta_score ) , l ( :excel_f_score ) , l ( :excel_commit_time ) ] )
count_row = 1
items . each do | homework |
sheet1 [ count_row , 0 ] = homework . user . id
sheet1 [ count_row , 1 ] = homework . user . lastname . to_s + homework . user . firstname . to_s
sheet1 [ count_row , 2 ] = homework . user . login
sheet1 [ count_row , 3 ] = homework . user . user_extensions . student_id
sheet1 [ count_row , 4 ] = homework . user . mail
sheet1 [ count_row , 5 ] = homework . name
sheet1 [ count_row , 6 ] = homework . teacher_score . nil? ? l ( :label_without_score ) : format ( " %.2f " , homework . teacher_score )
sheet1 [ count_row , 7 ] = homework . teaching_asistant_score . nil? ? l ( :label_without_score ) : format ( " %.2f " , homework . teaching_asistant_score )
# sheet1[count_row,8] = homework.student_score.nil? ? l(:label_without_score) : format("%.2f",homework.student_score)
sheet1 [ count_row , 8 ] = homework . respond_to? ( " score " ) ? homework . score . nil? ? l ( :label_without_score ) : format ( " %.2f " , homework . score ) : l ( :label_without_score )
sheet1 [ count_row , 9 ] = format_time ( homework . created_at )
count_row += 1
end
elsif @homework . homework_type == 1 #匿评作业
sheet1 . row ( 0 ) . concat ( [ l ( :excel_user_id ) , l ( :excel_user_name ) , l ( :excel_nickname ) , l ( :excel_student_id ) , l ( :excel_mail ) , l ( :excel_homework_name ) ,
l ( :excel_t_score ) , l ( :excel_ta_score ) , l ( :excel_n_score ) , l ( :excel_f_score ) , l ( :excel_commit_time ) ] )
count_row = 1
items . each do | homework |
sheet1 [ count_row , 0 ] = homework . user . id
sheet1 [ count_row , 1 ] = homework . user . lastname . to_s + homework . user . firstname . to_s
sheet1 [ count_row , 2 ] = homework . user . login
sheet1 [ count_row , 3 ] = homework . user . user_extensions . student_id
sheet1 [ count_row , 4 ] = homework . user . mail
sheet1 [ count_row , 5 ] = homework . name
sheet1 [ count_row , 6 ] = homework . teacher_score . nil? ? l ( :label_without_score ) : format ( " %.2f " , homework . teacher_score )
sheet1 [ count_row , 7 ] = homework . teaching_asistant_score . nil? ? l ( :label_without_score ) : format ( " %.2f " , homework . teaching_asistant_score )
sheet1 [ count_row , 8 ] = homework . student_score . nil? ? l ( :label_without_score ) : format ( " %.2f " , homework . student_score )
sheet1 [ count_row , 9 ] = homework . respond_to? ( " score " ) ? homework . score . nil? ? l ( :label_without_score ) : format ( " %.2f " , homework . score ) : l ( :label_without_score )
sheet1 [ count_row , 10 ] = format_time ( homework . created_at )
count_row += 1
end
elsif @homework . homework_type == 2 #编程作业
sheet1 . row ( 0 ) . concat ( [ l ( :excel_user_id ) , l ( :excel_user_name ) , l ( :excel_nickname ) , l ( :excel_student_id ) , l ( :excel_mail ) , l ( :excel_homework_name ) ,
l ( :excel_t_score ) , l ( :excel_ta_score ) , l ( :excel_s_score ) , l ( :excel_f_score ) , l ( :excel_commit_time ) ] )
count_row = 1
items . each do | homework |
sheet1 [ count_row , 0 ] = homework . user . id
sheet1 [ count_row , 1 ] = homework . user . lastname . to_s + homework . user . firstname . to_s
sheet1 [ count_row , 2 ] = homework . user . login
sheet1 [ count_row , 3 ] = homework . user . user_extensions . student_id
sheet1 [ count_row , 4 ] = homework . user . mail
sheet1 [ count_row , 5 ] = homework . name
sheet1 [ count_row , 6 ] = homework . teacher_score . nil? ? l ( :label_without_score ) : format ( " %.2f " , homework . teacher_score )
sheet1 [ count_row , 7 ] = homework . teaching_asistant_score . nil? ? l ( :label_without_score ) : format ( " %.2f " , homework . teaching_asistant_score )
sheet1 [ count_row , 8 ] = homework . student_score . nil? ? l ( :label_without_score ) : format ( " %.2f " , homework . student_score )
sheet1 [ count_row , 9 ] = homework . respond_to? ( " score " ) ? homework . score . nil? ? l ( :label_without_score ) : format ( " %.2f " , homework . score ) : l ( :label_without_score )
sheet1 [ count_row , 10 ] = format_time ( homework . created_at )
count_row += 1
end
end
book . write xls_report
xls_report . string