Commit 2ac0a19bbfa5aa5728d23f925f57f7129cb37e9c
1 parent
c11ebee2
Exists in
master
put the report to generate noosfero files
Showing
4 changed files
with
45 additions
and
32 deletions
Show diff stats
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 | ... | ... |