From 61e1f0fa528a72e636a2f1a768b5fdfc3d58f564 Mon Sep 17 00:00:00 2001 From: z9hang Date: Mon, 29 Dec 2014 17:44:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E4=BD=9C=E5=93=81=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_attach_controller.rb | 22 +++++++++++++++++++ app/views/bids/_homework_list.html.erb | 5 ----- .../homework_attach/_homeworks_list.html.erb | 6 +++++ 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/app/controllers/homework_attach_controller.rb b/app/controllers/homework_attach_controller.rb index 5c4542944..c2ba1654b 100644 --- a/app/controllers/homework_attach_controller.rb +++ b/app/controllers/homework_attach_controller.rb @@ -55,7 +55,29 @@ class HomeworkAttachController < ApplicationController @direction = direction == 'asc'? 'desc' : 'asc' respond_to do |format| format.js + format.csv { + send_data(homework_to_csv(all_homework_list), :type => 'text/csv; header=present', :filename => 'issues.csv') + } + end + end + + def homework_to_csv items + encoding = l(:general_csv_encoding) + columns = ["student_id","user_name","login","student_num","mail","work_name","teacher_score","ni_score","commit_time"] + + + export = FCSV.generate(:col_sep => l(:general_csv_separator)) do |csv| + # csv header fields + csv << columns.collect {|c| Redmine::CodesetUtil.from_utf8(c, encoding) } + # csv lines + items.each do |homework| + csv << [homework.user.id,Redmine::CodesetUtil.from_utf8(homework.user.lastname.to_s + homework.user.firstname.to_s, encoding),Redmine::CodesetUtil.from_utf8(homework.user.login, encoding), + Redmine::CodesetUtil.from_utf8(homework.user.user_extensions.student_id, encoding),Redmine::CodesetUtil.from_utf8(homework.user.mail, encoding),Redmine::CodesetUtil.from_utf8(homework.name, encoding), + Redmine::CodesetUtil.from_utf8((homework.t_score.nil? || (homework.t_score && homework.t_score.to_i == 0)) ? l(:label_without_score) : format("%.2f",homework.t_score), encoding), + Redmine::CodesetUtil.from_utf8( homework.s_score.nil? ? l(:label_without_score) : format("%.2f",homework.s_score), encoding),Redmine::CodesetUtil.from_utf8(format_time(homework.created_at), encoding)] + end end + export end #获取所有作业列表 diff --git a/app/views/bids/_homework_list.html.erb b/app/views/bids/_homework_list.html.erb index ea1f9b770..202a2ee91 100644 --- a/app/views/bids/_homework_list.html.erb +++ b/app/views/bids/_homework_list.html.erb @@ -62,11 +62,6 @@ :is_student_batch_homework => @is_student_batch_homework}%> - <% if @is_teacher %> - - <% end %>
diff --git a/app/views/homework_attach/_homeworks_list.html.erb b/app/views/homework_attach/_homeworks_list.html.erb index 8ef696e0c..6ada00bb9 100644 --- a/app/views/homework_attach/_homeworks_list.html.erb +++ b/app/views/homework_attach/_homeworks_list.html.erb @@ -63,4 +63,10 @@ <%= anonymous_comment_notice(@bid, @bid.courses.first) %> + <% other_formats_links do |f| %> + <%= f.link_to 'CSV', :url => params %> + <% end %> + <% end %>