Commit 2ac0a19bbfa5aa5728d23f925f57f7129cb37e9c

Authored by Leandro Santos
1 parent c11ebee2
Exists in master

put the report to generate noosfero files

controllers/myprofile/dialoga_plugin_myprofile_controller.rb
... ... @@ -4,7 +4,7 @@ class DialogaPluginMyprofileController < MyProfileController
4 4  
5 5 def send_report
6 6 path = File.join(Rails.root,'plugins','dialoga','script')
7   - scripts = ['sent_event_report', 'sent_proposal_report']
  7 + scripts = ['sent_event_report', 'sent_ranking', 'sent_proposal_report']
8 8 scripts.map do |script|
9 9 cmd = File.join(path,script) + ' ' + current_person.email.to_s
10 10 fork {IO.popen(cmd).read}
... ...
script/sent_event_report
1 1 #!/usr/bin/env ruby
2 2 # encoding: UTF-8
3   -require_relative '../../../config/environment'
  3 +include ActionDispatch::TestProcess
4 4  
5 5 puts 'Iniciando script eventos'
6 6  
7   -directory = File.join(Rails.root,'data')
8   -Dir.mkdir(directory) unless File.exists?(directory)
  7 +filebasepath = '/tmp/'
9 8  
10   -file = File.open(File.join(directory,'event.csv'), 'w+')
  9 +dialoga = Community['dialoga']
  10 +root_report_folder = dialoga.folders.where(:slug => 'relatorios').first
  11 +root_report_folder ||= Folder.create!(:profile => dialoga, :name => 'Relatorios')
  12 +
  13 +report_folder = Folder.find_by_slug(DateTime.now.strftime('%Y-%m-%d'))
  14 +report_folder ||= Folder.create!(:profile => dialoga, :name => DateTime.now.strftime('%Y-%m-%d'), :parent => root_report_folder)
11 15  
12 16 events = Event.all
13 17 events.map do |event|
  18 + filepath = filebasepath + DateTime.now.strftime('%Y-%m-%d-%H-%m-%S') + '-' + event.slug
  19 + file = File.open(File.join(filepath), 'w+')
14 20 file.write(event.name+ "\n")
15 21 header = "'Nome';'Email'\n"
16 22 file.write(header)
... ... @@ -24,7 +30,8 @@ events.map do |event|
24 30 file.write(info.map{|i| "'" + i.to_s + "'"}.join(";"))
25 31 file.write("\n")
26 32 end
  33 + file.close
  34 + uploaded_file = UploadedFile.new(:uploaded_data => fixture_file_upload(filepath, 'text/csv'), :profile => dialoga, :parent => report_folder)
  35 + uploaded_file.save
27 36 end
28 37  
29   -file.close
30   -
... ...
script/sent_proposal_report
1 1 #!/usr/bin/env ruby
2 2 # encoding: UTF-8
3   -require_relative '../../../config/environment'
  3 +include ActionDispatch::TestProcess
4 4  
5   -directory = File.join(Rails.root,'data')
6   -Dir.mkdir(directory) unless File.exists?(directory)
  5 +puts 'Iniciando script propostas'
7 6  
8   -emails = ['leandronunes@gmail.com', 'leandro.santos@serpro.gov.br'] + ARGV
9   -emails.uniq!
  7 +filebasepath = '/tmp/'
  8 +
  9 +dialoga = Community['dialoga']
  10 +root_report_folder = dialoga.folders.where(:slug => 'relatorios').first
  11 +root_report_folder ||= Folder.create!(:profile => dialoga, :name => 'Relatorios')
  12 +
  13 +report_folder = Folder.find_by_slug(DateTime.now.strftime('%Y-%m-%d'))
  14 +
  15 +report_folder ||= Folder.create!(:profile => dialoga, :name => DateTime.now.strftime('%Y-%m-%d'), :parent => root_report_folder)
10 16  
11   -puts 'Iniciando script propostas'
12 17  
13   -file = File.open(File.join(directory,'data.csv'), 'w+')
  18 +
  19 +filepath = filebasepath + DateTime.now.strftime('%Y-%m-%d-%H-%m-%S') + '-' + 'propostas.csv'
  20 +file = File.open(filepath, 'w+')
14 21  
15 22 tasks = ProposalsDiscussionPlugin::ProposalTask.all
16 23 count = 0
... ... @@ -42,16 +49,5 @@ end
42 49  
43 50 file.close
44 51  
45   -ActionMailer::Base.logger = Logger.new(STDOUT)
46   -class Sender < ActionMailer::Base
47   - def send_report(to, from)
48   - directory = File.join(Rails.root,'data')
49   - attachments["eventos.csv"] = File.read("#{directory}/event.csv")
50   - attachments["propostas.csv"] = File.read("#{directory}/data.csv")
51   - mail to: to, from: from,
52   - subject: "Relatorio do Dialoga", body: "Segue em anexo os relatorios do Dialoga"
53   - end
54   -
55   -end
56   -
57   -Sender.send_report(emails, 'dialoga@dialoga.gov.br').deliver
  52 +uploaded_file = UploadedFile.new(:uploaded_data => fixture_file_upload(filepath, 'text/csv'), :profile => dialoga, :parent => report_folder)
  53 +uploaded_file.save
... ...
script/sent_ranking
1 1 #!/usr/bin/env ruby
2 2 # encoding: UTF-8
3   -
4   -require_relative '../../../config/environment'
  3 +include ActionDispatch::TestProcess
  4 +require 'csv'
5 5  
6 6 puts 'Iniciando script ranking'
7 7  
8   -directory = File.join(Rails.root,'data')
9   -Dir.mkdir(directory) unless File.exists?(directory)
  8 +filebasepath = '/tmp/'
  9 +
  10 +dialoga = Community['dialoga']
  11 +root_report_folder = dialoga.folders.where(:slug => 'relatorios').first
  12 +root_report_folder ||= Folder.create!(:profile => dialoga, :name => 'Relatorios')
  13 +
  14 +report_folder = Folder.find_by_slug(DateTime.now.strftime('%Y-%m-%d'))
  15 +
  16 +report_folder ||= Folder.create!(:profile => dialoga, :name => DateTime.now.strftime('%Y-%m-%d'), :parent => root_report_folder)
10 17  
11 18 discussion = ProposalsDiscussionPlugin::Discussion.first
12 19  
... ... @@ -14,8 +21,11 @@ articles = discussion.topics
14 21 articles.each do |article|
15 22 puts "#{article.slug}"
16 23 ranking = article.ranking
17   - CSV.open(File.join(Rails.root,'data',"ranking_#{article.slug}.csv"), 'w' ) do |csv|
  24 + filepath = filebasepath + DateTime.now.strftime('%Y-%m-%d-%H-%m-%S') + '-' + "ranking_#{article.slug}.csv"
  25 + CSV.open(filepath, 'w' ) do |csv|
18 26 csv << ['Posição', 'Id', 'Proposta', 'Positivo', 'Negativo', 'Exibições', 'Valor']
19 27 ranking.each_with_index {|r, i| csv << [i+1, r.values].flatten}
20 28 end
  29 + uploaded_file = UploadedFile.new(:uploaded_data => fixture_file_upload(filepath, 'text/csv'), :profile => dialoga, :parent => report_folder)
  30 + uploaded_file.save
21 31 end
... ...