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 46 end
47 47  
48 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 52 end
51 53  
52 54 def favorite_enterprises
... ... @@ -151,4 +153,8 @@ class ProfileController < PublicController
151 153 def per_page
152 154 Noosfero::Constants::PROFILE_PER_PAGE
153 155 end
  156 +
  157 + def members_per_page
  158 + 20
  159 + end
154 160 end
... ...
app/models/profile.rb
... ... @@ -681,6 +681,11 @@ private :generate_url, :url_options
681 681 self.update_attribute(:layout_template, template)
682 682 end
683 683  
  684 + def members_cache_key(params = {})
  685 + page = params[:npage] || '1'
  686 + identifier + '-members-page-' + page
  687 + end
  688 +
684 689 protected
685 690  
686 691 def display_private_info_to?(user)
... ...
app/views/profile/members.rhtml
... ... @@ -3,11 +3,17 @@
3 3  
4 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 18 <% button_bar do %>
13 19 <%= button :back, _('Go back'), { :controller => 'profile' }, :help => _('Back to the page where you come from.') %>
... ...