Commit 0f01bf0921305739e6cc0c59a44a6829d36fe339
1 parent
9dcfa5de
Exists in
master
and in
29 other branches
Added article tags list on profiles
Showing
3 changed files
with
16 additions
and
25 deletions
Show diff stats
app/helpers/profile_helper.rb
1 | 1 | module ProfileHelper |
2 | 2 | |
3 | 3 | COMMON_CATEGORIES = ActiveSupport::OrderedHash.new |
4 | - COMMON_CATEGORIES[:content] = [:blogs, :image_galleries, :events, :tags] | |
4 | + COMMON_CATEGORIES[:content] = [:blogs, :image_galleries, :events, :article_tags] | |
5 | 5 | COMMON_CATEGORIES[:interests] = [:interests] |
6 | 6 | COMMON_CATEGORIES[:general] = nil |
7 | 7 | |
... | ... | @@ -41,6 +41,7 @@ module ProfileHelper |
41 | 41 | :birth_date => _('Date of birth'), |
42 | 42 | :created_at => _('Profile created at'), |
43 | 43 | :members_count => _('Members'), |
44 | + :article_tags => _('Tags') | |
44 | 45 | } |
45 | 46 | |
46 | 47 | EXCEPTION = { |
... | ... | @@ -73,7 +74,11 @@ module ProfileHelper |
73 | 74 | return '' |
74 | 75 | end |
75 | 76 | value = begin profile.send(field) rescue nil end |
76 | - if !value.blank? | |
77 | + return '' if value.blank? | |
78 | + if value.kind_of?(Hash) | |
79 | + content = self.send("treat_#{field}", value) | |
80 | + content_tag('tr', content_tag('td', title(field), :class => 'field-name') + content_tag('td', content)) | |
81 | + else | |
77 | 82 | entries = multiple ? value : [] << value |
78 | 83 | entries.map do |entry| |
79 | 84 | content = self.send("treat_#{field}", entry) |
... | ... | @@ -81,8 +86,6 @@ module ProfileHelper |
81 | 86 | content_tag('tr', content_tag('td', title(field, entry), :class => 'field-name') + content_tag('td', content)) |
82 | 87 | end |
83 | 88 | end.join("\n") |
84 | - else | |
85 | - '' | |
86 | 89 | end |
87 | 90 | end |
88 | 91 | |
... | ... | @@ -144,7 +147,7 @@ module ProfileHelper |
144 | 147 | link_to events.published.count, :controller => 'events', :action => 'events' |
145 | 148 | end |
146 | 149 | |
147 | - def treat_tags(tags) | |
150 | + def treat_article_tags(tags) | |
148 | 151 | tag_cloud @tags, :id, { :action => 'tags' }, :max_size => 18, :min_size => 10 |
149 | 152 | end |
150 | 153 | ... | ... |
features/profile_tags.feature
... | ... | @@ -1,20 +0,0 @@ |
1 | -Feature: profile tags | |
2 | - As a Noosfero user | |
3 | - I want to to view content tagged | |
4 | - So that I can follow the subjects I care about | |
5 | - | |
6 | - Background: | |
7 | - Given the following users | |
8 | - | login | | |
9 | - | terceiro | | |
10 | - And the following articles | |
11 | - | owner | name | body | tag_list | | |
12 | - | terceiro | text 1 | text 1 content | tag1, tag2 | | |
13 | - | terceiro | text 2 | text 2 content | tag1, tag3 | | |
14 | - | |
15 | - Scenario: tag feed | |
16 | - When I go to terceiro's profile | |
17 | - And I follow "tag1" | |
18 | - And I follow "Feed for this tag" | |
19 | - Then I should see "text 1" | |
20 | - And I should see "text 2" |
test/functional/profile_controller_test.rb
... | ... | @@ -495,6 +495,14 @@ class ProfileControllerTest < ActionController::TestCase |
495 | 495 | assert_tag :tag => 'a', :content => 'One picture', :attributes => { :href => /\/testuser\/gallery/ } |
496 | 496 | end |
497 | 497 | |
498 | + should 'show tags in index' do | |
499 | + article = create(Article, :name => 'Published at', :profile_id => profile.id, :tag_list => ['tag1']) | |
500 | + | |
501 | + get :index, :profile => profile.identifier | |
502 | + | |
503 | + assert_tag :tag => 'a', :content => 'tag1', :attributes => { :href => /profile\/#{profile.identifier}\/tags\/tag1$/ } | |
504 | + end | |
505 | + | |
498 | 506 | should 'show description of orgarnization' do |
499 | 507 | login_as(@profile.identifier) |
500 | 508 | ent = fast_create(Enterprise) | ... | ... |