学生列表导出成绩调整

dev_bj
cxt 6 years ago
parent 3c6848085f
commit cde31b1702

@ -1194,12 +1194,14 @@ class CoursesController < ApplicationController
@exercises = @course.exercises.where("publish_time <= '#{Time.now}'").order("publish_time asc, created_at asc") @exercises = @course.exercises.where("publish_time <= '#{Time.now}'").order("publish_time asc, created_at asc")
@tasks = @course.graduation_tasks.where("publish_time <= '#{Time.now}'").order("publish_time asc, created_at asc") @tasks = @course.graduation_tasks.where("publish_time <= '#{Time.now}'").order("publish_time asc, created_at asc")
=begin
@homeworks.where(:homework_type => 4).each do |homework| @homeworks.where(:homework_type => 4).each do |homework|
items = homework.student_works.where("work_status != 0") items = homework.student_works.where("work_status != 0")
if items.count == 0 && homework.publish_time < Time.now && !@course.is_end if items.count == 0 && homework.publish_time < Time.now && !@course.is_end
update_shixun_work_status homework update_shixun_work_status homework
end end
end end
=end
respond_to do |format| respond_to do |format|
format.xls { format.xls {
@ -2383,12 +2385,13 @@ class CoursesController < ApplicationController
blue = Spreadsheet::Format.new :color => :blue, :weight => :bold, :size => 10 blue = Spreadsheet::Format.new :color => :blue, :weight => :bold, :size => 10
#sheet1.row(0).default_format = blue #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_class),l(:excel_f_score),l(:excel_commit_time)]) #sheet1.row(0).concat([l(:excel_user_id),l(:excel_user_name),l(:excel_nickname),l(:excel_student_id),l(:excel_mail),l(:excel_class),l(:excel_f_score),l(:excel_commit_time)])
teacher_co = (searchTeacherAndAssistant course).map{|member| member.user.show_real_name}.join('、')
sheet1[0,0] = "课程编号" sheet1[0,0] = "课程编号"
sheet1[0,1] = course.id sheet1[0,1] = course.id
sheet1[1,0] = "课程名称" sheet1[1,0] = "课程名称"
sheet1[1,1] = course.name sheet1[1,1] = course.name
sheet1[2,0] = "教师团队" sheet1[2,0] = "教师团队"
sheet1[2,1] = (searchTeacherAndAssistant course).map{|member| member.user.show_real_name}.join('、') sheet1[2,1] = teacher_co
sheet1[3,0] = "主讲教师" sheet1[3,0] = "主讲教师"
sheet1[3,1] = course.teacher.show_real_name sheet1[3,1] = course.teacher.show_real_name
sheet1[4,0] = "排名" sheet1[4,0] = "排名"
@ -2401,16 +2404,16 @@ class CoursesController < ApplicationController
homeworks.where(:homework_type => 4).each do |homework| homeworks.where(:homework_type => 4).each do |homework|
sheet1[4,current_col+=1] = "#{homework.name}" sheet1[4,current_col+=1] = "#{homework.name}"
end end
for i in 0 ... homeworks.where(:homework_type => 1).count for i in 0 ... homeworks.where(:homework_type => 1).size
sheet1[4,current_col+=1] = "普通作业第"+(i+1).to_s+"" sheet1[4,current_col+=1] = "普通作业第"+(i+1).to_s+""
end end
for i in 0 ... homeworks.where(:homework_type => 3).count for i in 0 ... homeworks.where(:homework_type => 3).size
sheet1[4,current_col+=1] = "分组作业第"+(i+1).to_s+"" sheet1[4,current_col+=1] = "分组作业第"+(i+1).to_s+""
end end
for i in 0 ... exercises.count for i in 0 ... exercises.size
sheet1[4,current_col+=1] = "试卷第"+(i+1).to_s+"" sheet1[4,current_col+=1] = "试卷第"+(i+1).to_s+""
end end
for i in 0 ... tasks.count for i in 0 ... tasks.size
sheet1[4,current_col+=1] = "毕设任务第"+(i+1).to_s+"" sheet1[4,current_col+=1] = "毕设任务第"+(i+1).to_s+""
end end
@ -2511,15 +2514,15 @@ class CoursesController < ApplicationController
sheet = book.create_worksheet :name => "分班信息" sheet = book.create_worksheet :name => "分班信息"
sheet.row(0).concat(["课程编号", course.id]) sheet.row(0).concat(["课程编号", course.id])
sheet.row(1).concat(["课程名称", course.name]) sheet.row(1).concat(["课程名称", course.name])
sheet.row(2).concat(["教师团队", (searchTeacherAndAssistant course).map{|member| member.user.show_real_name}.join('、')]) sheet.row(2).concat(["教师团队", teacher_co])
sheet.row(3).concat(["主讲教师", course.teacher.show_real_name]) sheet.row(3).concat(["主讲教师", course.teacher.show_real_name])
sheet.row(4).concat(["序号", "分班名称", "邀请码", "学生数量"]) sheet.row(4).concat(["序号", "分班名称", "邀请码", "学生数量"])
current_row = 5 current_row = 5
course.course_groups.each do |course_group| course.course_groups.includes(:members).each do |course_group|
sheet[current_row,0]= current_row - 4 sheet[current_row,0]= current_row - 4
sheet[current_row,1]= course_group.name sheet[current_row,1]= course_group.name
sheet[current_row,2]= course_group.invite_code sheet[current_row,2]= course_group.invite_code
sheet[current_row,3]= course_group.members.count sheet[current_row,3]= course_group.members.size
current_row += 1 current_row += 1
end end
end end
@ -2530,7 +2533,7 @@ class CoursesController < ApplicationController
sheet2[1,0] = "课程名称" sheet2[1,0] = "课程名称"
sheet2[1,1] = course.name sheet2[1,1] = course.name
sheet2[2,0] = "教师团队" sheet2[2,0] = "教师团队"
sheet2[2,1] = (searchTeacherAndAssistant course).map{|member| member.user.show_real_name}.join('、') sheet2[2,1] = teacher_co
sheet2[3,0] = "主讲教师" sheet2[3,0] = "主讲教师"
sheet2[3,1] = course.teacher.show_real_name sheet2[3,1] = course.teacher.show_real_name
sheet2.row(4).concat(["排名","学生姓名","昵称","学号","分班","作业完成数(*10","试卷完成数(*10","问卷完成数(*7","资源发布数(*5","帖子发布数(*2","帖子回复数(*1","作业回复数(*1","活跃度"]) sheet2.row(4).concat(["排名","学生姓名","昵称","学号","分班","作业完成数(*10","试卷完成数(*10","问卷完成数(*7","资源发布数(*5","帖子发布数(*2","帖子回复数(*1","作业回复数(*1","活跃度"])
@ -2559,14 +2562,14 @@ class CoursesController < ApplicationController
count_row += 1 count_row += 1
end end
homeworks.where(:homework_type => 4).includes(:student_works).each_with_index do |home, i| homeworks.where(:homework_type => 4).includes(:score_student_works).each_with_index do |home, i|
sheet = book.create_worksheet :name => "#{home.name}" sheet = book.create_worksheet :name => "#{home.name}"
sheet[0,0] = "课程编号" sheet[0,0] = "课程编号"
sheet[0,1] = course.id sheet[0,1] = course.id
sheet[1,0] = "课程名称" sheet[1,0] = "课程名称"
sheet[1,1] = course.name sheet[1,1] = course.name
sheet[2,0] = "教师团队" sheet[2,0] = "教师团队"
sheet[2,1] = (searchTeacherAndAssistant course).map{|member| member.user.show_real_name}.join('、') sheet[2,1] = teacher_co
sheet[3,0] = "主讲教师" sheet[3,0] = "主讲教师"
sheet[3,1] = course.teacher.show_real_name sheet[3,1] = course.teacher.show_real_name
sheet[3,0] = "作业批次" sheet[3,0] = "作业批次"
@ -2575,11 +2578,11 @@ class CoursesController < ApplicationController
sheet[3,1] = home.name sheet[3,1] = home.name
sheet.row(4).concat([l(:excel_rank),l(:excel_user_name),l(:excel_nickname),l(:excel_student_id),l(:excel_homework_des),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)]) sheet.row(4).concat([l(:excel_rank),l(:excel_user_name),l(:excel_nickname),l(:excel_student_id),l(:excel_homework_des),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)])
count_row = 5 count_row = 5
items = home.student_works.where("work_status != 0").order("work_score desc") items = home.score_student_works
if items.count == 0 && home.publish_time < Time.now && !course.is_end # if items.count == 0 && home.publish_time < Time.now && !course.is_end
update_shixun_work_status home # update_shixun_work_status home
items = StudentWork.where("work_status != 0 and homework_common_id = #{home.id}").order("work_score desc") # items = StudentWork.where("work_status != 0 and homework_common_id = #{home.id}").order("work_score desc")
end # end
items.each_with_index do |stu, j| items.each_with_index do |stu, j|
sheet[count_row,0]= j + 1 sheet[count_row,0]= j + 1
sheet[count_row,1] = stu.user.show_real_name sheet[count_row,1] = stu.user.show_real_name
@ -2593,14 +2596,14 @@ class CoursesController < ApplicationController
end end
end end
homeworks.where(:homework_type => 1).includes(:student_works).each_with_index do |home, i| homeworks.where(:homework_type => 1).includes(:score_student_works).each_with_index do |home, i|
sheet = book.create_worksheet :name => "普通作业第#{i+1}" sheet = book.create_worksheet :name => "普通作业第#{i+1}"
sheet[0,0] = "课程编号" sheet[0,0] = "课程编号"
sheet[0,1] = course.id sheet[0,1] = course.id
sheet[1,0] = "课程名称" sheet[1,0] = "课程名称"
sheet[1,1] = course.name sheet[1,1] = course.name
sheet[2,0] = "教师团队" sheet[2,0] = "教师团队"
sheet[2,1] = (searchTeacherAndAssistant course).map{|member| member.user.show_real_name}.join('、') sheet[2,1] = teacher_co
sheet[3,0] = "主讲教师" sheet[3,0] = "主讲教师"
sheet[3,1] = course.teacher.show_real_name sheet[3,1] = course.teacher.show_real_name
sheet[3,0] = "作业批次" sheet[3,0] = "作业批次"
@ -2615,7 +2618,7 @@ class CoursesController < ApplicationController
l(:excel_t_score),l(:excel_ta_score),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)]) l(:excel_t_score),l(:excel_ta_score),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)])
end end
count_row = 5 count_row = 5
items = home.student_works.where("work_status != 0").order("work_score desc") items = home.score_student_works
items.each_with_index do |stu, j| items.each_with_index do |stu, j|
sheet[count_row,0]= j + 1 sheet[count_row,0]= j + 1
sheet[count_row,1] = stu.user.show_real_name sheet[count_row,1] = stu.user.show_real_name
@ -2640,14 +2643,14 @@ class CoursesController < ApplicationController
end end
homeworks.where(:homework_type => 3).includes(:student_works).each_with_index do |home, i| homeworks.where(:homework_type => 3).includes(:score_student_works).each_with_index do |home, i|
sheet = book.create_worksheet :name => "分组作业第#{i+1}" sheet = book.create_worksheet :name => "分组作业第#{i+1}"
sheet[0,0] = "课程编号" sheet[0,0] = "课程编号"
sheet[0,1] = course.id sheet[0,1] = course.id
sheet[1,0] = "课程名称" sheet[1,0] = "课程名称"
sheet[1,1] = course.name sheet[1,1] = course.name
sheet[2,0] = "教师团队" sheet[2,0] = "教师团队"
sheet[2,1] = (searchTeacherAndAssistant course).map{|member| member.user.show_real_name}.join('、') sheet[2,1] = teacher_co
sheet[3,0] = "主讲教师" sheet[3,0] = "主讲教师"
sheet[3,1] = course.teacher.show_real_name sheet[3,1] = course.teacher.show_real_name
sheet[3,0] = "作业批次" sheet[3,0] = "作业批次"
@ -2663,7 +2666,7 @@ class CoursesController < ApplicationController
l(:excel_t_score),l(:excel_ta_score),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)]) l(:excel_t_score),l(:excel_ta_score),l(:excel_l_penalty),l(:excel_f_score),l(:excel_commit_time)])
end end
count_row = 5 count_row = 5
items = home.student_works.where("work_status != 0").order("work_score desc") items = home.score_student_works
items.each_with_index do |stu, j| items.each_with_index do |stu, j|
sheet[count_row,0] = j + 1 sheet[count_row,0] = j + 1
sheet[count_row,1] = stu.user.show_real_name sheet[count_row,1] = stu.user.show_real_name
@ -2688,14 +2691,14 @@ class CoursesController < ApplicationController
end end
end end
exercises.each_with_index do |exercise, i| exercises.includes(:score_exercise_users).each_with_index do |exercise, i|
sheet = book.create_worksheet :name => "试卷第#{i+1}" sheet = book.create_worksheet :name => "试卷第#{i+1}"
sheet[0,0] = "课程编号" sheet[0,0] = "课程编号"
sheet[0,1] = course.id sheet[0,1] = course.id
sheet[1,0] = "课程名称" sheet[1,0] = "课程名称"
sheet[1,1] = course.name sheet[1,1] = course.name
sheet[3,0] = "教师团队" sheet[3,0] = "教师团队"
sheet[3,1] = (searchTeacherAndAssistant course).map{|member| member.user.show_real_name}.join('、') sheet[3,1] = teacher_co
sheet[3,0] = "主讲教师" sheet[3,0] = "主讲教师"
sheet[3,1] = course.teacher.show_real_name sheet[3,1] = course.teacher.show_real_name
sheet[3,0] = "试卷批次" sheet[3,0] = "试卷批次"
@ -2705,7 +2708,7 @@ class CoursesController < ApplicationController
sheet.row(4).concat([l(:excel_rank),l(:excel_user_name),l(:excel_nickname),l(:excel_student_id),l(:excel_objective_score),l(:excel_subjective_score),l(:excel_f_score),l(:excel_answer_time)]) sheet.row(4).concat([l(:excel_rank),l(:excel_user_name),l(:excel_nickname),l(:excel_student_id),l(:excel_objective_score),l(:excel_subjective_score),l(:excel_f_score),l(:excel_answer_time)])
count_row = 5 count_row = 5
items = exercise.exercise_users.where("commit_status != 0").order("score desc") items = exercise.score_exercise_users
items.each_with_index do |stu, j| items.each_with_index do |stu, j|
sheet[count_row,0] = j + 1 sheet[count_row,0] = j + 1
sheet[count_row,1] = stu.user.show_real_name sheet[count_row,1] = stu.user.show_real_name
@ -2726,7 +2729,7 @@ class CoursesController < ApplicationController
sheet[1,0] = "课程名称" sheet[1,0] = "课程名称"
sheet[1,1] = course.name sheet[1,1] = course.name
sheet[2,0] = "教师团队" sheet[2,0] = "教师团队"
sheet[2,1] = (searchTeacherAndAssistant course).map{|member| member.user.show_real_name}.join('、') sheet[2,1] = teacher_co
sheet[3,0] = "主讲教师" sheet[3,0] = "主讲教师"
sheet[3,1] = course.teacher.show_real_name sheet[3,1] = course.teacher.show_real_name
sheet[3,0] = "作业批次" sheet[3,0] = "作业批次"

@ -6610,6 +6610,7 @@ def update_shixun_work_status homework
compelete_status = 1 compelete_status = 1
end end
end end
if setting.publish_time && setting.publish_time < Time.now && setting_time.end_time
if setting_time.end_time > Time.now if setting_time.end_time > Time.now
work.update_attributes(:work_status => 1, :late_penalty => 0, :commit_time => myshixun.updated_at, :update_time => myshixun.updated_at, :myshixun_id => myshixun.id, :compelete_status => compelete_status) work.update_attributes(:work_status => 1, :late_penalty => 0, :commit_time => myshixun.updated_at, :update_time => myshixun.updated_at, :myshixun_id => myshixun.id, :compelete_status => compelete_status)
else else
@ -6617,6 +6618,7 @@ def update_shixun_work_status homework
end end
set_shixun_final_score work, homework.homework_detail_manual.answer_open_evaluation, homework_challenge_settings set_shixun_final_score work, homework.homework_detail_manual.answer_open_evaluation, homework_challenge_settings
end end
end
# 更新所有学生的效率分 # 更新所有学生的效率分
update_student_eff_score HomeworkCommon.where(:id => homework.id).first update_student_eff_score HomeworkCommon.where(:id => homework.id).first
=begin =begin

@ -7,6 +7,7 @@ class Exercise < ActiveRecord::Base
has_many :exercise_group_settings, :dependent => :destroy has_many :exercise_group_settings, :dependent => :destroy
has_many :exercise_questions, :dependent => :destroy,:order => "#{ExerciseQuestion.table_name}.question_number" has_many :exercise_questions, :dependent => :destroy,:order => "#{ExerciseQuestion.table_name}.question_number"
has_many :exercise_users, :dependent => :destroy, :conditions => "exercise_users.is_delete = 0" has_many :exercise_users, :dependent => :destroy, :conditions => "exercise_users.is_delete = 0"
has_many :score_exercise_users, :conditions => "exercise_users.is_delete = 0 and commit_status != 0", :order => "exercise_users.score desc"
has_many :users, :through => :exercise_users #该测试被哪些用户提交答案过 has_many :users, :through => :exercise_users #该测试被哪些用户提交答案过
has_many :course_acts, :class_name => 'CourseActivity',:as =>:course_act ,:dependent => :destroy has_many :course_acts, :class_name => 'CourseActivity',:as =>:course_act ,:dependent => :destroy
# 课程消息 # 课程消息

@ -28,6 +28,7 @@ class HomeworkCommon < ActiveRecord::Base
# has_many :homework_tests, :dependent => :destroy # has_many :homework_tests, :dependent => :destroy
# has_many :homework_samples, :dependent => :destroy # has_many :homework_samples, :dependent => :destroy
has_many :student_works, :conditions => "student_works.is_test=0 and student_works.is_delete != 1" has_many :student_works, :conditions => "student_works.is_test=0 and student_works.is_delete != 1"
has_many :score_student_works, :class_name => "StudentWork", :conditions => "student_works.is_test=0 and student_works.is_delete != 1 and work_status != 0", :order => "work_score desc"
has_many :student_works_evaluation_distributions, :through => :student_works #一个作业的分配的匿评列表 has_many :student_works_evaluation_distributions, :through => :student_works #一个作业的分配的匿评列表
has_many :journals_for_messages, :as => :jour, :dependent => :destroy has_many :journals_for_messages, :as => :jour, :dependent => :destroy
has_many :apply_homeworks has_many :apply_homeworks

Loading…
Cancel
Save