Commit 2108a3c4eb1830cae95451f8715224338ac47ae7

Authored by Rodrigo Souto
Committed by Antonio Terceiro
1 parent e7cfa55e

Pagination in the organization member's page

* Also created another method for the cache of members called
	  members_cache_key

(ActionItem1399)
app/controllers/public/profile_controller.rb
@@ -46,7 +46,9 @@ class ProfileController < PublicController @@ -46,7 +46,9 @@ class ProfileController < PublicController
46 end 46 end
47 47
48 def members 48 def members
49 - @members = profile.members 49 + if is_cache_expired?(profile.members_cache_key(params))
  50 + @members = profile.members.paginate(:per_page => members_per_page, :page => params[:npage])
  51 + end
50 end 52 end
51 53
52 def favorite_enterprises 54 def favorite_enterprises
@@ -151,4 +153,8 @@ class ProfileController < PublicController @@ -151,4 +153,8 @@ class ProfileController < PublicController
151 def per_page 153 def per_page
152 Noosfero::Constants::PROFILE_PER_PAGE 154 Noosfero::Constants::PROFILE_PER_PAGE
153 end 155 end
  156 +
  157 + def members_per_page
  158 + 20
  159 + end
154 end 160 end
app/models/profile.rb
@@ -681,6 +681,11 @@ private :generate_url, :url_options @@ -681,6 +681,11 @@ private :generate_url, :url_options
681 self.update_attribute(:layout_template, template) 681 self.update_attribute(:layout_template, template)
682 end 682 end
683 683
  684 + def members_cache_key(params = {})
  685 + page = params[:npage] || '1'
  686 + identifier + '-members-page-' + page
  687 + end
  688 +
684 protected 689 protected
685 690
686 def display_private_info_to?(user) 691 def display_private_info_to?(user)
app/views/profile/members.rhtml
@@ -3,11 +3,17 @@ @@ -3,11 +3,17 @@
3 3
4 <h1><%= _("%s's members") % profile.name %></h1> 4 <h1><%= _("%s's members") % profile.name %></h1>
5 5
6 -<ul class='profile-list'>  
7 - <% @members.each do |member| %>  
8 - <%= profile_image_link(member) %>  
9 - <% end %>  
10 -</ul> 6 +<% cache_timeout(profile.members_cache_key(params), 4.hours.from_now) do %>
  7 + <ul class='profile-list'>
  8 + <% @members.each do |member| %>
  9 + <%= profile_image_link(member) %>
  10 + <% end %>
  11 + </ul>
  12 +
  13 + <div id='pagination-profiles'>
  14 + <%= pagination_links @members, :param_name => 'npage' %>
  15 + </div>
  16 +<% end %>
11 17
12 <% button_bar do %> 18 <% button_bar do %>
13 <%= button :back, _('Go back'), { :controller => 'profile' }, :help => _('Back to the page where you come from.') %> 19 <%= button :back, _('Go back'), { :controller => 'profile' }, :help => _('Back to the page where you come from.') %>