From b6551e7d2efff6d8fff57ffecc359351f768f6b3 Mon Sep 17 00:00:00 2001 From: Tyler Sanders Date: Fri, 27 Dec 2019 00:26:21 +0000 Subject: [PATCH 01/11] stub initial csv generator for govt role --- .../incident/legacy_sites_controller.rb | 4 +- app/jobs/csv_generator_job.rb | 30 +++++++++++++-- app/models/legacy/legacy_site.rb | 38 +++++++++++++++++++ 3 files changed, 67 insertions(+), 5 deletions(-) diff --git a/app/controllers/worker/incident/legacy_sites_controller.rb b/app/controllers/worker/incident/legacy_sites_controller.rb index 35d7285e..0cdebfdd 100644 --- a/app/controllers/worker/incident/legacy_sites_controller.rb +++ b/app/controllers/worker/incident/legacy_sites_controller.rb @@ -308,7 +308,9 @@ def request_csv event = Legacy::LegacyEvent.find(params[:id]) download_file_name = "#{event.name}-#{Time.now.strftime('%F')}.csv" org_id = current_user.legacy_organization_id - job = CsvGeneratorJob.perform_later('generate_sites', prefix, download_file_name, bucket_name, params[:id], org_id) + is_govt = current_user.legacy_organization.government + + job = CsvGeneratorJob.perform_later('generate_sites', prefix, download_file_name, bucket_name, is_govt, params[:id], org_id) render json: {status: 200, job_id: job.job_id} end end diff --git a/app/jobs/csv_generator_job.rb b/app/jobs/csv_generator_job.rb index 94ffc21d..b5ea0e05 100644 --- a/app/jobs/csv_generator_job.rb +++ b/app/jobs/csv_generator_job.rb @@ -3,14 +3,21 @@ class CsvGeneratorJob < ActiveJob::Base queue_as :default - def perform(generator_type, file_prefix, download_file_name, bucket_name, *args) + def perform(generator_type, file_prefix, download_file_name, bucket_name, is_govt, *args) path = "/tmp/#{file_prefix}-#{self.job_id}.csv" file_basename = File.basename(path) begin File.open(path, "w+") do |f| - case generator_type - when "generate_sites" - generate_sites_csv(args[0], args[1]).each {|element| f.puts(element)} + if is_govt + case generator_type + when "generate_sites" + govt_generate_sites_csv(args[0], args[1]).each {|element| f.puts(element)} + end + else + case generator_type + when "generate_sites" + generate_sites_csv(args[0], args[1]).each {|element| f.puts(element)} + end end end rescue @@ -43,4 +50,19 @@ def generate_sites_csv(legacy_event_id, org_id) end end + + def govt_generate_sites_csv(legacy_event_id, org_id) + Enumerator.new do |y| + y << Legacy::LegacySite.csv_header.to_s + + Legacy::LegacySite.find_in_batches_claimed_reported(["legacy_event_id = ? AND (claimed_by = ? OR reported_by = ?)", legacy_event_id, org_id, org_id], 300) { + |site| y << site.govt_redacted_to_csv_row.to_s + } + + Legacy::LegacySite.find_in_batches_claimed_reported(["(legacy_event_id = ?) AND ((NOT claimed_by = ?) OR (NOT reported_by = ?))", legacy_event_id, org_id, org_id], 300) { + |site| y << site.govt_redacted_to_csv_row.to_s + } + + end + end end diff --git a/app/models/legacy/legacy_site.rb b/app/models/legacy/legacy_site.rb index 358b7666..5149b69a 100644 --- a/app/models/legacy/legacy_site.rb +++ b/app/models/legacy/legacy_site.rb @@ -403,6 +403,44 @@ def redacted_to_csv_row ] ) end + + def govt_redacted_to_csv_row + CSV::Row.new( + [ + :event, + :case_number, + :address, + :city, + :county, + :state, + :zip_code, + :latitude, + :longitude, + :reported_by, + :claimed_by, + :request_date, + :updated_at, + :status, + :work_type + ],[ + legacy_event.name, + case_number, + address, + city, + county, + state, + zip_code, + latitude, + longitude, + reporting_org.try(:name), + legacy_organization.try(:name), + request_date, + updated_at, + status, + work_type + ] + ) + end def format_details blacklist = [ From a170445dd15309f68f78b2cbd85a3cb396e003d9 Mon Sep 17 00:00:00 2001 From: Tyler Sanders Date: Fri, 27 Dec 2019 16:53:55 +0000 Subject: [PATCH 02/11] Stub report views --- app/views/layouts/menus/_worker_dashboard_menu.html.erb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/views/layouts/menus/_worker_dashboard_menu.html.erb b/app/views/layouts/menus/_worker_dashboard_menu.html.erb index 9a7b9ad7..0b6dfcb7 100644 --- a/app/views/layouts/menus/_worker_dashboard_menu.html.erb +++ b/app/views/layouts/menus/_worker_dashboard_menu.html.erb @@ -20,6 +20,11 @@ <% end %> <% end %> + <% if current_user %> + <% if current_user.legacy_organization.government || current_user.admin %> +
  • <%= nav_link 'Reports', reports_reports_dashboard_path %>
  • + <% end %> + <% end %>
  • Help