Commit 1064a46c96dae48da2a0b430578bc4817cf81f56
1 parent
9bc8cc2a
Exists in
master
and in
22 other branches
profile-editor: use timepicker on birth-date field
Showing
5 changed files
with
8 additions
and
58 deletions
Show diff stats
app/controllers/my_profile/profile_editor_controller.rb
| ... | ... | @@ -15,20 +15,14 @@ class ProfileEditorController < MyProfileController |
| 15 | 15 | @possible_domains = profile.possible_domains |
| 16 | 16 | if request.post? |
| 17 | 17 | params[:profile_data][:fields_privacy] ||= {} if profile.person? && params[:profile_data].is_a?(Hash) |
| 18 | - begin | |
| 19 | - Profile.transaction do | |
| 20 | - Image.transaction do | |
| 21 | - if profile.update_attributes!(params[:profile_data]) | |
| 22 | - redirect_to :action => 'index', :profile => profile.identifier | |
| 23 | - end | |
| 18 | + Profile.transaction do | |
| 19 | + Image.transaction do | |
| 20 | + if @profile_data.update_attributes(params[:profile_data]) | |
| 21 | + redirect_to :action => 'index', :profile => profile.identifier | |
| 22 | + else | |
| 23 | + profile.identifier = params[:profile] if profile.identifier.blank? | |
| 24 | 24 | end |
| 25 | - end | |
| 26 | - rescue Exception => ex | |
| 27 | - if profile.identifier.blank? | |
| 28 | - profile.identifier = params[:profile] | |
| 29 | - end | |
| 30 | - session[:notice] = _('Cannot update profile') | |
| 31 | - logger.error ex.to_s | |
| 25 | + end | |
| 32 | 26 | end |
| 33 | 27 | end |
| 34 | 28 | end | ... | ... |
app/models/person.rb
| ... | ... | @@ -157,11 +157,6 @@ class Person < Profile |
| 157 | 157 | |
| 158 | 158 | validates_multiparameter_assignments |
| 159 | 159 | |
| 160 | - validates_each :birth_date do |record,attr,value| | |
| 161 | - date_str = record.birth_date_before_type_cast | |
| 162 | - record.errors.add(attr) if value.blank? && !date_str.blank? | |
| 163 | - end | |
| 164 | - | |
| 165 | 160 | def self.fields |
| 166 | 161 | FIELDS |
| 167 | 162 | end | ... | ... |
app/views/profile_editor/_person_form.html.erb
| ... | ... | @@ -16,7 +16,7 @@ |
| 16 | 16 | <%= optional_field(@person, 'jabber_id', f.text_field(:jabber_id, :rel => _('Jabber'))) %> |
| 17 | 17 | <%= optional_field(@person, 'personal_website', f.text_field(:personal_website, :rel => _('Personal website'))) %> |
| 18 | 18 | <%= optional_field(@person, 'sex', f.radio_group(:profile_data, :sex, [ ['male',_('Male')], ['female',_('Female')] ])) %> |
| 19 | -<%= optional_field(@person, 'birth_date', labelled_form_field(_('Birth date'), '<div class="select-birth-date">' + pick_date(:profile_data, :birth_date, {:start_year => (Date.today.year - 100), :end_year => (Date.today.year - 5)}) + '</div>')) %> | |
| 19 | +<%= optional_field(@person, 'birth_date', labelled_form_field(_('Birth date'), date_field('profile_data[birth_date]', @profile_data. birth_date, '%Y-%m-%d', {:change_month => true, :change_year => true, :year_range => '-100:-5', :date_format => 'yy-mm-dd'}, {:id => 'profile_data_birth_date'}))) %> | |
| 20 | 20 | <%= optional_field(@person, 'nationality', f.text_field(:nationality, :rel => _('Nationality'))) %> |
| 21 | 21 | <%= optional_field(@person, 'country', select_country(_('Country'), 'profile_data', 'country', {:class => 'type-select'})) %> |
| 22 | 22 | <%= optional_field(@person, 'state', f.text_field(:state, :id => 'state_field', :rel => _('State'))) %> | ... | ... |
features/edit_profile.feature
| ... | ... | @@ -6,30 +6,6 @@ Feature: edit profile |
| 6 | 6 | | joao | |
| 7 | 7 | Given I am logged in as "joao" |
| 8 | 8 | |
| 9 | - Scenario: Warn about invalid birth date when active | |
| 10 | - Given the following person fields are active fields | |
| 11 | - | display_name | | |
| 12 | - | birth_date | | |
| 13 | - When I go to joao's control panel | |
| 14 | - And I follow "Edit Profile" | |
| 15 | - And I select "November" from "profile_data_birth_date_2i" | |
| 16 | - And I select "15" from "profile_data_birth_date_3i" | |
| 17 | - And I press "Save" | |
| 18 | - Then I should see "Birth date is invalid" | |
| 19 | - And I should not see "Birth date can't be blank" | |
| 20 | - | |
| 21 | - Scenario: Warn about invalid birth date when required | |
| 22 | - Given the following person fields are required fields | |
| 23 | - | display_name | | |
| 24 | - | birth_date | | |
| 25 | - When I go to joao's control panel | |
| 26 | - And I follow "Edit Profile" | |
| 27 | - And I select "November" from "profile_data_birth_date_2i" | |
| 28 | - And I select "15" from "profile_data_birth_date_3i" | |
| 29 | - And I press "Save" | |
| 30 | - Then I should see "Birth date is invalid" | |
| 31 | - And I should not see "Birth date can't be blank" | |
| 32 | - | |
| 33 | 9 | Scenario: Not warn if birth date is valid when active |
| 34 | 10 | Given the following person fields are active fields |
| 35 | 11 | | display_name | | ... | ... |
test/unit/person_test.rb
| ... | ... | @@ -1152,21 +1152,6 @@ class PersonTest < ActiveSupport::TestCase |
| 1152 | 1152 | assert_includes Person.more_active, profile |
| 1153 | 1153 | end |
| 1154 | 1154 | |
| 1155 | - should 'handle multiparameter attribute exception on birth date field' do | |
| 1156 | - assert_nothing_raised ActiveRecord::MultiparameterAssignmentErrors do | |
| 1157 | - p = Person.new( | |
| 1158 | - :name => 'birthday', :identifier => 'birthday', | |
| 1159 | - 'birth_date(1i)' => '', 'birth_date(2i)' => '6', 'birth_date(3i)' => '16' | |
| 1160 | - ) | |
| 1161 | - end | |
| 1162 | - end | |
| 1163 | - | |
| 1164 | - should 'not accept an empty year on birth date' do | |
| 1165 | - p = Person.new(:birth_date => "1115") | |
| 1166 | - p.valid? | |
| 1167 | - assert p.errors[:birth_date.to_s].present? | |
| 1168 | - end | |
| 1169 | - | |
| 1170 | 1155 | should 'associate report with the correct complaint' do |
| 1171 | 1156 | p1 = create_user('user1').person |
| 1172 | 1157 | p2 = create_user('user2').person | ... | ... |