Commit 2108a3c4eb1830cae95451f8715224338ac47ae7
Committed by
Antonio Terceiro
1 parent
e7cfa55e
Exists in
master
and in
22 other branches
Pagination in the organization member's page
* Also created another method for the cache of members called members_cache_key (ActionItem1399)
Showing
3 changed files
with
23 additions
and
6 deletions
Show diff stats
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.') %> |