caboose-rets 0.1.172 → 0.1.173

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ffe1bb33340eca294f66a11d3b0d30cdb1f3c0bafac94d98f6c9e35cc5b936b6
4
- data.tar.gz: 33e44cedfeed2d4dcc0aeff18f51c874617a7dd21b255d09ab883f6adea3c700
3
+ metadata.gz: d696008a55d4db2c7e4355676577b1125127c58fbda6e18570f02db82b2d5c40
4
+ data.tar.gz: 8d87073dd33a633bc18ed370fdd5d7211fb7ad8918559062551955be50544a1c
5
5
  SHA512:
6
- metadata.gz: 5c896ef5ef41cc6747e6ada1d539aa8274f754bcb25874bd7615c82f6f70c255718e9b00118682cf1dc45742031938fb6f9fa120a55c83dbf8dbe34ffeb2ebad
7
- data.tar.gz: 3d0ed4a79ab4e28422570891a49c93ff1245fe12047b42f37544e5893e73c88719bff47c1b363ec83d4e18999a333b5a251ea5e021110d0e3cf6b71e1a74d8c9
6
+ metadata.gz: 7156982635d8c2588036a898809ac2101c975fcb69059b4047c2768186bdfc3d5beaeb2dd9294ed2a245460498bb3019a5531f71777bd2b97262e61f99646034
7
+ data.tar.gz: a3fafd917d276b72e04752df7c426ea939ad61408a52e26aafc81c0beca79467d8b63e238c06ec88eca5aa96090e1a790e99077f668eb11009f8a9f117f1878b
@@ -2,7 +2,6 @@ module CabooseRets
2
2
  class PropertiesController < ApplicationController
3
3
 
4
4
  # @route GET /properties/search-options
5
- # q=rock quary
6
5
  def search_options
7
6
  count = params[:count_per_name] ? params[:count_per_name] : 10
8
7
  arr = SearchOption.results(params[:q], count)
@@ -23,6 +22,7 @@ module CabooseRets
23
22
  end
24
23
  where = "(id is not null)"
25
24
  search_options = []
25
+ searched_address = false
26
26
 
27
27
  if (@site && @site.id == 558) || request.original_fullpath =~ /^\/tuscaloosa-condos-for-sale(.*?)$/
28
28
  where = "(style ILIKE '%condo%' OR public_remarks ILIKE '%condo%' OR legal_description ILIKE '%unit%' OR res_style ILIKE '%condo%' OR property_subtype ILIKE '%condo%' OR property_subtype ILIKE '%townhouse%')"
@@ -33,8 +33,14 @@ module CabooseRets
33
33
  if lc && lc.count > 0
34
34
  lc.each do |lcid|
35
35
  so = CabooseRets::SearchOption.where(:id => lcid).first
36
- if so
36
+ if so && so.name == "Street Address"
37
+ search_options << "( CONCAT(CONCAT(CONCAT(CONCAT(street_number, ' '),street_name),' '),street_suffix) ILIKE '%#{so.value}%' )"
38
+ searched_address = true
39
+ elsif so && so.name == "Street Name"
40
+ search_options << "( CONCAT(CONCAT(street_name,' '),street_suffix) ILIKE '%#{so.value}%' )"
41
+ elsif so
37
42
  search_options << "(#{so.field} = '#{so.value}')"
43
+ searched_address = true if so.name == 'MLS Number'
38
44
  end
39
45
  end
40
46
  end
@@ -114,6 +120,13 @@ module CabooseRets
114
120
  :saved_search => @saved_search,
115
121
  :pager => @pager
116
122
  }
123
+
124
+ if @properties && @properties.count == 1 && searched_address
125
+ only_property = @properties.first
126
+ redirect_to only_property.url and return
127
+ end
128
+
129
+
117
130
  end
118
131
 
119
132
  # @route GET /properties/:mls_number/details
@@ -724,7 +724,7 @@ class CabooseRets::RetsImporter # < ActiveRecord::Base
724
724
  self.delay(:run_at => 20.minutes.from_now, :priority => 10, :queue => 'rets').update_rets
725
725
  end
726
726
  # Delete old logs
727
- CabooseRets::Log.where("timestamp < ?",(DateTime.now - 30.days)).destroy_all
727
+ CabooseRets::Log.where("timestamp < ?",(DateTime.now - 7.days)).destroy_all
728
728
  # Update search options
729
729
  CabooseRets::SearchOption.delay(:queue => "rets").update_search_options
730
730
  end
@@ -16,6 +16,7 @@ class CabooseRets::SearchOption < ActiveRecord::Base
16
16
  'MLS Area' => ['area'],
17
17
  'Neighborhood' => ['subdivision'],
18
18
  'Street Name' => ['street_name'],
19
+ 'Street Address' => ['street_address'],
19
20
  'Property Type' => ['property_type'],
20
21
  'MLS Number' => ['mls_number']
21
22
  }
@@ -25,20 +26,51 @@ class CabooseRets::SearchOption < ActiveRecord::Base
25
26
  end
26
27
  end
27
28
 
29
+
28
30
  # Delete all flagged
29
31
  self.where(:flag_for_delete => true).delete_all
30
32
  end
31
33
 
32
34
  def self.update_search_options_for_field(name, field)
33
- q = ["select distinct(#{field}) from rets_properties where status = ?", 'Active']
34
- rows = ActiveRecord::Base.connection.select_rows(ActiveRecord::Base.send(:sanitize_sql_array, q))
35
- rows.each do |row|
36
- so = self.where(:name => name, :field => field, :value => row[0]).first
37
- if so.nil? && !field.blank?
38
- self.create(:name => name, :field => field, :value => row[0])
39
- else
40
- so.flag_for_delete = false
41
- so.save
35
+ if field == 'street_name'
36
+ CabooseRets::Property.where(:status => "Active", :property_type => "Residential").where("street_name is not null").order(:id).all.each do |prop|
37
+ add = "#{prop.street_name} #{prop.street_suffix}"
38
+ val = add.blank? ? nil : add.strip
39
+ next if val.blank?
40
+ so = self.where(:name => name, :field => field, :value => val).first
41
+ if so.nil? && !field.blank?
42
+ self.create(:name => name, :field => field, :value => val)
43
+ elsif so
44
+ so.flag_for_delete = false
45
+ so.save
46
+ end
47
+ end
48
+ elsif field == 'street_address'
49
+ CabooseRets::Property.where(:status => "Active", :property_type => "Residential").where("street_name is not null and street_number is not null").order(:id).all.each do |prop|
50
+ add = "#{prop.street_number} #{prop.street_name} #{prop.street_suffix}"
51
+ val = add.blank? ? nil : add.strip
52
+ next if val.blank?
53
+ so = self.where(:name => name, :field => field, :value => val).first
54
+ if so.nil? && !field.blank?
55
+ self.create(:name => name, :field => field, :value => val)
56
+ elsif so
57
+ so.flag_for_delete = false
58
+ so.save
59
+ end
60
+ end
61
+ else
62
+ q = ["select distinct(#{field}) from rets_properties where status = ? and property_type = ?", 'Active', 'Residential']
63
+ rows = ActiveRecord::Base.connection.select_rows(ActiveRecord::Base.send(:sanitize_sql_array, q))
64
+ rows.each do |row|
65
+ val = row[0].blank? ? nil : row[0].titleize.strip
66
+ next if val.blank?
67
+ so = self.where(:name => name, :field => field, :value => val).first
68
+ if so.nil? && !field.blank?
69
+ self.create(:name => name, :field => field, :value => val)
70
+ elsif so
71
+ so.flag_for_delete = false
72
+ so.save
73
+ end
42
74
  end
43
75
  end
44
76
  end
@@ -1,3 +1,3 @@
1
1
  module CabooseRets
2
- VERSION = '0.1.172'
2
+ VERSION = '0.1.173'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caboose-rets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.172
4
+ version: 0.1.173
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-30 00:00:00.000000000 Z
11
+ date: 2021-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: caboose-cms