mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-10-23 15:28:23 -04:00
Fix Plantings > CSV output (#3616)
* Fix crash * Add test coverage and index more * Fix test
This commit is contained in:
1 parent
49284eb169
commit
50ba0f08b1
4 files changed
+66
-15
No files matched your search
@@ -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
|
||||
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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/"
|
||||
|
||||
|
||||
@@ -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
|
||||
Reference in new issue
Block a user