diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application.css.scss index ade39f8..5411532 100644 --- a/app/assets/stylesheets/application.css.scss +++ b/app/assets/stylesheets/application.css.scss @@ -427,12 +427,15 @@ div#flash { nav.pagination { margin: 1em 0 0; float: right; - span.current { + span, a { display: block; - float: left; + float: left; } + span.gap { + margin-right: 4px; + padding: 4px 2px; } + span.current { font-weight: bold; border: 1px solid #333; - background: #666; margin: 0 4px 0 0px; color: #fff; background: #c6c6c6 url(Aristo/bg_fallback.png) 0 0 repeat-x; /* Old browsers */ @@ -444,8 +447,6 @@ nav.pagination { background: linear-gradient(top, #c6c6c6 0%,#e6e6e6 100%); /* W3C */ padding: 4px 6px; } a { - display: block; - float: left; text-decoration: none; padding: 4px 6px; margin: 0 4px 0 0px; @@ -516,3 +517,7 @@ div.links { line-height: 27px; text-shadow: 0 1px #fff; } + +.solutions .pagination { + margin: 0px; +} diff --git a/app/controllers/solutions_controller.rb b/app/controllers/solutions_controller.rb index c5857b4..62227bd 100644 --- a/app/controllers/solutions_controller.rb +++ b/app/controllers/solutions_controller.rb @@ -8,9 +8,8 @@ def index if !current_user_admin? && (@problem.nil? || !@problem.solved?(current_user)) redirect_to @problem and return end - @top_solutions = Solution.all(conditions: { problem_id: @problem.id, user_id: { "$nin" => [current_user.id] } }, - sort: [[:score, :desc], [:updated_at, :desc]], - limit: 5) + @top_solutions = Solution.where(problem_id: @problem.id, user_id: { "$nin" => [current_user.id] }). + desc(:score).desc(:updated_at).page(params[:page] || 1) @followed_users = current_user.users_followed.reject{|u| u.solutions.where(problem_id: @problem.id).empty?} respond_to do |format| diff --git a/app/models/solution.rb b/app/models/solution.rb index ff1c6f1..5ef7d26 100644 --- a/app/models/solution.rb +++ b/app/models/solution.rb @@ -19,6 +19,8 @@ class Solution after_destroy :update_user_solution_count validates_presence_of :problem_id + paginates_per 5 + track_history :track_create => true, :track_destroy => true diff --git a/app/views/solutions/index.html.erb b/app/views/solutions/index.html.erb index d24bf0e..5838aba 100644 --- a/app/views/solutions/index.html.erb +++ b/app/views/solutions/index.html.erb @@ -27,7 +27,10 @@ <% end -%> + + <%= paginate @top_solutions %> +
<% if solution = Solution.first(conditions: { user_id: current_user.id, problem_id: @problem.id }) %>