Commit a5313c2adba85ebef8ba1f62a21e98c5e19ff702
1 parent
7679e33d
Exists in
master
and in
29 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,14 +9,20 @@ class CmsController < MyProfileController | ||
9 | 9 | ||
10 | include CmsHelper | 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 | def view | 27 | def view |
22 | @article = profile.articles.find(params[:id]) | 28 | @article = profile.articles.find(params[:id]) |
@@ -51,7 +57,7 @@ class CmsController < MyProfileController | @@ -51,7 +57,7 @@ class CmsController < MyProfileController | ||
51 | @type = params[:type] | 57 | @type = params[:type] |
52 | if @type.blank? | 58 | if @type.blank? |
53 | @article_types = [] | 59 | @article_types = [] |
54 | - ARTICLE_TYPES.each do |type| | 60 | + available_article_types.each do |type| |
55 | @article_types.push({ | 61 | @article_types.push({ |
56 | :name => type.name, | 62 | :name => type.name, |
57 | :short_description => type.short_description, | 63 | :short_description => type.short_description, |
@@ -63,7 +69,7 @@ class CmsController < MyProfileController | @@ -63,7 +69,7 @@ class CmsController < MyProfileController | ||
63 | return | 69 | return |
64 | end | 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 | klass = @type.constantize | 73 | klass = @type.constantize |
68 | @article = klass.new(params[:article]) | 74 | @article = klass.new(params[:article]) |
69 | 75 |
app/helpers/profile_helper.rb
1 | module ProfileHelper | 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 | end | 3 | end |
app/models/organization.rb
@@ -47,12 +47,6 @@ class Organization < Profile | @@ -47,12 +47,6 @@ class Organization < Profile | ||
47 | 47 | ||
48 | xss_terminate :only => [ :acronym, :contact_person, :contact_email, :legal_form, :economic_activity, :management_information ] | 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 | # Yes, organizations have members. | 50 | # Yes, organizations have members. |
57 | # | 51 | # |
58 | # Returns <tt>true</tt>. | 52 | # Returns <tt>true</tt>. |
app/models/person.rb
@@ -29,12 +29,6 @@ class Person < Profile | @@ -29,12 +29,6 @@ class Person < Profile | ||
29 | N_('Contact information'); N_('Birth date'); N_('City'); N_('State'); N_('Country'); N_('Sex'); | 29 | N_('Contact information'); N_('Birth date'); N_('City'); N_('State'); N_('Country'); N_('Sex'); |
30 | settings_items :photo, :contact_information, :birth_date, :sex, :city, :state, :country | 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 | def self.conditions_for_profiles(conditions, person) | 32 | def self.conditions_for_profiles(conditions, person) |
39 | new_conditions = sanitize_sql(['role_assignments.accessor_id = ?', person]) | 33 | new_conditions = sanitize_sql(['role_assignments.accessor_id = ?', person]) |
40 | new_conditions << ' AND ' + sanitize_sql(conditions) unless conditions.blank? | 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,4 +470,14 @@ class CmsControllerTest < Test::Unit::TestCase | ||
470 | assert_tag :input, :attributes => { :id => 'article_link' } | 470 | assert_tag :input, :attributes => { :id => 'article_link' } |
471 | end | 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 | end | 483 | end |
@@ -0,0 +1,26 @@ | @@ -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,19 +162,6 @@ class OrganizationTest < Test::Unit::TestCase | ||
162 | assert ! org.errors.invalid?(:foundation_year) | 162 | assert ! org.errors.invalid?(:foundation_year) |
163 | end | 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 | should 'has closed' do | 165 | should 'has closed' do |
179 | org = Organization.new | 166 | org = Organization.new |
180 | assert_respond_to org, :closed | 167 | assert_respond_to org, :closed |
test/unit/person_test.rb
@@ -248,19 +248,6 @@ class PersonTest < Test::Unit::TestCase | @@ -248,19 +248,6 @@ class PersonTest < Test::Unit::TestCase | ||
248 | assert p.respond_to?(:contact_information) | 248 | assert p.respond_to?(:contact_information) |
249 | end | 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 | should 'required name' do | 251 | should 'required name' do |
265 | person = Person.new | 252 | person = Person.new |
266 | assert !person.valid? | 253 | assert !person.valid? |
test/unit/profile_helper_test.rb
@@ -9,37 +9,8 @@ class ProfileHelperTest < Test::Unit::TestCase | @@ -9,37 +9,8 @@ class ProfileHelperTest < Test::Unit::TestCase | ||
9 | end | 9 | end |
10 | attr_reader :profile, :helper | 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 | end | 14 | end |
44 | 15 | ||
45 | end | 16 | end |