From eb5062af395e4542bcde7379879e5db9b5107f5f Mon Sep 17 00:00:00 2001 From: Ana Losnak Date: Thu, 1 Aug 2013 20:06:53 +0000 Subject: [PATCH] profile_editor: add extra optional fields for person --- app/helpers/profile_helper.rb | 6 ++++-- app/models/person.rb | 2 ++ app/views/profile_editor/_person_form.rhtml | 2 ++ db/migrate/20130801182659_add_extra_fields_for_person.rb | 11 +++++++++++ db/schema.rb | 2 ++ test/unit/person_test.rb | 15 +++++++++++++++ 6 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 db/migrate/20130801182659_add_extra_fields_for_person.rb diff --git a/app/helpers/profile_helper.rb b/app/helpers/profile_helper.rb index a508c75..eb6ad68 100644 --- a/app/helpers/profile_helper.rb +++ b/app/helpers/profile_helper.rb @@ -20,10 +20,12 @@ module ProfileHelper zip = display_field(_('ZIP code:'), profile, :zip_code) phone = display_field(_('Contact phone:'), profile, :contact_phone) email = display_field(_('e-Mail:'), profile, :email) { |email| link_to_email(email) } - if address.blank? && zip.blank? && phone.blank? && email.blank? + personal_website = display_field(_('Personal website:'), profile, :personal_website) + jabber = display_field(_('Jabber:'), profile, :jabber_id) + if address.blank? && zip.blank? && phone.blank? && email.blank? && personal_website.blank? && jabber.blank? '' else - content_tag('tr', content_tag('th', _('Contact'), { :colspan => 2 })) + address + zip + phone + email + content_tag('tr', content_tag('th', _('Contact'), { :colspan => 2 })) + address + zip + phone + email + personal_website + jabber end end diff --git a/app/models/person.rb b/app/models/person.rb index 26f717d..7170359 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -157,6 +157,8 @@ class Person < Profile birth_date cell_phone comercial_phone + jabber_id + personal_website schooling professional_activity organization diff --git a/app/views/profile_editor/_person_form.rhtml b/app/views/profile_editor/_person_form.rhtml index 1acad7e..336ae7a 100644 --- a/app/views/profile_editor/_person_form.rhtml +++ b/app/views/profile_editor/_person_form.rhtml @@ -13,6 +13,8 @@ <%= optional_field(@person, 'contact_phone', labelled_form_field(_('Home phone'), text_field(:profile_data, :contact_phone, :rel => _('Contact phone')))) %> <%= optional_field(@person, 'cell_phone', f.text_field(:cell_phone, :rel => _('Cell phone'))) %> <%= optional_field(@person, 'comercial_phone', f.text_field(:comercial_phone, :rel => _('Comercial phone'))) %> +<%= optional_field(@person, 'jabber_id', f.text_field(:jabber_id, :rel => _('Jabber'))) %> +<%= optional_field(@person, 'personal_website', f.text_field(:personal_website, :rel => _('Personal website'))) %> <%= optional_field(@person, 'sex', f.radio_group(:profile_data, :sex, [ ['male',_('Male')], ['female',_('Female')] ])) %> <%= optional_field(@person, 'birth_date', labelled_form_field(_('Birth date'), '
' + pick_date(:profile_data, :birth_date, {:start_year => (Date.today.year - 100), :end_year => (Date.today.year - 5)}) + '
')) %> <%= optional_field(@person, 'nationality', f.text_field(:nationality, :rel => _('Nationality'))) %> diff --git a/db/migrate/20130801182659_add_extra_fields_for_person.rb b/db/migrate/20130801182659_add_extra_fields_for_person.rb new file mode 100644 index 0000000..5a88d14 --- /dev/null +++ b/db/migrate/20130801182659_add_extra_fields_for_person.rb @@ -0,0 +1,11 @@ +class AddExtraFieldsForPerson < ActiveRecord::Migration + def self.up + add_column :profiles, :personal_website, :string + add_column :profiles, :jabber_id, :string + end + + def self.down + remove_column :profiles, :personal_website + remove_column :profiles, :jabber_id + end +end diff --git a/db/schema.rb b/db/schema.rb index 106b8df..593c594 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -468,6 +468,8 @@ ActiveRecord::Schema.define(:version => 20140108132730) do t.boolean "is_template", :default => false t.integer "template_id" t.string "redirection_after_login" + t.string "personal_website" + t.string "jabber_id" end add_index "profiles", ["environment_id"], :name => "index_profiles_on_environment_id" diff --git a/test/unit/person_test.rb b/test/unit/person_test.rb index f8190c0..d6d4521 100644 --- a/test/unit/person_test.rb +++ b/test/unit/person_test.rb @@ -1446,4 +1446,19 @@ class PersonTest < ActiveSupport::TestCase assert 3, original_person.memberships.count end + should 'respond to extra fields' do + user = create_user('some-user').person + + assert user.respond_to?(:personal_website) + assert user.respond_to?(:jabber_id) + end + + should 'return extra fields when fields method is called' do + extra_fields = ['jabber_id', 'personal_website'] + + extra_fields.each do |field| + assert_includes Person.fields, field + end + end + end -- libgit2 0.21.2