diff --git a/app/models/concerns/search_plantings.rb b/app/models/concerns/search_plantings.rb index d1d734ece..3452807b2 100644 --- a/app/models/concerns/search_plantings.rb +++ b/app/models/concerns/search_plantings.rb @@ -30,6 +30,8 @@ module SearchPlantings quantity:, sunniness:, garden_id:, + garden_name: garden&.name, + description:, first_harvest_predicted_at:, finish_predicted_at:, @@ -53,7 +55,8 @@ module SearchPlantings harvests_count:, # timestamps - created_at: created_at.to_i + created_at: created_at.to_i, + updated_at: updated_at.to_i } end diff --git a/app/views/crops/index.csv.shaper b/app/views/crops/index.csv.shaper index 00dab75f7..c11b992a3 100644 --- a/app/views/crops/index.csv.shaper +++ b/app/views/crops/index.csv.shaper @@ -58,10 +58,10 @@ csv.headers *all_headers end csv.cell :plantings_count, c.plantings_count || 0 - csv.cell :seeds_count, c.seeds.size + csv.cell :seeds_count, c.seeds.size[] csv.cell :harvests_count, c.harvests.size - # Sunniness + # Sunniness sunniness = c.sunniness sunniness_rec = sunniness.max_by{|k,v| v} diff --git a/app/views/plantings/index.csv.shaper b/app/views/plantings/index.csv.shaper index 89d5fd183..d071a2026 100644 --- a/app/views/plantings/index.csv.shaper +++ b/app/views/plantings/index.csv.shaper @@ -18,31 +18,32 @@ csv.headers :id, :license @plantings.each do |p| + puts p.inspect csv.row p do |csv, planting| csv.cell :id - csv.cell :growstuff_url, planting_url(p) + csv.cell :growstuff_url, planting_url(p.slug) - csv.cell :owner_id, p.owner.id - csv.cell :owner_name, p.owner.to_s + csv.cell :owner_id, p.owner_id + csv.cell :owner_name, p.owner_login_name - csv.cell :garden_id, p.garden.id - csv.cell :garden_name, p.garden.to_s + csv.cell :garden_id, p.garden_id + csv.cell :garden_name, p.garden_name - csv.cell :crop_id, p.crop.id - csv.cell :crop_name, p.crop.to_s + csv.cell :crop_id, p.crop_id + csv.cell :crop_name, p.crop_name csv.cells :quantity, :planted_from, :sunniness - csv.cell :date_planted, p.planted_at ? p.planted_at.to_fs(:db) : '' + csv.cell :date_planted, p.planted_at ? p.planted_at : '' csv.cell :finished - csv.cell :date_finished, p.finished_at ? p.finished_at.to_fs(:db) : '' + csv.cell :date_finished, p.finished_at ? p.finished_at : '' - csv.cell :description + csv.cell :description, p.description - csv.cell :date_added, p.created_at.to_fs(:db) - csv.cell :last_modified, p.updated_at.to_fs(:db) + csv.cell :date_added, Time.at(p.created_at).to_fs(:db) + csv.cell :last_modified, Time.at(p.updated_at).to_fs(:db) csv.cell :license, "CC-BY-SA Growstuff http://growstuff.org/" diff --git a/spec/requests/plantings_spec.rb b/spec/requests/plantings_spec.rb index 9276aaf03..0c485de11 100644 --- a/spec/requests/plantings_spec.rb +++ b/spec/requests/plantings_spec.rb @@ -50,5 +50,52 @@ describe "Plantings" do response.status.should be(200) end end + + describe "GET /members/x/plantings.csv" do + let(:expected_headers) do + [ + "Id", + "Growstuff url", + "Owner", + "Owner name", + "Garden", + "Garden name", + "Crop", + "Crop name", + "Quantity", + "Planted from", + "Sunniness", + "Date planted", + "Finished", + "Date finished", + "Description", + "Date added", + "Last modified", + "License" + ] + end + + it "works!" do + get member_plantings_path(@member, format: "csv") + + response.status.should be(200) + + data = CSV.parse(response.body, headers: true) + expect(data.headers).to eq expected_headers + + expect(data[1]["Crop name"]).to eq @predictable_planting.crop.name + expect(data[1]["Owner name"]).to eq @member.to_s + expect(data[1]["Garden name"]).to eq @predictable_planting.garden.to_s + expect(data[1]["Description"]).to eq @predictable_planting.description + expect(data[1]["Date planted"]).to eq @predictable_planting.planted_at.to_fs(:db) + expect(data[1]["Quantity"].to_i).to eq @predictable_planting.quantity + expect(data[1]["Sunniness"]).to eq @predictable_planting.sunniness + expect(data[1]["Planted from"]).to eq @predictable_planting.planted_from + expect(data[1]["Date added"]).to eq @predictable_planting.created_at.to_fs(:db) + expect(data[1]["License"]).to eq "CC-BY-SA Growstuff http://growstuff.org/" + + expect(data.count).to eq 6 + end + end end end