app/views/points/index.csv.erb
<% require 'csv' %>
<%= CSV.generate(:force_quotes => true) do |csv|
arr = []
arr << :id if can?(:teach, @course)
arr += @user_fields.map(&:label) if @user_fields
arr << :email if can?(:teach, @course)
arr << :username if can?(:teach, @course) && params[:include_username]
arr += @summary[:sheets].map {|sheet| sheet[:name] } + ["Total"]
csv << arr
@summary[:users].each do |user|
points = @summary[:sheets].map do |sheet|
@summary[:awarded_for_user_and_sheet][user.login][sheet[:name]].to_i
end
total = @summary[:total_for_user][user.login].to_i
arr = []
arr << user.id if can?(:teach, @course)
if @user_fields
@user_fields.each do |field|
user_field_value = user.user_field_values.find { |o| o.field_name == field.name }
arr << (user_field_value ? user_field_value.value : '')
end
end
arr << user.email if can?(:teach, @course)
arr << user.login if can?(:teach, @course) && params[:include_username]
arr += points + [total]
csv << arr
end
end.html_safe %>