diff --git a/app/controllers/pools_controller.rb b/app/controllers/pools_controller.rb index c8ccae4e9..c605a0f87 100644 --- a/app/controllers/pools_controller.rb +++ b/app/controllers/pools_controller.rb @@ -27,13 +27,15 @@ class PoolsController < ApplicationController params[:limit] ||= CurrentUser.user.per_page @pools = Pool.search(search_params).paginate(params[:page], :limit => params[:limit], :search_count => params[:search]) - @post_set = PostSets::PoolGallery.new(@pools) end def show @pool = Pool.find(params[:id]) - @post_set = PostSets::Pool.new(@pool, params[:page]) - respond_with(@pool) + respond_with(@pool) do |format| + format.html do + @posts = @pool.posts.paginate(params[:page], limit: params[:limit], total_count: @pool.post_ids.count) + end + end end def create diff --git a/app/decorators/posts_decorator.rb b/app/decorators/posts_decorator.rb index c3bfffb14..7ccb9b18c 100644 --- a/app/decorators/posts_decorator.rb +++ b/app/decorators/posts_decorator.rb @@ -81,7 +81,7 @@ class PostsDecorator < ApplicationDecorator def preview_html(t, options = {}) post = object if post.nil? - return "none".html_safe + return "" end if !options[:show_deleted] && post.is_deleted? && options[:tags] !~ /(?:status:(?:all|any|deleted))|(?:deletedby:)|(?:delreason:)/i diff --git a/app/logical/post_sets/pool.rb b/app/logical/post_sets/pool.rb deleted file mode 100644 index ba8e06a07..000000000 --- a/app/logical/post_sets/pool.rb +++ /dev/null @@ -1,34 +0,0 @@ -module PostSets - class Pool < PostSets::Base - attr_reader :pool, :page - - def initialize(pool, page = 1) - @pool = pool - @page = page - end - - def limit - CurrentUser.user.per_page - end - - def tag_array - ["pool:#{pool.id}"] - end - - def posts - @posts ||= pool.posts.paginate(page, limit: limit, total_count: pool.post_ids.count) - end - - def tag_string - tag_array.join("") - end - - def humanized_tag_string - "pool:#{pool.pretty_name}" - end - - def presenter - @presenter ||= PostSetPresenters::Pool.new(self) - end - end -end diff --git a/app/logical/post_sets/pool_gallery.rb b/app/logical/post_sets/pool_gallery.rb deleted file mode 100644 index ea97a26b8..000000000 --- a/app/logical/post_sets/pool_gallery.rb +++ /dev/null @@ -1,13 +0,0 @@ -module PostSets - class PoolGallery < PostSets::Base - attr_reader :pools - - def initialize(pools) - @pools = pools - end - - def presenter - @presenter ||= ::PostSetPresenters::PoolGallery.new(self) - end - end -end diff --git a/app/models/pool.rb b/app/models/pool.rb index c96d252fa..eae9813c1 100644 --- a/app/models/pool.rb +++ b/app/models/pool.rb @@ -300,8 +300,8 @@ class Pool < ApplicationRecord post_ids[n] end - def cover_post_id - post_ids.first + def cover_post + Post.find_by(id: post_ids.first) end def create_version(updater: CurrentUser.user, updater_ip_addr: CurrentUser.ip_addr) diff --git a/app/presenters/post_presenter.rb b/app/presenters/post_presenter.rb index ff7c45b30..7a4e726a4 100644 --- a/app/presenters/post_presenter.rb +++ b/app/presenters/post_presenter.rb @@ -4,7 +4,7 @@ class PostPresenter < Presenter def self.preview(post, options = {}) if post.nil? - return "none".html_safe + return "" end if !options[:show_deleted] && post.is_deleted? && options[:tags] !~ /(?:status:(?:all|any|deleted))|(?:deletedby:)|(?:delreason:)/i diff --git a/app/presenters/post_set_presenters/pool.rb b/app/presenters/post_set_presenters/pool.rb deleted file mode 100644 index a6b6aa463..000000000 --- a/app/presenters/post_set_presenters/pool.rb +++ /dev/null @@ -1,24 +0,0 @@ -module PostSetPresenters - class Pool < Base - attr_reader :post_set - delegate :posts, :to => :post_set - - def initialize(post_set) - @post_set = post_set - end - - def post_previews_html(template) - html = "" - - if posts.empty? - return template.render("posts/blank") - end - - posts.each do |post| - html << PostPresenter.preview(post, :pool_id => post_set.pool.id, show_cropped: true, show_deleted: true) - end - - html.html_safe - end - end -end diff --git a/app/presenters/post_set_presenters/pool_gallery.rb b/app/presenters/post_set_presenters/pool_gallery.rb deleted file mode 100644 index 6a93acce9..000000000 --- a/app/presenters/post_set_presenters/pool_gallery.rb +++ /dev/null @@ -1,29 +0,0 @@ -module PostSetPresenters - class PoolGallery < Base - attr_accessor :post_set - delegate :pools, :to => :post_set - - def initialize(post_set) - @post_set = post_set - end - - def post_previews_html(template) - html = "" - - if pools.empty? - return template.render("posts/blank") - end - - pools.each do |pool| - if pool.cover_post_id - post = ::Post.find_by_id(pool.cover_post_id) - next if post.nil? - html << PostPresenter.preview(post, inline: true, link_target: pool, pool: pool, show_deleted: true) - html << "\n" - end - end - - html.html_safe - end - end -end diff --git a/app/views/pools/gallery.html.erb b/app/views/pools/gallery.html.erb index 7b005c462..baced34e2 100644 --- a/app/views/pools/gallery.html.erb +++ b/app/views/pools/gallery.html.erb @@ -1,16 +1,21 @@
diff --git a/app/views/pools/show.html.erb b/app/views/pools/show.html.erb index d0d0d4bff..9d3f93e63 100644 --- a/app/views/pools/show.html.erb +++ b/app/views/pools/show.html.erb @@ -2,7 +2,7 @@

<%= @pool.pretty_category %>: - <%= link_to @pool.pretty_name, posts_path(:tags => "pool:#{@pool.id}"), :class => "pool-category-#{@pool.category}" %> + <%= link_to @pool.pretty_name, posts_path(tags: "pool:#{@pool.id}"), class: "pool-category-#{@pool.category}" %>

@@ -13,11 +13,16 @@
- <%= @post_set.presenter.post_previews_html(self) %> + <% if @posts.none? %> + <%= render "posts/blank" %> + <% else %> + <% @posts.each do |post| %> + <%= PostPresenter.preview(post, pool_id: @pool.id, show_cropped: true, show_deleted: true) %> + <% end %> + <% end %>
- - <%= numbered_paginator(@post_set.posts) %>
+ <%= numbered_paginator(@posts) %>
diff --git a/test/unit/post_sets/pool_test.rb b/test/unit/post_sets/pool_test.rb index 81c9cca97..773074e0b 100644 --- a/test/unit/post_sets/pool_test.rb +++ b/test/unit/post_sets/pool_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require "test_helper" module PostSets class PoolTest < ActiveSupport::TestCase @@ -7,44 +7,42 @@ module PostSets @user = create(:user) CurrentUser.user = @user - @post_1 = create(:post) - @post_2 = create(:post) - @post_3 = create(:post) + @post1 = create(:post) + @post2 = create(:post) + @post3 = create(:post) @pool = create(:pool) - @pool.add!(@post_2) - @pool.add!(@post_1) - @pool.add!(@post_3) + @pool.add!(@post2) + @pool.add!(@post1) + @pool.add!(@post3) end context "a post pool set for page 2" do setup do - @set = PostSets::Pool.new(@pool, 2) - @set.stubs(:limit).returns(1) + @post_page = @pool.posts.paginate(2, limit: 1) end should "return the second element" do - assert_equal(1, @set.posts.size) - assert_equal(@post_1.id, @set.posts.first.id) + assert_equal(1, @post_page.size) + assert_equal(@post1, @post_page.first) end should "know the total number of pages" do - assert_equal(3, @set.posts.total_pages) + assert_equal(3, @post_page.total_pages) end should "know the current page" do - assert_equal(2, @set.posts.current_page) + assert_equal(2, @post_page.current_page) end end context "a post pool set with no page specified" do setup do - @set = PostSets::Pool.new(@pool) - @set.stubs(:limit).returns(1) + @post_page = @pool.posts.paginate(nil, limit: 1) end should "return the first element" do - assert_equal(1, @set.posts.size) - assert_equal(@post_2.id, @set.posts.first.id) + assert_equal(1, @post_page.size) + assert_equal(@post2, @post_page.first) end end end