Commit 1064a46c96dae48da2a0b430578bc4817cf81f56
1 parent
9bc8cc2a
Exists in
master
and in
27 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 | ... | ... |