testmycode/tmc-server

View on GitHub
app/views/points/index.csv.erb

Summary

Maintainability
Test Coverage
<% 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 %>