diff --git a/app/controllers/post_versions_controller.rb b/app/controllers/post_versions_controller.rb index ade388b63..71943d97a 100644 --- a/app/controllers/post_versions_controller.rb +++ b/app/controllers/post_versions_controller.rb @@ -3,7 +3,7 @@ class PostVersionsController < ApplicationController respond_to :html, :xml, :json def index - @post_versions = PostArchive.search(params[:search]).order("updated_at desc, id desc").paginate(params[:page], :limit => params[:limit], :search_count => params[:search]) + @post_versions = PostArchive.includes(:post, :updater).search(params[:search]).order("updated_at desc, id desc").paginate(params[:page], :limit => params[:limit], :search_count => params[:search]) respond_with(@post_versions) do |format| format.xml do render :xml => @post_versions.to_xml(:root => "post-versions") diff --git a/app/models/post_archive.rb b/app/models/post_archive.rb index 64b2d97e9..736fcc5dc 100644 --- a/app/models/post_archive.rb +++ b/app/models/post_archive.rb @@ -1,6 +1,9 @@ class PostArchive < ActiveRecord::Base extend Memoist + belongs_to :post + belongs_to :updater, class_name: "User" + def self.enabled? Danbooru.config.aws_sqs_archives_url.present? end @@ -92,18 +95,10 @@ class PostArchive < ActiveRecord::Base super end - def post - Post.where(id: post_id).first - end - def previous PostArchive.where("post_id = ? and version < ?", post_id, version).order("version desc").first end - def updater - User.find(updater_id) - end - def diff(version = nil) if post.nil? latest_tags = tag_array @@ -237,13 +232,9 @@ class PostArchive < ActiveRecord::Base post.save! end - def updater - User.find_by_id(updater_id) - end - def method_attributes super + [:obsolete_added_tags, :obsolete_removed_tags, :unchanged_tags, :updater_name] end - memoize :previous, :post, :tag_array, :changes, :added_tags_with_fields, :removed_tags_with_fields, :obsolete_removed_tags, :obsolete_added_tags, :unchanged_tags + memoize :previous, :tag_array, :changes, :added_tags_with_fields, :removed_tags_with_fields, :obsolete_removed_tags, :obsolete_added_tags, :unchanged_tags end diff --git a/app/views/post_versions/_listing.html.erb b/app/views/post_versions/_listing.html.erb index ed5ff4178..39ab5026b 100644 --- a/app/views/post_versions/_listing.html.erb +++ b/app/views/post_versions/_listing.html.erb @@ -37,7 +37,7 @@ <% if CurrentUser.is_member? %> <% if post_version.post.visible? %> - <% if post_version.id != post_version.post.versions.first.id %> + <% if post_version.version != 1 %> <%= link_to "Undo", undo_post_version_path(post_version), :method => :put, :remote => true %> | <% end %> <%= link_to "Revert to", revert_post_path(post_version.post_id, :version_id => post_version.id), :method => :put, :remote => true %> diff --git a/app/views/post_versions/index.html.erb b/app/views/post_versions/index.html.erb index c249f7329..8303e0fe6 100644 --- a/app/views/post_versions/index.html.erb +++ b/app/views/post_versions/index.html.erb @@ -2,7 +2,7 @@

Changes

- <% if @post_versions.empty? %> + <% if @post_versions.length == 0 %> <%= render "post_sets/blank" %> <% else %> <%= render "listing", :post_versions => @post_versions %>