Index: app/models/query.rb =================================================================== --- app/models/query.rb (revision 90) +++ app/models/query.rb Wed Jul 07 11:40:28 MSD 2010 @@ -184,6 +184,7 @@ user_values = [] user_values << ["<< #{l(:label_me)} >>", "me"] if User.current.logged? + user_values << ["<< #{l(:label_nobody)} >>", "nobody"] if project user_values += project.users.sort.collect{|s| [s.name, s.id.to_s] } else @@ -430,6 +431,9 @@ # regular field db_table = Issue.table_name db_field = field + if field == 'assigned_to_id' && operator == "=" && v.delete('nobody') + operator = v.empty? ? "!*" : "=nobody" + end sql << '(' + sql_for_field(field, operator, v, db_table, db_field) + ')' end filters_clauses << sql @@ -508,8 +512,9 @@ def sql_for_field(field, operator, value, db_table, db_field, is_custom_filter=false) sql = '' case operator - when "=" + when "=", "=nobody" sql = "#{db_table}.#{db_field} IN (" + value.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + ")" + sql = "(#{db_table}.#{db_field} IS NULL OR " + sql + ")" if operator == "=nobody" when "!" sql = "(#{db_table}.#{db_field} IS NULL OR #{db_table}.#{db_field} NOT IN (" + value.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + "))" when "!*"