Skip to content

Commit

Permalink
Merge pull request #2028 from MushroomObserver/nimmo-contribs-paginate
Browse files Browse the repository at this point in the history
Paginate Contributors index
  • Loading branch information
nimmolo committed Mar 18, 2024
2 parents d669ad8 + c5caef4 commit 6ebe9d5
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 41 deletions.
8 changes: 8 additions & 0 deletions app/classes/query/user_with_contribution.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# frozen_string_literal: true

class Query::UserWithContribution < Query::UserBase
def initialize_flavor
where << "users.contribution > 0"
super
end
end
5 changes: 4 additions & 1 deletion app/controllers/contributors_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ class ContributorsController < ApplicationController

# Contributors index
def index
@users = User.by_contribution.where(contribution: 1..)
query = create_query(:User, :with_contribution, by: :contribution)
args = { action: :index, matrix: true, include: [:image] }

show_index_of_objects(query, args)
end
end
7 changes: 6 additions & 1 deletion app/views/controllers/contributors/_contributor.html.erb
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
<%
# `user_counter` is a collection property that starts at 0
number = (user_counter + 1) + (@pages.num_per_page * (@pages.number - 1))
%>

<div class="list-group-item">
<div class="row">

<div class="col-sm-7">
<table class="w-100">
<tr>
<td class="align-middle col-sm-2">
<strong><%= user_counter %></strong>
<strong><%= number %></strong>
</td>
<td>
<h4><%= user_link(user.id, user.legal_name) %></h4>
Expand Down
80 changes: 41 additions & 39 deletions app/views/controllers/contributors/index.html.erb
Original file line number Diff line number Diff line change
@@ -1,52 +1,54 @@
<%
@container = :wide
@container = :double
add_page_title(:users_by_contribution_title.t)
add_tab_set(contributors_index_tabs)
%>
<div class="row">
<div class="col-md-6">
<div class="list-group">
<%= render(partial: "contributors/contributor",
collection: @users, as: :user) %>
<%= paginate_block(@pages) do %>
<div class="row">
<div class="col-md-6">
<div class="list-group">
<%= render(partial: "contributors/contributor",
collection: @objects, as: :user) %>
</div>
</div>
</div>

<div class="col-md-6">
<div class="list-group">
<div class="list-group-item">
<div class="col-md-6">
<div class="list-group">
<div class="list-group-item">

<%= :users_by_contribution_1.tp %>
<% UserStats.fields_with_weight.keys.each do |field| %>
<%= :users_by_contribution_1.tp %>
<% UserStats.fields_with_weight.keys.each do |field| %>
<div class="row">
<div class="col-xs-8 col-xs-push-1"><%= "user_stats_#{field}".to_sym.t %> </div>
<div class="col-xs-2"><%= UserStats::ALL_FIELDS[field][:weight] %></div>
</div><!--.row-->
<% end %>
<p class="pt-3"><%= :users_by_contribution_2.t %></p>
<%
v1 = UserStats::ALL_FIELDS[:images][:weight]
v2 = UserStats::ALL_FIELDS[:name_description_editors][:weight]
v3 = UserStats::ALL_FIELDS[:observations][:weight]
v4 = UserStats::ALL_FIELDS[:namings][:weight]
v5 = UserStats::ALL_FIELDS[:votes][:weight]
%>
<div class="row">
<div class="col-xs-8 col-xs-push-1"><%= "user_stats_#{field}".to_sym.t %> </div>
<div class="col-xs-2"><%= UserStats::ALL_FIELDS[field][:weight] %></div>
<div class="col-xs-3 col-xs-push-1">&nbsp; &nbsp;3 * <%= v1 %></div>
<div class="col-xs-8">(<%= :users_by_contribution_2a.t %>)</div>
<div class="col-xs-3 col-xs-push-1">+ 1 * <%= v2 %></div>
<div class="col-xs-8">(<%= :users_by_contribution_2b.t %>)</div>
<div class="col-xs-3 col-xs-push-1">+ 1 * <%= v3 %></div>
<div class="col-xs-8">(<%= :users_by_contribution_2c.t %>)</div>
<div class="col-xs-3 col-xs-push-1">+ 1 * <%= v4 %></div>
<div class="col-xs-8">(<%= :users_by_contribution_2d.t %>)</div>
<div class="col-xs-3 col-xs-push-1">+ 1 * <%= v5 %></div>
<div class="col-xs-8">(<%= :users_by_contribution_2e.t %>)</div>
<div class="col-xs-11 col-xs-push-1">&nbsp; &nbsp;<%= 3*v1 + v2 + v3 + v4 + v5 %> <%= :users_by_contribution_2f.t %></div>
</div><!--.row-->
<% end %>
<p class="pt-3"><%= :users_by_contribution_2.t %></p>
<%
v1 = UserStats::ALL_FIELDS[:images][:weight]
v2 = UserStats::ALL_FIELDS[:name_description_editors][:weight]
v3 = UserStats::ALL_FIELDS[:observations][:weight]
v4 = UserStats::ALL_FIELDS[:namings][:weight]
v5 = UserStats::ALL_FIELDS[:votes][:weight]
%>
<div class="row">
<div class="col-xs-3 col-xs-push-1">&nbsp; &nbsp;3 * <%= v1 %></div>
<div class="col-xs-8">(<%= :users_by_contribution_2a.t %>)</div>
<div class="col-xs-3 col-xs-push-1">+ 1 * <%= v2 %></div>
<div class="col-xs-8">(<%= :users_by_contribution_2b.t %>)</div>
<div class="col-xs-3 col-xs-push-1">+ 1 * <%= v3 %></div>
<div class="col-xs-8">(<%= :users_by_contribution_2c.t %>)</div>
<div class="col-xs-3 col-xs-push-1">+ 1 * <%= v4 %></div>
<div class="col-xs-8">(<%= :users_by_contribution_2d.t %>)</div>
<div class="col-xs-3 col-xs-push-1">+ 1 * <%= v5 %></div>
<div class="col-xs-8">(<%= :users_by_contribution_2e.t %>)</div>
<div class="col-xs-11 col-xs-push-1">&nbsp; &nbsp;<%= 3*v1 + v2 + v3 + v4 + v5 %> <%= :users_by_contribution_2f.t %></div>
</div><!--.row-->
<%= :users_by_contribution_3.tp %>
<%= :users_by_contribution_3.tp %>

</div>
</div>
</div>
</div>
</div><!--.row-->
</div><!--.row-->
<% end %>

0 comments on commit 6ebe9d5

Please sign in to comment.