Commit a5313c2adba85ebef8ba1f62a21e98c5e19ff702
1 parent
7679e33d
Exists in
master
and in
28 other branches
ActionItem518: add article to enterprise homepage (and removing unnused
code) git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@2155 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
10 changed files
with
69 additions
and
104 deletions
Show diff stats
app/controllers/my_profile/cms_controller.rb
| ... | ... | @@ -9,14 +9,20 @@ class CmsController < MyProfileController |
| 9 | 9 | |
| 10 | 10 | include CmsHelper |
| 11 | 11 | |
| 12 | - ARTICLE_TYPES = [ | |
| 13 | - Folder, | |
| 14 | - TinyMceArticle, | |
| 15 | - TextileArticle, | |
| 16 | - RssFeed, | |
| 17 | - UploadedFile, | |
| 18 | - Event, | |
| 19 | - ] | |
| 12 | + def available_article_types | |
| 13 | + articles = [ | |
| 14 | + Folder, | |
| 15 | + TinyMceArticle, | |
| 16 | + TextileArticle, | |
| 17 | + RssFeed, | |
| 18 | + UploadedFile, | |
| 19 | + Event | |
| 20 | + ] | |
| 21 | + if profile.enterprise? | |
| 22 | + articles << EnterpriseHomepage | |
| 23 | + end | |
| 24 | + articles | |
| 25 | + end | |
| 20 | 26 | |
| 21 | 27 | def view |
| 22 | 28 | @article = profile.articles.find(params[:id]) |
| ... | ... | @@ -51,7 +57,7 @@ class CmsController < MyProfileController |
| 51 | 57 | @type = params[:type] |
| 52 | 58 | if @type.blank? |
| 53 | 59 | @article_types = [] |
| 54 | - ARTICLE_TYPES.each do |type| | |
| 60 | + available_article_types.each do |type| | |
| 55 | 61 | @article_types.push({ |
| 56 | 62 | :name => type.name, |
| 57 | 63 | :short_description => type.short_description, |
| ... | ... | @@ -63,7 +69,7 @@ class CmsController < MyProfileController |
| 63 | 69 | return |
| 64 | 70 | end |
| 65 | 71 | |
| 66 | - raise "Invalid article type #{@type}" unless ARTICLE_TYPES.map {|item| item.name}.include?(@type) | |
| 72 | + raise "Invalid article type #{@type}" unless available_article_types.map {|item| item.name}.include?(@type) | |
| 67 | 73 | klass = @type.constantize |
| 68 | 74 | @article = klass.new(params[:article]) |
| 69 | 75 | ... | ... |
app/helpers/profile_helper.rb
| 1 | 1 | module ProfileHelper |
| 2 | 2 | |
| 3 | - def display_profile_info(profile) | |
| 4 | - table_rows = content_tag( 'tr', | |
| 5 | - content_tag( 'th', | |
| 6 | - "\n" + | |
| 7 | - button( :edit, _('edit your information'), :controller => 'profile_editor', :action => 'edit' ) + | |
| 8 | - "\n", | |
| 9 | - :colspan => 2, :class => 'header' ) | |
| 10 | - ) + "\n" | |
| 11 | - profile.summary.each do |item| | |
| 12 | - name = item[0] | |
| 13 | - value = item[1] | |
| 14 | - if value.is_a?(Proc) | |
| 15 | - value = self.instance_eval(value) | |
| 16 | - end | |
| 17 | - table_rows << content_tag('tr', content_tag('th', _(name)) + content_tag('td', value)) | |
| 18 | - table_rows << "\n" | |
| 19 | - end | |
| 20 | - | |
| 21 | - content_tag( | |
| 22 | - 'table', | |
| 23 | - table_rows, | |
| 24 | - :class => 'profile_info' | |
| 25 | - ) | |
| 26 | - end | |
| 27 | - | |
| 28 | 3 | end | ... | ... |
app/models/organization.rb
| ... | ... | @@ -47,12 +47,6 @@ class Organization < Profile |
| 47 | 47 | |
| 48 | 48 | xss_terminate :only => [ :acronym, :contact_person, :contact_email, :legal_form, :economic_activity, :management_information ] |
| 49 | 49 | |
| 50 | - def summary | |
| 51 | - [ 'acronym', 'foundation_year', 'contact_person', 'contact_email', 'legal_form', 'economic_activity' ].map do |col| | |
| 52 | - [ col.humanize, self.send(col) ] | |
| 53 | - end | |
| 54 | - end | |
| 55 | - | |
| 56 | 50 | # Yes, organizations have members. |
| 57 | 51 | # |
| 58 | 52 | # Returns <tt>true</tt>. | ... | ... |
app/models/person.rb
| ... | ... | @@ -29,12 +29,6 @@ class Person < Profile |
| 29 | 29 | N_('Contact information'); N_('Birth date'); N_('City'); N_('State'); N_('Country'); N_('Sex'); |
| 30 | 30 | settings_items :photo, :contact_information, :birth_date, :sex, :city, :state, :country |
| 31 | 31 | |
| 32 | - def summary | |
| 33 | - ['name', 'contact_information', 'contact_phone', 'sex', 'birth_date', 'address', 'city', 'state', 'country'].map do |col| | |
| 34 | - [ col.humanize, self.send(col) ] | |
| 35 | - end | |
| 36 | - end | |
| 37 | - | |
| 38 | 32 | def self.conditions_for_profiles(conditions, person) |
| 39 | 33 | new_conditions = sanitize_sql(['role_assignments.accessor_id = ?', person]) |
| 40 | 34 | new_conditions << ' AND ' + sanitize_sql(conditions) unless conditions.blank? | ... | ... |
test/functional/cms_controller_test.rb
| ... | ... | @@ -470,4 +470,14 @@ class CmsControllerTest < Test::Unit::TestCase |
| 470 | 470 | assert_tag :input, :attributes => { :id => 'article_link' } |
| 471 | 471 | end |
| 472 | 472 | |
| 473 | + should 'not make enterprise homepage available to person' do | |
| 474 | + @controller.stubs(:profile).returns(Person.new) | |
| 475 | + assert_not_includes @controller.available_article_types, EnterpriseHomepage | |
| 476 | + end | |
| 477 | + | |
| 478 | + should 'make enterprise homepage available to enterprises' do | |
| 479 | + @controller.stubs(:profile).returns(Enterprise.new) | |
| 480 | + assert_includes @controller.available_article_types, EnterpriseHomepage | |
| 481 | + end | |
| 482 | + | |
| 473 | 483 | end | ... | ... |
| ... | ... | @@ -0,0 +1,26 @@ |
| 1 | +require File.dirname(__FILE__) + '/../test_helper' | |
| 2 | + | |
| 3 | +class EnterpriseHomepageTest < Test::Unit::TestCase | |
| 4 | + | |
| 5 | + def setup | |
| 6 | + @profile = create_user('testing').person | |
| 7 | + end | |
| 8 | + attr_reader :profile | |
| 9 | + | |
| 10 | + should 'provide a proper short description' do | |
| 11 | + assert_kind_of String, EnterpriseHomepage.short_description | |
| 12 | + end | |
| 13 | + | |
| 14 | + should 'provide a proper description' do | |
| 15 | + assert_kind_of String, EnterpriseHomepage.description | |
| 16 | + end | |
| 17 | + | |
| 18 | + should 'accept empty body' do | |
| 19 | + a = EnterpriseHomepage.new | |
| 20 | + a.expects(:body).returns(nil) | |
| 21 | + assert_nothing_raised do | |
| 22 | + assert_equal '', a.to_html | |
| 23 | + end | |
| 24 | + end | |
| 25 | + | |
| 26 | +end | ... | ... |
test/unit/organization_test.rb
| ... | ... | @@ -162,19 +162,6 @@ class OrganizationTest < Test::Unit::TestCase |
| 162 | 162 | assert ! org.errors.invalid?(:foundation_year) |
| 163 | 163 | end |
| 164 | 164 | |
| 165 | - should 'provide needed information in summary' do | |
| 166 | - organization = Organization.new | |
| 167 | - | |
| 168 | - organization.acronym = 'organization acronym' | |
| 169 | - organization.foundation_year = '2007' | |
| 170 | - organization.contact_email = 'my contact email' | |
| 171 | - | |
| 172 | - summary = organization.summary | |
| 173 | - assert(summary.any? { |line| line[1] == 'organization acronym' }) | |
| 174 | - assert(summary.any? { |line| line[1] == '2007' }) | |
| 175 | - assert(summary.any? { |line| line[1] == 'my contact email' }) | |
| 176 | - end | |
| 177 | - | |
| 178 | 165 | should 'has closed' do |
| 179 | 166 | org = Organization.new |
| 180 | 167 | assert_respond_to org, :closed | ... | ... |
test/unit/person_test.rb
| ... | ... | @@ -248,19 +248,6 @@ class PersonTest < Test::Unit::TestCase |
| 248 | 248 | assert p.respond_to?(:contact_information) |
| 249 | 249 | end |
| 250 | 250 | |
| 251 | - should 'provide needed information in summary' do | |
| 252 | - person = Person.new | |
| 253 | - | |
| 254 | - person.name = 'person name' | |
| 255 | - person.address = 'my address' | |
| 256 | - person.contact_information = 'my contact information' | |
| 257 | - | |
| 258 | - summary = person.summary | |
| 259 | - assert(summary.any? { |line| line[1] == 'person name' }) | |
| 260 | - assert(summary.any? { |line| line[1] == 'my address' }) | |
| 261 | - assert(summary.any? { |line| line[1] == 'my contact information' }, "summary (#{summary.map{|l| l[1] }.compact.join("; ")}) do not contain 'my contact informatidon'") | |
| 262 | - end | |
| 263 | - | |
| 264 | 251 | should 'required name' do |
| 265 | 252 | person = Person.new |
| 266 | 253 | assert !person.valid? | ... | ... |
test/unit/profile_helper_test.rb
| ... | ... | @@ -9,37 +9,8 @@ class ProfileHelperTest < Test::Unit::TestCase |
| 9 | 9 | end |
| 10 | 10 | attr_reader :profile, :helper |
| 11 | 11 | |
| 12 | - should 'display info' do | |
| 13 | - f1 = 'Field 1' | |
| 14 | - v1 = 'value 1' | |
| 15 | - f2 = 'Field 2' | |
| 16 | - v2 = 'value 2' | |
| 17 | - array = [ | |
| 18 | - [ f1, v1 ], | |
| 19 | - [ f2, v2 ] | |
| 20 | - ] | |
| 21 | - profile.expects(:summary).returns(array) | |
| 22 | - | |
| 23 | - helper.expects(:content_tag).returns('').at_least_once | |
| 24 | - | |
| 25 | - helper.expects(:_).at_least_once | |
| 26 | - helper.expects(:_).with('edit your information').returns('edit your information') | |
| 27 | - helper.expects(:button).with(:edit, 'edit your information', :controller => 'profile_editor', :action => 'edit').returns("BUTTON") | |
| 28 | - | |
| 29 | - helper.display_profile_info(profile) | |
| 30 | - end | |
| 31 | - | |
| 32 | - should 'call blocks' do | |
| 33 | - myproc = lambda { content_tag('div', 'lalala') } | |
| 34 | - profile.expects(:summary).returns([['f1', myproc ]]) | |
| 35 | - helper.stubs(:content_tag).returns('') | |
| 36 | - | |
| 37 | - helper.expects(:instance_eval).with(myproc) | |
| 38 | - | |
| 39 | - helper.expects(:_).at_least_once | |
| 40 | - helper.expects(:button).returns('') | |
| 41 | - | |
| 42 | - helper.display_profile_info(profile) | |
| 12 | + def test_true | |
| 13 | + assert true | |
| 43 | 14 | end |
| 44 | 15 | |
| 45 | 16 | end | ... | ... |