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 | 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.') %> | ... | ... |