af83/chouette-core

View on GitHub
lib/tasks/stats.rake

Summary

Maintainability
Test Coverage

namespace :stats do
  desc "send stats"
  task :send  => :environment  do
    puts "Send stats"

    File.open('/tmp/stats_users.csv','w') do |s|
      User.order(:id).each { |u| s.puts "#{u.id},#{u.organisation.name},#{u.name},#{u.email},#{u.sign_in_count},#{u.last_sign_in_at}"}
    end

    File.open('/tmp/stats_organisations.csv','w') do |s|
      Organisation.all.each { |o| s.puts "#{o.name},#{o.users.inject(0){ |memo, u| memo = memo + u.sign_in_count}},#{o.users.count}"}
    end

    File.open('/tmp/stats_counts.csv','w') do |s|
      [Organisation, User, Referential, Export, ImportTask].each do |class_for_stat|
        stats = []
        stats << class_for_stat.all.select {|o| o.created_at.month==12 && o.created_at.year==2013}.count
        1.upto(12) do |i|
          stats << class_for_stat.all.select {|o| o.created_at.month==i && o.created_at.year==2014}.count
        end
        1.upto(12) do |i|
          stats << class_for_stat.all.select {|o| o.created_at.month==i && o.created_at.year==2015}.count
        end
        s.puts stats.join(",")
      end
    end

 #   m = ActionMailer::Base.mail(:to => "mflorisson@cityway.fr",
 #                               :from => "jdleca@cityway.fr",
 #                               :subject=>"Chouette stats",
 #                               :content_type=>"multipart/mixed")
 #   m.attachments['stats.csv'] = File.read("/tmp/stats.csv")
 #   m.deliver

    puts "Send stats complete"
  end
end