diff --git a/app/models/case_log.rb b/app/models/case_log.rb index c64d8687b..76c47297c 100644 --- a/app/models/case_log.rb +++ b/app/models/case_log.rb @@ -18,7 +18,6 @@ end class CaseLog < ApplicationRecord include Validations::SoftValidations - include GenerateCsv has_paper_trail @@ -294,6 +293,18 @@ class CaseLog < ApplicationRecord LaRentRange.find_by(start_year: collection_start_year, la:, beds:, lettype:).soft_max end + def self.to_csv + CSV.generate(headers: true) do |csv| + csv << attribute_names + + all.find_each do |record| + csv << record.attributes.map do |att, val| + record.form.get_question(att, record)&.label_from_value(val) || val + end + end + end + end + private PIO = Postcodes::IO.new diff --git a/app/models/concerns/generate_csv.rb b/app/models/concerns/generate_csv.rb deleted file mode 100644 index 8c418475d..000000000 --- a/app/models/concerns/generate_csv.rb +++ /dev/null @@ -1,15 +0,0 @@ -module GenerateCsv - extend ActiveSupport::Concern - - class_methods do - def to_csv - CSV.generate(headers: true) do |csv| - csv << attribute_names - - all.each do |record| - csv << record.attributes.values - end - end - end - end -end diff --git a/spec/requests/case_logs_controller_spec.rb b/spec/requests/case_logs_controller_spec.rb index e251a2d5b..8a1358dcb 100644 --- a/spec/requests/case_logs_controller_spec.rb +++ b/spec/requests/case_logs_controller_spec.rb @@ -492,6 +492,7 @@ RSpec.describe CaseLogsController, type: :request do :case_log, owning_organisation: organisation, managing_organisation: organisation, + ecstat1: 1, ) end @@ -511,6 +512,11 @@ RSpec.describe CaseLogsController, type: :request do csv = CSV.parse(response.body) expect(csv.count).to eq(2) end + + it "downloads answer labels rather than values" do + csv = CSV.parse(response.body) + expect(csv.second[10]).to eq("Full-time - 30 hours or more") + end end describe "PATCH" do