diff --git a/app/models/comment.rb b/app/models/comment.rb index 1c12ba890..634ed72c6 100644 --- a/app/models/comment.rb +++ b/app/models/comment.rb @@ -35,7 +35,7 @@ class Comment < ActiveRecord::Base end def for_creator_name(user_name) - where("creator_id = (select _.id from users _ where lower(_.name) = lower(?))", user_name) + where("creator_id = (select _.id from users _ where lower(_.name) = lower(?))", user_name.downcase) end def search(params) diff --git a/app/models/comment_vote.rb b/app/models/comment_vote.rb index 8b4cd9484..0b27e13ac 100644 --- a/app/models/comment_vote.rb +++ b/app/models/comment_vote.rb @@ -14,6 +14,17 @@ class CommentVote < ActiveRecord::Base destroy_all("created_at < ?", 14.days.ago) end + def self.search(params) + q = scoped + return q if params.blank? + + if params[:comment_id] + q = q.where("comment_id = ?", params[:comment_id].to_i) + end + + q + end + def validate_user_can_vote if !user.can_comment_vote? errors.add :user, "can not comment vote" diff --git a/app/models/forum_post.rb b/app/models/forum_post.rb index b54988d98..d33c916e2 100644 --- a/app/models/forum_post.rb +++ b/app/models/forum_post.rb @@ -21,7 +21,7 @@ class ForumPost < ActiveRecord::Base end def creator_name(name) - where("forum_posts.creator_id = (select _.id from users _ where lower(_.name) = ?)", name) + where("forum_posts.creator_id = (select _.id from users _ where lower(_.name) = ?)", name.downcase) end def active diff --git a/app/models/janitor_trial.rb b/app/models/janitor_trial.rb index c23ca9ec4..4039094a7 100644 --- a/app/models/janitor_trial.rb +++ b/app/models/janitor_trial.rb @@ -15,6 +15,10 @@ class JanitorTrial < ActiveRecord::Base q = q.where("user_id = (select _.id from users _ where lower(_.name) = ?)", params[:user_name].downcase) end + if params[:user_id] + q = q.where("user_id = ?", params[:user_id].to_i) + end + q end diff --git a/app/models/note.rb b/app/models/note.rb index 8f9a53b76..3384b546d 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -27,7 +27,7 @@ class Note < ActiveRecord::Base end def creator_name(name) - where("creator_id = (select _.id from users _ where lower(_.name) = ?)", name) + where("creator_id = (select _.id from users _ where lower(_.name) = ?)", name.downcase) end def search(params) @@ -46,6 +46,10 @@ class Note < ActiveRecord::Base q = q.creator_name(params[:creator_name]) end + if params[:creator_id] + q = q.where("creator_id = ?", params[:creator_id].to_i) + end + q end end diff --git a/app/models/note_version.rb b/app/models/note_version.rb index bb3eea40a..7ab960b00 100644 --- a/app/models/note_version.rb +++ b/app/models/note_version.rb @@ -15,6 +15,10 @@ class NoteVersion < ActiveRecord::Base q = q.where("post_id = ?", params[:post_id].to_i) end + if params[:note_id] + q = q.where("note_id = ?", params[:note_id].to_i) + end + q end diff --git a/app/models/pool.rb b/app/models/pool.rb index 6a92aff8a..cc4d23bbb 100644 --- a/app/models/pool.rb +++ b/app/models/pool.rb @@ -33,7 +33,11 @@ class Pool < ActiveRecord::Base end if params[:creator_name] - q = q.where("creator_id = (select _.id from users _ where lower(_.name) = ?)", params[:creator_name]) + q = q.where("creator_id = (select _.id from users _ where lower(_.name) = ?)", params[:creator_name].downcase) + end + + if params[:creator_id] + q = q.where("creator_id = ?", params[:creator_id].to_i) end q diff --git a/app/models/pool_version.rb b/app/models/pool_version.rb index d1235f9b9..7eec6273a 100644 --- a/app/models/pool_version.rb +++ b/app/models/pool_version.rb @@ -19,6 +19,14 @@ class PoolVersion < ActiveRecord::Base q = q.for_user(params[:updater_id].to_i) end + if params[:updater_name] + q = q.where("updater_id = (select _.id from users _ where lower(_.name) = ?)", params[:updater_name].downcase) + end + + if params[:pool_id] + q = q.where("pool_id = ?", params[:pool_id].to_i) + end + q end end diff --git a/app/models/post_appeal.rb b/app/models/post_appeal.rb index a36d6cee2..04fd0e1d8 100644 --- a/app/models/post_appeal.rb +++ b/app/models/post_appeal.rb @@ -22,6 +22,14 @@ class PostAppeal < ActiveRecord::Base q = scoped return q if params.blank? + if params[:creator_id] + q = q.for_user(params[:creator_id].to_i) + end + + if params[:creator_name] + q = q.where("creator_id = (select _.id from users _ where lower(_.name) = ?)", params[:creator_name].downcase) + end + if params[:post_id] q = q.where("post_id = ?", params[:post_id].to_i) end diff --git a/app/models/post_flag.rb b/app/models/post_flag.rb index 6e38ae38a..6b5176651 100644 --- a/app/models/post_flag.rb +++ b/app/models/post_flag.rb @@ -27,6 +27,14 @@ class PostFlag < ActiveRecord::Base q = scoped return q if params.blank? + if params[:creator_id] + q = q.where("creator_id = ?", params[:creator_id].to_i) + end + + if params[:creator_name] + q = q.where("creator_id = (select _.id from users _ where lower(_.name) = ?)", params[:creator_name].downcase) + end + if params[:post_id] q = q.where("post_id = ?", params[:post_id].to_i) end diff --git a/app/models/tag_subscription.rb b/app/models/tag_subscription.rb index f4ee52aca..c7256ffdf 100644 --- a/app/models/tag_subscription.rb +++ b/app/models/tag_subscription.rb @@ -45,6 +45,16 @@ class TagSubscription < ActiveRecord::Base def self.search(params) q = scoped return q if params.blank? + + if params[:creator_id] + q = q.where("creator_id = ?", params[:creator_id].to_i) + end + + if params[:creator_name] + q = q.where("creator_id = (select _.id from users _ where lower(_.name) = ?)", params[:creator_name].downcase) + end + + q end def self.visible_to(user) diff --git a/app/models/upload.rb b/app/models/upload.rb index 7efd80123..10cbd1fce 100644 --- a/app/models/upload.rb +++ b/app/models/upload.rb @@ -318,6 +318,10 @@ class Upload < ActiveRecord::Base q = q.uploaded_by(params[:uploader_id].to_i) end + if params[:uploader_name] + q = q.where("uploader_id = (select _.id from users _ where lower(_.name) = ?)", params[:uploader_name].downcase) + end + if params[:source] q = q.where("source = ?", params[:source]) end diff --git a/app/models/user_feedback.rb b/app/models/user_feedback.rb index 2128c6a8f..d8f984222 100644 --- a/app/models/user_feedback.rb +++ b/app/models/user_feedback.rb @@ -32,6 +32,18 @@ class UserFeedback < ActiveRecord::Base q = q.for_user(params[:user_id].to_i) end + if params[:user_name] + q = q.where("user_id = (select _.id from users _ where lower(_.name) = ?)", params[:user_name].downcase) + end + + if params[:creator_id] + q = q.where("creator_id = ?", params[:creator_id].to_i) + end + + if params[:creator_name] + q = q.where("creator_id = (select _.id from users _ where lower(_.name) = ?)", params[:creator_name].downcase) + end + q end end diff --git a/app/models/wiki_page.rb b/app/models/wiki_page.rb index 97fb2d860..4c43a57c9 100644 --- a/app/models/wiki_page.rb +++ b/app/models/wiki_page.rb @@ -19,6 +19,10 @@ class WikiPage < ActiveRecord::Base def recent order("updated_at DESC").limit(25) end + + def body_matches(query) + where("body_index @@ plainto_tsquery(?)", query.scan(/\S+/).join(" & ")) + end def search(params = {}) q = scoped @@ -31,6 +35,14 @@ class WikiPage < ActiveRecord::Base if params[:creator_id] q = q.where("creator_id = ?", params[:creator_id]) end + + if params[:body_matches] + q = q.body_matches(params[:body_matches]) + end + + if params[:creator_name] + q = q.where("creator_id = (select _.id from users _ where lower(_.name) = ?)", params[:creator_name].downcase) + end q end