diff --git a/app/controllers/public/profile_controller.rb b/app/controllers/public/profile_controller.rb index cee2a6b..4bb9a81 100644 --- a/app/controllers/public/profile_controller.rb +++ b/app/controllers/public/profile_controller.rb @@ -46,7 +46,9 @@ class ProfileController < PublicController end def members - @members = profile.members + if is_cache_expired?(profile.members_cache_key(params)) + @members = profile.members.paginate(:per_page => members_per_page, :page => params[:npage]) + end end def favorite_enterprises @@ -151,4 +153,8 @@ class ProfileController < PublicController def per_page Noosfero::Constants::PROFILE_PER_PAGE end + + def members_per_page + 20 + end end diff --git a/app/models/profile.rb b/app/models/profile.rb index 82a566b..461303b 100644 --- a/app/models/profile.rb +++ b/app/models/profile.rb @@ -681,6 +681,11 @@ private :generate_url, :url_options self.update_attribute(:layout_template, template) end + def members_cache_key(params = {}) + page = params[:npage] || '1' + identifier + '-members-page-' + page + end + protected def display_private_info_to?(user) diff --git a/app/views/profile/members.rhtml b/app/views/profile/members.rhtml index 6442776..eede21d 100644 --- a/app/views/profile/members.rhtml +++ b/app/views/profile/members.rhtml @@ -3,11 +3,17 @@

<%= _("%s's members") % profile.name %>

- +<% cache_timeout(profile.members_cache_key(params), 4.hours.from_now) do %> + + +
+ <%= pagination_links @members, :param_name => 'npage' %> +
+<% end %> <% button_bar do %> <%= button :back, _('Go back'), { :controller => 'profile' }, :help => _('Back to the page where you come from.') %> -- libgit2 0.21.2