Sha256: d80439781b66922aa76e6d6c826b9d83d7b704348f2013201c83eabad95b84cf

Contents?: true

Size: 1.6 KB

Versions: 30

Compression:

Stored size: 1.6 KB

Contents

ActiveAdmin.register ReportResult do
  actions :show

  menu false

  member_action :excel do
    report_result = ReportResult.find(params[:id])

    report   = report_result.report
    result   = report_result.data
    fields   = result.first.keys

    package = Axlsx::Package.new do |p|
      p.workbook.add_worksheet(:name => "Report") do |ws|
        bold = ws.styles.add_style :b => true, :alignment=> {:horizontal => :center}
        ws.add_row fields.map{|x| view_context.localize_report_fields(x)[0]}, :style => bold

        result.each do |r|
          row = []
          fields.each{|f| row << r[f]}
          ws.add_row row
        end
      end
    end

    package.use_shared_strings = true
    send_data package.to_stream.read, :filename => 'report.xlsx',
      :type => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
  end

  #
  # SHOW
  #
  action_item :only => [:show] do
    link_to I18n.t('smartkiosk.admin.actions.report_results.excel'),
      excel_admin_report_result_path(report_result)
  end

  show do
    attributes_table do
      row :rows
      row :report
      row :created_at
    end

    panel I18n.t('smartkiosk.admin.panels.report_results.data') do
      report = report_result.report
      result = report_result.data
      fields = result.first.try(:keys) || []
      table do
        tr do
          fields.each do |field|
            th localize_report_fields(field)[0]
          end
        end
        result.each do |row|
          tr do
            fields.each do |field|
              td row[field]
            end
          end
        end
      end
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
smartkiosk-server-0.11.6 app/admin/report_results.rb
smartkiosk-server-0.11.5 app/admin/report_results.rb
smartkiosk-server-0.11.4 app/admin/report_results.rb
smartkiosk-server-0.11.3 app/admin/report_results.rb
smartkiosk-server-0.11.2 app/admin/report_results.rb
smartkiosk-server-0.11.1 app/admin/report_results.rb
smartkiosk-server-0.11 app/admin/report_results.rb
smartkiosk-server-0.10.19 app/admin/report_results.rb
smartkiosk-server-0.10.18 app/admin/report_results.rb
smartkiosk-server-0.10.17 app/admin/report_results.rb
smartkiosk-server-0.10.16 app/admin/report_results.rb
smartkiosk-server-0.10.15 app/admin/report_results.rb
smartkiosk-server-0.10.14 app/admin/report_results.rb
smartkiosk-server-0.10.13 app/admin/report_results.rb
smartkiosk-server-0.10.12 app/admin/report_results.rb
smartkiosk-server-0.10.11 app/admin/report_results.rb
smartkiosk-server-0.10.10 app/admin/report_results.rb
smartkiosk-server-0.10.9 app/admin/report_results.rb
smartkiosk-server-0.10.8 app/admin/report_results.rb
smartkiosk-server-0.10.7 app/admin/report_results.rb