33 lines
857 B
Ruby
33 lines
857 B
Ruby
module Moderator
|
|
module Dashboard
|
|
module Queries
|
|
class PostFlag
|
|
attr_reader :post, :count
|
|
|
|
def self.all(min_date)
|
|
sql = <<-EOS
|
|
SELECT post_flags.post_id, count(*)
|
|
FROM post_flags
|
|
JOIN posts ON posts.id = post_flags.post_id
|
|
WHERE
|
|
post_flags.created_at > ?
|
|
AND post_flags.reason <> ?
|
|
AND posts.is_deleted = false
|
|
and posts.is_pending = false
|
|
GROUP BY post_flags.post_id
|
|
ORDER BY count(*) DESC
|
|
LIMIT 10
|
|
EOS
|
|
|
|
ActiveRecord::Base.select_all_sql(sql, min_date, "Unapproved in three days").map {|x| new(x)}
|
|
end
|
|
|
|
def initialize(hash)
|
|
@post = Post.find(hash["post_id"])
|
|
@count = hash["count"]
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|