caboose-rets 0.1.172 → 0.1.173

Sign up to get free protection for your applications and to get access to all the features.
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