Commit 6204cf8

mo khan <mo@mokhan.ca>
2016-05-23 14:46:16
sort the timezone selection.
1 parent 3ca4dce
Changed files (3)
app
controllers
views
spec
app/controllers/profiles_controller.rb
@@ -8,6 +8,7 @@ class ProfilesController < ApplicationController
   def edit
     @profile = current_user.profile
     @program = Program.stronglifts
+    @time_zones = ActiveSupport::TimeZone.all.sort
   end
 
   def update
app/views/profiles/edit.html.erb
@@ -19,7 +19,7 @@
       </fieldset>
       <fieldset>
         <legend><%= Profile.human_attribute_name(:time_zone) %></legend>
-          <%= f.select(:time_zone, ActiveSupport::TimeZone::MAPPING) %>
+          <%= f.time_zone_select(:time_zone, @time_zones, model: ActiveSupport::TimeZone) %>
           <%= f.label(:time_zone) %>
       </fieldset>
       <%= f.submit t(".save"), class: "button"  %>
spec/controllers/profiles_controller_spec.rb
@@ -41,6 +41,14 @@ describe ProfilesController do
         expect(assigns(:profile)).to eql(user.profile)
         expect(assigns(:program)).to eql(Program.stronglifts)
       end
+
+      it "loads all available timezones" do
+        get :edit, id: user.to_param
+        expect(assigns(:time_zones)).
+          to include(ActiveSupport::TimeZone.new("Mountain Time (US & Canada)"))
+        expect(assigns(:time_zones)).
+          to include(ActiveSupport::TimeZone.new("UTC"))
+      end
     end
 
     describe "#update" do