Skip to content

Commit e83cefb

Browse files
committed
save geocoding data when present
1 parent 1177a5b commit e83cefb

2 files changed

Lines changed: 27 additions & 1 deletion

File tree

decidim-proposals/app/commands/decidim/proposals/create_proposal.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,11 @@ def create_proposal
8585
proposal.category = form.category if form.category_id.present?
8686
proposal.scope = form.scope if form.scope_id.present?
8787
proposal.documents = form.documents if form.documents.present?
88-
proposal.address = form.address if form.has_address? && !form.geocoded?
88+
if form.geocoded?
89+
proposal.latitude = form.latitude
90+
proposal.longitude = form.longitude
91+
end
92+
proposal.address = form.address if form.has_address?
8993
proposal.add_coauthor(@current_user, user_group:)
9094
proposal.save!
9195
@attached_to = proposal

decidim-proposals/spec/commands/decidim/proposals/create_proposal_spec.rb

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,28 @@ module Proposals
193193
end
194194
end
195195
end
196+
197+
describe "when geocoding is enabled" do
198+
let(:component) { create(:proposal_component, :with_geocoding_enabled) }
199+
let(:form_params) do
200+
{
201+
title: "A reasonable proposal title",
202+
body: "A reasonable proposal body",
203+
address: "Carrer de Balmes, 132, Barcelona",
204+
latitude: 41.394897,
205+
longitude: 2.153088
206+
}
207+
end
208+
209+
it "saves geocoding data" do
210+
expect { command.call }.to broadcast(:ok)
211+
proposal = Decidim::Proposals::Proposal.last
212+
213+
expect(proposal.address).to eq(form_params[:address])
214+
expect(proposal.latitude).to eq(form_params[:latitude])
215+
expect(proposal.longitude).to eq(form_params[:longitude])
216+
end
217+
end
196218
end
197219
end
198220
end

0 commit comments

Comments
 (0)