Browse Source

feat: make filtering case insensitive

pull/2297/head
natdeanlewissoftwire 2 years ago
parent
commit
c1b7151b06
  1. 2
      app/models/lettings_log.rb
  2. 2
      app/models/sales_log.rb
  3. 6
      spec/models/lettings_log_spec.rb
  4. 6
      spec/models/sales_log_spec.rb

2
app/models/lettings_log.rb

@ -62,7 +62,7 @@ class LettingsLog < Log
.or(filter_by_tenant_code(param)) .or(filter_by_tenant_code(param))
.or(filter_by_propcode(param)) .or(filter_by_propcode(param))
.or(filter_by_postcode(param)) .or(filter_by_postcode(param))
.or(filter_by_id(param.remove("log"))) .or(filter_by_id(param.gsub(/log/i, '')))
} }
scope :after_date, ->(date) { where("lettings_logs.startdate >= ?", date) } scope :after_date, ->(date) { where("lettings_logs.startdate >= ?", date) }
scope :before_date, ->(date) { where("lettings_logs.startdate < ?", date) } scope :before_date, ->(date) { where("lettings_logs.startdate < ?", date) }

2
app/models/sales_log.rb

@ -47,7 +47,7 @@ class SalesLog < Log
scope :search_by, lambda { |param| scope :search_by, lambda { |param|
filter_by_purchaser_code(param) filter_by_purchaser_code(param)
.or(filter_by_postcode(param)) .or(filter_by_postcode(param))
.or(filter_by_id(param.remove("log"))) .or(filter_by_id(param.gsub(/log/i, '')))
} }
scope :age1_answered, -> { where.not(age1: nil).or(where(age1_known: [1, 2])) } scope :age1_answered, -> { where.not(age1: nil).or(where(age1_known: [1, 2])) }
scope :duplicate_logs, lambda { |log| scope :duplicate_logs, lambda { |log|

6
spec/models/lettings_log_spec.rb

@ -2834,6 +2834,12 @@ RSpec.describe LettingsLog do
expect(result.first.id).to eq lettings_log_to_search.id expect(result.first.id).to eq lettings_log_to_search.id
end end
it "allows searching by id including the capitalised word Log" do
result = described_class.search_by("Log#{lettings_log_to_search.id}")
expect(result.count).to eq(1)
expect(result.first.id).to eq lettings_log_to_search.id
end
context "when lettings log is supported housing" do context "when lettings log is supported housing" do
let(:location) { create(:location, postcode: "W6 0ST") } let(:location) { create(:location, postcode: "W6 0ST") }

6
spec/models/sales_log_spec.rb

@ -189,6 +189,12 @@ RSpec.describe SalesLog, type: :model do
expect(result.first.id).to eq sales_log_to_search.id expect(result.first.id).to eq sales_log_to_search.id
end end
it "allows searching by id including the capitalised word Log" do
result = described_class.search_by("Log#{sales_log_to_search.id}")
expect(result.count).to eq(1)
expect(result.first.id).to eq sales_log_to_search.id
end
context "when postcode has spaces and lower case letters" do context "when postcode has spaces and lower case letters" do
let(:matching_postcode_lower_case_with_spaces) { sales_log_to_search.postcode_full.downcase.chars.insert(3, " ").join } let(:matching_postcode_lower_case_with_spaces) { sales_log_to_search.postcode_full.downcase.chars.insert(3, " ").join }

Loading…
Cancel
Save