diff --git a/app/helpers/geozones_helper.rb b/app/helpers/geozones_helper.rb
index 974612a77..bfc5f9105 100644
--- a/app/helpers/geozones_helper.rb
+++ b/app/helpers/geozones_helper.rb
@@ -4,4 +4,8 @@ module GeozonesHelper
geozonable.geozone ? geozonable.geozone.name : t("geozones.none")
end
+ def geozone_select_options
+ Geozone.all.order(name: :asc).collect { |g| [ g.name, g.id ] }
+ end
+
end
diff --git a/app/views/spending_proposals/_form.html.erb b/app/views/spending_proposals/_form.html.erb
index 39b0e6e0a..4805b1bb4 100644
--- a/app/views/spending_proposals/_form.html.erb
+++ b/app/views/spending_proposals/_form.html.erb
@@ -19,7 +19,7 @@
<%= f.label :geozone_id, t("spending_proposals.form.geozone") %>
- <%= f.select :geozone_id, Geozone.all.collect { |g| [ g.name, g.id ] }, {include_blank: t("geozones.none"), label: false} %>
+ <%= f.select :geozone_id, geozone_select_options, {include_blank: t("geozones.none"), label: false} %>
diff --git a/spec/helpers/geozones_helper_spec.rb b/spec/helpers/geozones_helper_spec.rb
index 18e47208e..d85ff8753 100644
--- a/spec/helpers/geozones_helper_spec.rb
+++ b/spec/helpers/geozones_helper_spec.rb
@@ -17,5 +17,19 @@ describe GeozonesHelper do
end
end
+ describe "#geozone_select_options" do
+ it "returns array of ids and names ordered by name" do
+ g1 = create(:geozone, name: "AAA")
+ g3 = create(:geozone, name: "CCC")
+ g2 = create(:geozone, name: "BBB")
+
+ select_options = geozone_select_options
+
+ expect(select_options.size).to eq 3
+ expect(select_options.first).to eq [g1.name, g1.id]
+ expect(select_options[1]).to eq [g2.name, g2.id]
+ expect(select_options.last).to eq [g3.name, g3.id]
+ end
+ end
end