Sha256: ad34d3108199df93819e7212c187574e9d8fe9abf234271e6fcc185caca2ef89

Contents?: true

Size: 1.09 KB

Versions: 3

Compression:

Stored size: 1.09 KB

Contents

class StatisticsController < ApplicationController
  
  skip_authorization_check only: [:index, :show]
  
  def index
    authorize! :index, :statistics
    
    @list_presets = [
      'corporation_joining_statistics', 'aktivitates_join_and_persist_statistics'
    ]
  end
  
  def show
    authorize! :read, :statistics
    
    @list_preset = params[:list] || raise('no list preset given. use parameter "list".')
    
    case @list_preset
    when 'corporation_joining_statistics'
      @list_export = ListExport.new(Group.corporations_parent, 'join_statistics')
    when 'aktivitates_join_and_persist_statistics'
      @list_export = ListExport.new(Group.alle_aktiven, 'join_and_persist_statistics')
    else
      raise "statistics preset unknown: #{@list_preset}."
    end

    respond_to do |format|
      format.html  # render view
      format.csv do
        authorize! :export, :statistics
        
        bom = "\xEF\xBB\xBF".force_encoding('utf-8') # UTF-8
        send_data (bom + @list_export.to_csv), filename: ("#{t @list_preset} #{Time.zone.now}".parameterize + ".csv")
      end
    end
  end
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
your_platform-1.0.1 app/controllers/statistics_controller.rb
your_platform-1.0.0 app/controllers/statistics_controller.rb
your_platform-0.0.2 app/controllers/statistics_controller.rb