From 0f8cef588ec94292b568a6df6b17df25caf04c5a Mon Sep 17 00:00:00 2001 From: Toks Date: Sat, 30 Mar 2013 16:43:13 -0400 Subject: [PATCH] fixes #1011 --- app/logical/post_query_builder.rb | 16 ++++++++++++++++ app/models/tag.rb | 8 +++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/app/logical/post_query_builder.rb b/app/logical/post_query_builder.rb index dd5a2f350..59bd1c8a7 100644 --- a/app/logical/post_query_builder.rb +++ b/app/logical/post_query_builder.rb @@ -220,6 +220,22 @@ class PostQueryBuilder relation = relation.where("posts.rating <> 'e'") end + if q[:locked] == "rating" + relation = relation.where("posts.is_rating_locked = TRUE") + elsif q[:locked] == "note" || q[:locked] == "notes" + relation = relation.where("posts.is_note_locked = TRUE") + elsif q[:locked] == "status" + relation = relation.where("posts.is_status_locked = TRUE") + end + + if q[:locked_negated] == "rating" + relation = relation.where("posts.is_rating_locked = FALSE") + elsif q[:locked_negated] == "note" || q[:locked_negated] == "notes" + relation = relation.where("posts.is_note_locked = FALSE") + elsif q[:locked_negated] == "status" + relation = relation.where("posts.is_status_locked = FALSE") + end + relation = add_tag_string_search_relation(q[:tags], relation) if q[:order] == "rank" diff --git a/app/models/tag.rb b/app/models/tag.rb index ef23c739f..c4ce0517a 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -1,5 +1,5 @@ class Tag < ActiveRecord::Base - METATAGS = "-user|user|-approver|approver|commenter|comm|noter|-pool|pool|-fav|fav|sub|md5|-rating|rating|width|height|mpixels|score|filesize|source|id|date|order|-status|status|tagcount|gentags|arttags|chartags|copytags|parent|pixiv" + METATAGS = "-user|user|-approver|approver|commenter|comm|noter|-pool|pool|-fav|fav|sub|md5|-rating|rating|-locked|locked|width|height|mpixels|score|filesize|source|id|date|order|-status|status|tagcount|gentags|arttags|chartags|copytags|parent|pixiv" attr_accessible :category has_one :wiki_page, :foreign_key => "name", :primary_key => "title" @@ -313,6 +313,12 @@ class Tag < ActiveRecord::Base when "rating" q[:rating] = $2 + when "-locked" + q[:locked_negated] = $2 + + when "locked" + q[:locked] = $2 + when "id" q[:post_id] = parse_helper($2)