diff --git a/app/controllers/moderator/post/posts_controller.rb b/app/controllers/moderator/post/posts_controller.rb index 67b4cb30a..0a410cfb0 100644 --- a/app/controllers/moderator/post/posts_controller.rb +++ b/app/controllers/moderator/post/posts_controller.rb @@ -13,7 +13,7 @@ module Moderator @post = ::Post.find(params[:id]) if params[:commit] == "Delete" @post.flag!(params[:reason]) - @post.delete!(:reason => params[:reason]) + @post.delete!(:reason => params[:reason], :move_favorites => params[:move_favorites].present?) end redirect_to(post_path(@post)) end diff --git a/app/models/post.rb b/app/models/post.rb index 18b91a1cb..a16c963e4 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -658,7 +658,7 @@ class Post < ActiveRecord::Base end def favorited_users - favorited_user_ids.map {|id| User.find_by_id(id)} + favorited_user_ids.map {|id| User.find(id)} end end @@ -929,12 +929,10 @@ class Post < ActiveRecord::Base def give_favorites_to_parent return if parent.nil? - favorited_user_ids.each do |user_id| - parent.add_favorite!(User.find(user_id)) - remove_favorite!(User.find(user_id)) + favorited_users.each do |user| + remove_favorite!(user) + parent.add_favorite!(user) end - - update_column(:score, 0) end def post_is_not_its_own_parent @@ -987,6 +985,7 @@ class Post < ActiveRecord::Base update_column(:is_pending, false) update_column(:is_flagged, false) update_column(:is_banned, true) if options[:ban] || has_tag?("banned_artist") + give_favorites_to_parent if options[:move_favorites] unless options[:without_mod_action] if options[:reason] diff --git a/app/views/moderator/post/posts/confirm_delete.html.erb b/app/views/moderator/post/posts/confirm_delete.html.erb index dc2948665..ec7335ed7 100644 --- a/app/views/moderator/post/posts/confirm_delete.html.erb +++ b/app/views/moderator/post/posts/confirm_delete.html.erb @@ -5,6 +5,15 @@ <%= form_tag(delete_moderator_post_post_path, :style => "clear: both;", :class => "simple_form") do %> + <% if @post.parent_id %> +