##// END OF EJS Templates
Filter out illegal values to prevent raise of PostgreSQL exceptions, restored last test part removed with r7625 (#8371)....
Etienne Massip -
r7508:33f65c5a4845
parent child
Show More
@@ -333,6 +333,10 class Query < ActiveRecord::Base
333 333 available_filters[field][:type] if available_filters.has_key?(field)
334 334 end
335 335
336 def allowed_values_for(field)
337 available_filters[field][:values] if available_filters.has_key?(field)
338 end
339
336 340 def operator_for(field)
337 341 has_filter?(field) ? filters[field][:operator] : nil
338 342 end
@@ -649,6 +653,7 class Query < ActiveRecord::Base
649 653 sql = ''
650 654 case operator
651 655 when "="
656 value &= allowed_values_for(field).collect {|val| val[1]} if value.present? && allowed_values_for(field).present?
652 657 if value.any?
653 658 case type_for(field)
654 659 when :date, :date_past
@@ -665,6 +670,7 class Query < ActiveRecord::Base
665 670 sql = "1=0"
666 671 end
667 672 when "!"
673 value &= allowed_values_for(field).collect {|val| val[1]} if value.present? && allowed_values_for(field).present?
668 674 if value.any?
669 675 sql = "(#{db_table}.#{db_field} IS NULL OR #{db_table}.#{db_field} NOT IN (" + value.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + "))"
670 676 else
@@ -162,7 +162,9 class IssuesControllerTest < ActionController::TestCase
162 162 '!~This is part of a subject' => { :op => '!~', :values => ['This is part of a subject'] }},
163 163 'tracker_id' => {
164 164 '3' => { :op => '=', :values => ['3'] },
165 '=3' => { :op => '=', :values => ['3'] }},
165 '=3' => { :op => '=', :values => ['3'] },
166 '*' => { :op => '=', :values => ['*'] },
167 '!*' => { :op => '!', :values => ['*'] }},
166 168 'start_date' => {
167 169 '2011-10-12' => { :op => '=', :values => ['2011-10-12'] },
168 170 '=2011-10-12' => { :op => '=', :values => ['2011-10-12'] },
General Comments 0
You need to be logged in to leave comments. Login now