Commit 9d5ea852c79ee89c3848139b48cf8a9920633024

Authored by Antonio Terceiro
1 parent d7698aae

ActionItem862: workaround for location issue

app/models/profile.rb
@@ -113,9 +113,9 @@ class Profile < ActiveRecord::Base @@ -113,9 +113,9 @@ class Profile < ActiveRecord::Base
113 def location 113 def location
114 myregion = self.region 114 myregion = self.region
115 if myregion 115 if myregion
116 - myregion.name 116 + myregion.hierarchy.reverse.map(&:name).join(' - ')
117 else 117 else
118 - '' 118 + [ :city, :state, :country ].map {|item| self.respond_to?(item) ? self.send(item) : nil }.compact.join(' - ')
119 end 119 end
120 end 120 end
121 121
script/release-v0.13.0-ecosol
@@ -21,7 +21,7 @@ script/runner 'env = Environment.default; @@ -21,7 +21,7 @@ script/runner 'env = Environment.default;
21 echo 'Configurating template for active enterprises..' 21 echo 'Configurating template for active enterprises..'
22 script/runner 'env = Environment.default 22 script/runner 'env = Environment.default
23 template = env.enterprise_template 23 template = env.enterprise_template
24 - template.custom_footer = "<div align=center>{address} {- zip_code}<br/>{city} {- state} {- country}<br/>{<strong>Tel:</strong> contact_phone} {<strong>e-Mail:</strong> contact_email}<br/></div>" 24 + template.custom_footer = "<div align=center>{address} {- zip_code}<br/>{location}<br/>{<strong>Tel:</strong> contact_phone} {<strong>e-Mail:</strong> contact_email}<br/></div>"
25 template.custom_header = "<div align=center><h1>{name}</h1><br/></div>" 25 template.custom_header = "<div align=center><h1>{name}</h1><br/></div>"
26 template.articles.destroy_all 26 template.articles.destroy_all
27 homepage = TinyMceArticle.create!(:name => "Início", :body => "Esta é a página inicial do seu empreendimento", :profile => template, :accept_comments => false) 27 homepage = TinyMceArticle.create!(:name => "Início", :body => "Esta é a página inicial do seu empreendimento", :profile => template, :accept_comments => false)
test/unit/profile_test.rb
@@ -697,18 +697,39 @@ class ProfileTest &lt; Test::Unit::TestCase @@ -697,18 +697,39 @@ class ProfileTest &lt; Test::Unit::TestCase
697 end 697 end
698 698
699 should 'query region for location' do 699 should 'query region for location' do
700 - p = Profile.new  
701 - region = mock; region.expects(:name).returns('Some ackwrad region name')  
702 - p.expects(:region).returns(region) 700 + region = Region.new(:name => 'Some ackwrad region name')
  701 + p = Profile.new(:region => region)
703 assert_equal 'Some ackwrad region name', p.location 702 assert_equal 'Some ackwrad region name', p.location
704 end 703 end
705 704
706 - should 'fallback graciously when no region' do 705 + should 'query region hierarchy for location' do
  706 + state = Region.new(:name => "Bahia")
  707 + city = Region.new(:name => "Salvador", :parent => state)
  708 + p = Profile.new(:region => city)
  709 + assert_equal 'Salvador - Bahia', p.location
  710 + end
  711 +
  712 + should 'use city/state/country fields for location when no region object is set' do
  713 + p = Profile.new
  714 + p.expects(:region).returns(nil)
  715 + p.expects(:city).returns("Salvador")
  716 + p.expects(:state).returns("Bahia")
  717 + p.expects(:country).returns("Brasil")
  718 + assert_equal 'Salvador - Bahia - Brasil', p.location
  719 + end
  720 +
  721 + should 'give empty location if nothing is available' do
707 p = Profile.new 722 p = Profile.new
708 p.expects(:region).returns(nil) 723 p.expects(:region).returns(nil)
709 assert_equal '', p.location 724 assert_equal '', p.location
710 end 725 end
711 726
  727 + should 'support (or at least not crash) location for existing profile types' do
  728 + assert_nothing_raised do
  729 + [Profile,Enterprise,Person,Community,Organization].each { |p| p.new.location }
  730 + end
  731 + end
  732 +
712 should 'default home page is a TinyMceArticle' do 733 should 'default home page is a TinyMceArticle' do
713 profile = Profile.create!(:identifier => 'newprofile', :name => 'New Profile') 734 profile = Profile.create!(:identifier => 'newprofile', :name => 'New Profile')
714 assert_kind_of TinyMceArticle, profile.home_page 735 assert_kind_of TinyMceArticle, profile.home_page