Commit e6c086315c508ee7629fdaebd97a9107874d7f99
Exists in
ratings_minor_fixes
and in
4 other branches
Merge branch 'refactor_profile_members_headlines' into 'master'
Remove ProfileMembersHeadlinesBlock#content This method was in violation of MVC principles and its logic is now handled by the BoxesHelper. Minor adaptations to the view and a rename were required in order to meet BoxesHelper expectations. See merge request !908
Showing
4 changed files
with
46 additions
and
51 deletions
Show diff stats
plugins/profile_members_headlines/lib/profile_members_headlines_block.rb
| ... | ... | @@ -35,12 +35,4 @@ class ProfileMembersHeadlinesBlock < Block |
| 35 | 35 | result.select{ |p| p.has_headline? }.slice(0..limit-1) |
| 36 | 36 | end |
| 37 | 37 | |
| 38 | - def content(args={}) | |
| 39 | - block = self | |
| 40 | - members = authors_list | |
| 41 | - proc do | |
| 42 | - render :file => 'blocks/headlines', :locals => { :block => block, :members => members } | |
| 43 | - end | |
| 44 | - end | |
| 45 | - | |
| 46 | 38 | end | ... | ... |
plugins/profile_members_headlines/test/unit/profile_members_headlines_block_test.rb
| 1 | 1 | require 'test_helper' |
| 2 | +require 'boxes_helper' | |
| 2 | 3 | |
| 3 | 4 | class ProfileMembersHeadlinesBlockTest < ActiveSupport::TestCase |
| 4 | 5 | |
| 5 | 6 | include Noosfero::Plugin::HotSpot |
| 7 | + include BoxesHelper | |
| 6 | 8 | |
| 7 | 9 | def setup |
| 8 | 10 | @environment = fast_create(Environment) |
| ... | ... | @@ -32,8 +34,8 @@ class ProfileMembersHeadlinesBlockTest < ActiveSupport::TestCase |
| 32 | 34 | block = ProfileMembersHeadlinesBlock.create |
| 33 | 35 | block.stubs(:owner).returns(community) |
| 34 | 36 | |
| 35 | - self.expects(:render).with(:file => 'blocks/headlines', :locals => { :block => block, :members => []}).returns('file-without-authors-and-headlines') | |
| 36 | - assert_equal 'file-without-authors-and-headlines', instance_eval(&block.content) | |
| 37 | + self.expects(:render).with(:template => 'blocks/profile_members_headlines', :locals => { :block => block }).returns('file-without-authors-and-headlines') | |
| 38 | + assert_equal 'file-without-authors-and-headlines', render_block_content(block) | |
| 37 | 39 | end |
| 38 | 40 | |
| 39 | 41 | should 'display headlines file' do |
| ... | ... | @@ -41,8 +43,8 @@ class ProfileMembersHeadlinesBlockTest < ActiveSupport::TestCase |
| 41 | 43 | block.stubs(:owner).returns(community) |
| 42 | 44 | blog = fast_create(Blog, :profile_id => member1.id) |
| 43 | 45 | post = fast_create(TinyMceArticle, :name => 'headlines', :profile_id => member1.id, :parent_id => blog.id) |
| 44 | - self.expects(:render).with(:file => 'blocks/headlines', :locals => { :block => block, :members => []}).returns('file-with-authors-and-headlines') | |
| 45 | - assert_equal 'file-with-authors-and-headlines', instance_eval(&block.content) | |
| 46 | + self.expects(:render).with(:template => 'blocks/profile_members_headlines', :locals => { :block => block }).returns('file-with-authors-and-headlines') | |
| 47 | + assert_equal 'file-with-authors-and-headlines', render_block_content(block) | |
| 46 | 48 | end |
| 47 | 49 | |
| 48 | 50 | should 'select only authors with articles and selected roles to display' do | ... | ... |
plugins/profile_members_headlines/views/blocks/headlines.html.erb
| ... | ... | @@ -1,39 +0,0 @@ |
| 1 | -<%= block_title(block.title, block.subtitle) %> | |
| 2 | - | |
| 3 | -<% unless members.empty? %> | |
| 4 | - <div class='headlines-container'> | |
| 5 | - <% members.each do |member| %> | |
| 6 | - <div> | |
| 7 | - <% headline = member.headline %> | |
| 8 | - <%= link_to_profile(profile_image(member, :big) + content_tag(:p, member.short_name), member.identifier, {:class => 'author'}) %> | |
| 9 | - <div class='post'> | |
| 10 | - <h4><%= link_to(headline.title, headline.url, :class => 'title') %></h4> | |
| 11 | - <div class='lead'> | |
| 12 | - <%= headline.short_lead %> | |
| 13 | - </div> | |
| 14 | - <div class='date'> | |
| 15 | - <%= show_date(headline.published_at) %> | |
| 16 | - </div> | |
| 17 | - <div class='tags'> | |
| 18 | - <%= safe_join(headline.tags.map { |t| link_to(t, :controller => 'profile', :profile => member.identifier, :action => 'tags', :id => t.name ) }, "\n") %> | |
| 19 | - </div> | |
| 20 | - </div> | |
| 21 | - </div> | |
| 22 | - <% end %> | |
| 23 | - </div> | |
| 24 | - <% if block.navigation %> | |
| 25 | - <div class='headlines-block-pager'> | |
| 26 | - </div> | |
| 27 | - <% end %> | |
| 28 | - | |
| 29 | - <script> | |
| 30 | - (function($) { | |
| 31 | - var options = {fx: 'fade', pause: 1, fastOnEvent: 1, timeout: <%= block.interval * 1000 %>}; | |
| 32 | - options.pager = '#block-<%= block.id %> .headlines-block-pager'; | |
| 33 | - $('#block-<%= block.id %> .headlines-container').cycle(options); | |
| 34 | - })(jQuery); | |
| 35 | - </script> | |
| 36 | -<% else %> | |
| 37 | - <em><%= _('No headlines to be shown.') %></em> | |
| 38 | -<% end %> | |
| 39 | - |
plugins/profile_members_headlines/views/blocks/profile_members_headlines.html.erb
0 → 100644
| ... | ... | @@ -0,0 +1,40 @@ |
| 1 | +<%= block_title(block.title, block.subtitle) %> | |
| 2 | +<% members = block.authors_list %> | |
| 3 | + | |
| 4 | +<% unless members.empty? %> | |
| 5 | + <div class='headlines-container'> | |
| 6 | + <% members.each do |member| %> | |
| 7 | + <div> | |
| 8 | + <% headline = member.headline %> | |
| 9 | + <%= link_to_profile(profile_image(member, :big) + content_tag(:p, member.short_name), member.identifier, {:class => 'author'}) %> | |
| 10 | + <div class='post'> | |
| 11 | + <h4><%= link_to(headline.title, headline.url, :class => 'title') %></h4> | |
| 12 | + <div class='lead'> | |
| 13 | + <%= headline.short_lead %> | |
| 14 | + </div> | |
| 15 | + <div class='date'> | |
| 16 | + <%= show_date(headline.published_at) %> | |
| 17 | + </div> | |
| 18 | + <div class='tags'> | |
| 19 | + <%= safe_join(headline.tags.map { |t| link_to(t, :controller => 'profile', :profile => member.identifier, :action => 'tags', :id => t.name ) }, "\n") %> | |
| 20 | + </div> | |
| 21 | + </div> | |
| 22 | + </div> | |
| 23 | + <% end %> | |
| 24 | + </div> | |
| 25 | + <% if block.navigation %> | |
| 26 | + <div class='headlines-block-pager'> | |
| 27 | + </div> | |
| 28 | + <% end %> | |
| 29 | + | |
| 30 | + <script> | |
| 31 | + (function($) { | |
| 32 | + var options = {fx: 'fade', pause: 1, fastOnEvent: 1, timeout: <%= block.interval * 1000 %>}; | |
| 33 | + options.pager = '#block-<%= block.id %> .headlines-block-pager'; | |
| 34 | + $('#block-<%= block.id %> .headlines-container').cycle(options); | |
| 35 | + })(jQuery); | |
| 36 | + </script> | |
| 37 | +<% else %> | |
| 38 | + <em><%= _('No headlines to be shown.') %></em> | |
| 39 | +<% end %> | |
| 40 | + | ... | ... |