Commit ea7e701a29d9390deccd4600ff1be6a6e0ef1ec8
1 parent
39fe1dc9
Exists in
master
Fix report job
Showing
1 changed file
with
28 additions
and
29 deletions
Show diff stats
lib/dialoga_plugin/report_job.rb
| 1 | +require 'csv' | |
| 1 | 2 | class DialogaPlugin::ReportJob < Struct.new(:profile_id, :report_path) |
| 2 | 3 | |
| 3 | 4 | include ActionDispatch::TestProcess |
| ... | ... | @@ -28,37 +29,35 @@ class DialogaPlugin::ReportJob < Struct.new(:profile_id, :report_path) |
| 28 | 29 | |
| 29 | 30 | def create_proposals_report(profile, report_folder) |
| 30 | 31 | filepath = "/tmp/#{report_path}/propostas.csv" |
| 31 | - file = File.open(filepath, 'w+') | |
| 32 | 32 | |
| 33 | - tasks = ProposalsDiscussionPlugin::ProposalTask.all | |
| 34 | - count = 0 | |
| 35 | - header = "'Origem';'Status';'Criada em';'Moderado por';'Data de Moderado';'Validado por';'Data de Validado';'Autor';'Proposta';'Categorias'\n" | |
| 36 | - file.write(header) | |
| 37 | - status_translation = { | |
| 38 | - 1 => 'Pendente de Moderacao', | |
| 39 | - 2 => 'Rejeitada', | |
| 40 | - 3 => 'Aprovada', | |
| 41 | - 5 => 'Pre Aprovada', | |
| 42 | - 6 => 'Pre Rejeitada', | |
| 43 | - } | |
| 44 | - tasks.map do |task| | |
| 45 | - count += 1 | |
| 46 | - puts "%s de %s: adicionando task: %s" % [count, tasks.count, task.id ] | |
| 47 | - info = [] | |
| 48 | - info.push(task.proposal_source) | |
| 49 | - info.push(status_translation[task.status]) | |
| 50 | - info.push(task.created_at.strftime("%d/%m/%y %H:%M")) | |
| 51 | - info.push(task.proposal_evaluation.present? && task.proposal_evaluation.evaluated_by.present? ? task.proposal_evaluation.evaluated_by.name : '') | |
| 52 | - info.push(task.proposal_evaluation.present? ? task.proposal_evaluation.created_at.strftime("%d/%m/%y %H:%M") : '') | |
| 53 | - info.push(task.closed_by.present? ? task.closed_by.name : '') | |
| 54 | - info.push(task.closed_by.present? ? task.end_date.strftime("%d/%m/%y %H:%M") : '') | |
| 55 | - info.push(task.requestor.present? ? task.requestor.name : '') | |
| 56 | - info.push(task.categories.map {|c| c.name}.join(', ')) | |
| 57 | - file.write(info.map{|i| "'" + i.to_s + "'"}.join(";")) | |
| 58 | - file.write("\n") | |
| 33 | + CSV.open(filepath, 'w' ) do |csv| | |
| 34 | + tasks = ProposalsDiscussionPlugin::ProposalTask.all | |
| 35 | + count = 0 | |
| 36 | + csv << ['Origem', 'Status', 'Criada em', 'Moderado por', 'Data de Moderado', 'Validado por', 'Data de Validado', 'Autor', 'Proposta', 'Categorias'] | |
| 37 | + status_translation = { | |
| 38 | + 1 => 'Pendente de Moderacao', | |
| 39 | + 2 => 'Rejeitada', | |
| 40 | + 3 => 'Aprovada', | |
| 41 | + 5 => 'Pre Aprovada', | |
| 42 | + 6 => 'Pre Rejeitada', | |
| 43 | + } | |
| 44 | + tasks.map do |task| | |
| 45 | + count += 1 | |
| 46 | + puts "%s de %s: adicionando task: %s" % [count, tasks.count, task.id ] | |
| 47 | + info = [] | |
| 48 | + info.push(task.proposal_source) | |
| 49 | + info.push(status_translation[task.status]) | |
| 50 | + info.push(task.created_at.strftime("%d/%m/%y %H:%M")) | |
| 51 | + info.push(task.proposal_evaluation.present? && task.proposal_evaluation.evaluated_by.present? ? task.proposal_evaluation.evaluated_by.name : '') | |
| 52 | + info.push(task.proposal_evaluation.present? ? task.proposal_evaluation.created_at.strftime("%d/%m/%y %H:%M") : '') | |
| 53 | + info.push(task.closed_by.present? ? task.closed_by.name : '') | |
| 54 | + info.push(task.closed_by.present? ? task.end_date.strftime("%d/%m/%y %H:%M") : '') | |
| 55 | + info.push(task.requestor.present? ? task.requestor.name : '') | |
| 56 | + info.push(task.abstract.present? ? task.abstract.gsub(/\s+/, ' ').strip : '') | |
| 57 | + info.push(task.categories.map {|c| c.name}.join(' ')) | |
| 58 | + csv << info | |
| 59 | + end | |
| 59 | 60 | end |
| 60 | - | |
| 61 | - file.close | |
| 62 | 61 | upload_file(filepath, profile, report_folder) |
| 63 | 62 | end |
| 64 | 63 | ... | ... |