diff --git a/controllers/myprofile/dialoga_plugin_myprofile_controller.rb b/controllers/myprofile/dialoga_plugin_myprofile_controller.rb index 43d2230..6292f2d 100644 --- a/controllers/myprofile/dialoga_plugin_myprofile_controller.rb +++ b/controllers/myprofile/dialoga_plugin_myprofile_controller.rb @@ -4,7 +4,7 @@ class DialogaPluginMyprofileController < MyProfileController def send_report path = File.join(Rails.root,'plugins','dialoga','script') - scripts = ['sent_event_report', 'sent_proposal_report'] + scripts = ['sent_event_report', 'sent_ranking', 'sent_proposal_report'] scripts.map do |script| cmd = File.join(path,script) + ' ' + current_person.email.to_s fork {IO.popen(cmd).read} diff --git a/script/sent_event_report b/script/sent_event_report index 60756b8..ff9655f 100755 --- a/script/sent_event_report +++ b/script/sent_event_report @@ -1,16 +1,22 @@ #!/usr/bin/env ruby # encoding: UTF-8 -require_relative '../../../config/environment' +include ActionDispatch::TestProcess puts 'Iniciando script eventos' -directory = File.join(Rails.root,'data') -Dir.mkdir(directory) unless File.exists?(directory) +filebasepath = '/tmp/' -file = File.open(File.join(directory,'event.csv'), 'w+') +dialoga = Community['dialoga'] +root_report_folder = dialoga.folders.where(:slug => 'relatorios').first +root_report_folder ||= Folder.create!(:profile => dialoga, :name => 'Relatorios') + +report_folder = Folder.find_by_slug(DateTime.now.strftime('%Y-%m-%d')) +report_folder ||= Folder.create!(:profile => dialoga, :name => DateTime.now.strftime('%Y-%m-%d'), :parent => root_report_folder) events = Event.all events.map do |event| + filepath = filebasepath + DateTime.now.strftime('%Y-%m-%d-%H-%m-%S') + '-' + event.slug + file = File.open(File.join(filepath), 'w+') file.write(event.name+ "\n") header = "'Nome';'Email'\n" file.write(header) @@ -24,7 +30,8 @@ events.map do |event| file.write(info.map{|i| "'" + i.to_s + "'"}.join(";")) file.write("\n") end + file.close + uploaded_file = UploadedFile.new(:uploaded_data => fixture_file_upload(filepath, 'text/csv'), :profile => dialoga, :parent => report_folder) + uploaded_file.save end -file.close - diff --git a/script/sent_proposal_report b/script/sent_proposal_report index 63bafed..4ece0a2 100755 --- a/script/sent_proposal_report +++ b/script/sent_proposal_report @@ -1,16 +1,23 @@ #!/usr/bin/env ruby # encoding: UTF-8 -require_relative '../../../config/environment' +include ActionDispatch::TestProcess -directory = File.join(Rails.root,'data') -Dir.mkdir(directory) unless File.exists?(directory) +puts 'Iniciando script propostas' -emails = ['leandronunes@gmail.com', 'leandro.santos@serpro.gov.br'] + ARGV -emails.uniq! +filebasepath = '/tmp/' + +dialoga = Community['dialoga'] +root_report_folder = dialoga.folders.where(:slug => 'relatorios').first +root_report_folder ||= Folder.create!(:profile => dialoga, :name => 'Relatorios') + +report_folder = Folder.find_by_slug(DateTime.now.strftime('%Y-%m-%d')) + +report_folder ||= Folder.create!(:profile => dialoga, :name => DateTime.now.strftime('%Y-%m-%d'), :parent => root_report_folder) -puts 'Iniciando script propostas' -file = File.open(File.join(directory,'data.csv'), 'w+') + +filepath = filebasepath + DateTime.now.strftime('%Y-%m-%d-%H-%m-%S') + '-' + 'propostas.csv' +file = File.open(filepath, 'w+') tasks = ProposalsDiscussionPlugin::ProposalTask.all count = 0 @@ -42,16 +49,5 @@ end file.close -ActionMailer::Base.logger = Logger.new(STDOUT) -class Sender < ActionMailer::Base - def send_report(to, from) - directory = File.join(Rails.root,'data') - attachments["eventos.csv"] = File.read("#{directory}/event.csv") - attachments["propostas.csv"] = File.read("#{directory}/data.csv") - mail to: to, from: from, - subject: "Relatorio do Dialoga", body: "Segue em anexo os relatorios do Dialoga" - end - -end - -Sender.send_report(emails, 'dialoga@dialoga.gov.br').deliver +uploaded_file = UploadedFile.new(:uploaded_data => fixture_file_upload(filepath, 'text/csv'), :profile => dialoga, :parent => report_folder) +uploaded_file.save diff --git a/script/sent_ranking b/script/sent_ranking index f9783b5..31a04c5 100755 --- a/script/sent_ranking +++ b/script/sent_ranking @@ -1,12 +1,19 @@ #!/usr/bin/env ruby # encoding: UTF-8 - -require_relative '../../../config/environment' +include ActionDispatch::TestProcess +require 'csv' puts 'Iniciando script ranking' -directory = File.join(Rails.root,'data') -Dir.mkdir(directory) unless File.exists?(directory) +filebasepath = '/tmp/' + +dialoga = Community['dialoga'] +root_report_folder = dialoga.folders.where(:slug => 'relatorios').first +root_report_folder ||= Folder.create!(:profile => dialoga, :name => 'Relatorios') + +report_folder = Folder.find_by_slug(DateTime.now.strftime('%Y-%m-%d')) + +report_folder ||= Folder.create!(:profile => dialoga, :name => DateTime.now.strftime('%Y-%m-%d'), :parent => root_report_folder) discussion = ProposalsDiscussionPlugin::Discussion.first @@ -14,8 +21,11 @@ articles = discussion.topics articles.each do |article| puts "#{article.slug}" ranking = article.ranking - CSV.open(File.join(Rails.root,'data',"ranking_#{article.slug}.csv"), 'w' ) do |csv| + filepath = filebasepath + DateTime.now.strftime('%Y-%m-%d-%H-%m-%S') + '-' + "ranking_#{article.slug}.csv" + CSV.open(filepath, 'w' ) do |csv| csv << ['Posição', 'Id', 'Proposta', 'Positivo', 'Negativo', 'Exibições', 'Valor'] ranking.each_with_index {|r, i| csv << [i+1, r.values].flatten} end + uploaded_file = UploadedFile.new(:uploaded_data => fixture_file_upload(filepath, 'text/csv'), :profile => dialoga, :parent => report_folder) + uploaded_file.save end -- libgit2 0.21.2