forked from e621ng/e621ng
Merge pull request #112 from zwagoth/approve_unapprove
Allow post unapproval
This commit is contained in:
commit
962e88a281
@ -11,6 +11,11 @@ module Moderator
|
||||
@approval = post.approve!
|
||||
respond_with(:moderator, @approval)
|
||||
end
|
||||
|
||||
def destroy
|
||||
post = ::Post.find(params[:post_id])
|
||||
post.unapprove!
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -300,7 +300,7 @@ class Post < ApplicationRecord
|
||||
|
||||
module ApprovalMethods
|
||||
def is_approvable?(user = CurrentUser.user)
|
||||
!is_status_locked? && (is_pending? || is_flagged? || is_deleted?) && uploader != user
|
||||
!is_status_locked? && (is_pending? || is_flagged? || is_deleted?)
|
||||
end
|
||||
|
||||
def flag!(reason, options = {})
|
||||
@ -327,11 +327,16 @@ class Post < ApplicationRecord
|
||||
approver == user || approvals.where(user: user).exists?
|
||||
end
|
||||
|
||||
def unapprove!(unapprover = CurrentUser.user)
|
||||
update(approver: nil, is_pending: true)
|
||||
end
|
||||
|
||||
|
||||
def approve!(approver = CurrentUser.user)
|
||||
approvals.create(user: approver)
|
||||
post.flags.each(&:resolve!)
|
||||
post.update(approver: approver, is_flagged: false, is_pending: false, is_deleted: false)
|
||||
approv = approvals.create(user: approver)
|
||||
flags.each(&:resolve!)
|
||||
update(approver: approver, is_flagged: false, is_pending: false, is_deleted: false)
|
||||
approv
|
||||
end
|
||||
|
||||
def disapproved_by?(user)
|
||||
|
@ -14,10 +14,6 @@ class PostApproval < ApplicationRecord
|
||||
if post.status == "active"
|
||||
errors.add(:post, "is already active and cannot be approved")
|
||||
end
|
||||
|
||||
if post.uploader == user
|
||||
errors.add(:base, "You cannot approve a post you uploaded")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
@ -44,6 +44,10 @@
|
||||
<li><%= link_to "Hide from queue", moderator_post_disapprovals_path(post_disapproval: { post_id: post.id, reason: "disinterest" }), remote: true, method: :post, id: "disapprove" %></li>
|
||||
<% end %>
|
||||
|
||||
<% if !post.is_pending? && !post.is_deleted? %>
|
||||
<li><%= link_to "Unapprove", moderator_post_approval_path(post_id: post.id), remote: true, method: :delete, id: "unapprove", "data-confirm": "Are you sure you want to unapprove this post?" %></li>
|
||||
<% end %>
|
||||
|
||||
<% if CurrentUser.is_admin? %>
|
||||
<li><%= link_to "Expunge", expunge_moderator_post_post_path(:post_id => post.id), :remote => true, :method => :post, :id => "expunge", :data => {:confirm => "This will permanently delete this post (meaning the file will be deleted). Are you sure you want to delete this post?"} %></li>
|
||||
<% end %>
|
||||
|
@ -28,7 +28,7 @@ Rails.application.routes.draw do
|
||||
get :random
|
||||
end
|
||||
end
|
||||
resource :approval, :only => [:create]
|
||||
resource :approval, :only => [:create, :destroy]
|
||||
resources :disapprovals, :only => [:create, :index]
|
||||
resources :posts, :only => [:delete, :undelete, :expunge, :confirm_delete] do
|
||||
member do
|
||||
|
Loading…
Reference in New Issue
Block a user