Merge pull request #3003 from evazion/feat-noter-any-metatag
Add noter:<any|none>, commenter:<any|none> metatags
This commit is contained in:
@@ -238,14 +238,26 @@ class PostQueryBuilder
|
||||
|
||||
if q[:commenter_ids]
|
||||
q[:commenter_ids].each do |commenter_id|
|
||||
relation = relation.where("posts.id IN (?)", Comment.unscoped.where("creator_id = ?", commenter_id).select("post_id").uniq)
|
||||
if commenter_id == "any"
|
||||
relation = relation.where("posts.last_commented_at is not null")
|
||||
elsif commenter_id == "none"
|
||||
relation = relation.where("posts.last_commented_at is null")
|
||||
else
|
||||
relation = relation.where("posts.id": Comment.unscoped.where(creator_id: commenter_id).select(:post_id).distinct)
|
||||
end
|
||||
end
|
||||
has_constraints!
|
||||
end
|
||||
|
||||
if q[:noter_ids]
|
||||
q[:noter_ids].each do |noter_id|
|
||||
relation = relation.where("posts.id IN (?)", Note.unscoped.where("creator_id = ?", noter_id).select("post_id").uniq)
|
||||
if noter_id == "any"
|
||||
relation = relation.where("posts.last_noted_at is not null")
|
||||
elsif noter_id == "none"
|
||||
relation = relation.where("posts.last_noted_at is null")
|
||||
else
|
||||
relation = relation.where("posts.id": Note.unscoped.where(creator_id: noter_id).select("post_id").distinct)
|
||||
end
|
||||
end
|
||||
has_constraints!
|
||||
end
|
||||
|
||||
@@ -14,8 +14,8 @@ class Comment < ActiveRecord::Base
|
||||
after_update(:if => lambda {|rec| CurrentUser.id != rec.creator_id}) do |rec|
|
||||
ModAction.log("comment ##{rec.id} updated by #{CurrentUser.name}")
|
||||
end
|
||||
after_update :update_last_commented_at_on_destroy, :if => lambda {|rec| rec.is_deleted? && rec.is_deleted_changed?}
|
||||
after_update(:if => lambda {|rec| rec.is_deleted? && rec.is_deleted_changed? && CurrentUser.id != rec.creator_id}) do |rec|
|
||||
after_save :update_last_commented_at_on_destroy, :if => lambda {|rec| rec.is_deleted? && rec.is_deleted_changed?}
|
||||
after_save(:if => lambda {|rec| rec.is_deleted? && rec.is_deleted_changed? && CurrentUser.id != rec.creator_id}) do |rec|
|
||||
ModAction.log("comment ##{rec.id} deleted by #{CurrentUser.name}")
|
||||
end
|
||||
attr_accessible :body, :post_id, :do_not_bump_post, :is_deleted, :as => [:member, :gold, :platinum, :builder, :moderator, :admin]
|
||||
@@ -171,13 +171,13 @@ class Comment < ActiveRecord::Base
|
||||
include VoteMethods
|
||||
|
||||
def initialize_creator
|
||||
self.creator_id = CurrentUser.user.id
|
||||
self.ip_addr = CurrentUser.ip_addr
|
||||
self.creator_id ||= CurrentUser.user.id
|
||||
self.ip_addr ||= CurrentUser.ip_addr
|
||||
end
|
||||
|
||||
def initialize_updater
|
||||
self.updater_id = CurrentUser.user.id
|
||||
self.updater_ip_addr = CurrentUser.ip_addr
|
||||
self.updater_id ||= CurrentUser.user.id
|
||||
self.updater_ip_addr ||= CurrentUser.ip_addr
|
||||
end
|
||||
|
||||
def creator_name
|
||||
|
||||
@@ -452,13 +452,27 @@ class Tag < ActiveRecord::Base
|
||||
|
||||
when "commenter", "comm"
|
||||
q[:commenter_ids] ||= []
|
||||
user_id = User.name_to_id($2)
|
||||
q[:commenter_ids] << user_id unless user_id.blank?
|
||||
|
||||
if $2 == "none"
|
||||
q[:commenter_ids] << "none"
|
||||
elsif $2 == "any"
|
||||
q[:commenter_ids] << "any"
|
||||
else
|
||||
user_id = User.name_to_id($2)
|
||||
q[:commenter_ids] << user_id unless user_id.blank?
|
||||
end
|
||||
|
||||
when "noter"
|
||||
q[:noter_ids] ||= []
|
||||
user_id = User.name_to_id($2)
|
||||
q[:noter_ids] << user_id unless user_id.blank?
|
||||
|
||||
if $2 == "none"
|
||||
q[:noter_ids] << "none"
|
||||
elsif $2 == "any"
|
||||
q[:noter_ids] << "any"
|
||||
else
|
||||
user_id = User.name_to_id($2)
|
||||
q[:noter_ids] << user_id unless user_id.blank?
|
||||
end
|
||||
|
||||
when "noteupdater"
|
||||
q[:note_updater_ids] ||= []
|
||||
|
||||
Reference in New Issue
Block a user