caboose-rets 0.1.7 → 0.1.8

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
  SHA1:
3
- metadata.gz: 1f08e673bd8595fef93075d93fb4bf8e0c4e20d4
4
- data.tar.gz: 04faeaa4573354016ae8d780c3a4bcd0ded6e4d9
3
+ metadata.gz: 8b9427dfa683fee1e5be758b91721d68fe8ce144
4
+ data.tar.gz: 17b46b6354a55b034e0d5443851d5de066a1790a
5
5
  SHA512:
6
- metadata.gz: 2a2b5ae6ea38691f23312db6a9df0685e3d029381e181d8c5e74f7cdc44e49091791eb8b302853ba8a8c18c06cb6b3099c3259f88cf9b06e707e0cb963785c18
7
- data.tar.gz: 48386357f943f494b4edb08f9908c9f3217afec7a6eae66c673ceb2e10fb5d7208f09eacfdbd4831ecdaf866428975cfa5f2b8ac45d49824a165327239a89735
6
+ metadata.gz: b274434916e0c7c0ca9c3f39d29cc6e44d3c260ab977288253a666888d426ccfa802a5176b57af81de03d80009c75b65e8de0010498e2e0e89a7f674bc25fc85
7
+ data.tar.gz: 2ccd0afd3c0410df03885d134acd9bdda95cf2fa915f885a07df7bde701e57a54967026475352e55783dc5339996d291f60dc59daf9fb19ea4857fc15f4d9ed6
@@ -2,6 +2,13 @@
2
2
  module CabooseRets
3
3
  class ResidentialController < ApplicationController
4
4
 
5
+ # GET /residential/search-options?q=rock quary
6
+ def search_options
7
+ count = params[:count_per_name] ? params[:count_per_name] : 10
8
+ arr = SearchOption.results(params[:q], count)
9
+ render :json => arr
10
+ end
11
+
5
12
  # GET /residential
6
13
  def index
7
14
  params[:street_num_like] = params[:street_name_like].tr('A-z', '').tr(' ', '') unless params[:street_name_like].nil?
@@ -844,6 +844,11 @@ class CabooseRets::Schema < Caboose::Utilities::Schema
844
844
  [ :uri , :text ],
845
845
  [ :notify , :boolean ]
846
846
  ],
847
+ CabooseRets::SearchOption => [
848
+ [ :name , :string ],
849
+ [ :field , :string ],
850
+ [ :value , :string ]
851
+ ],
847
852
  Caboose::Site => [
848
853
  [ :use_rets , :boolean, { :default => false }]
849
854
  ]
@@ -0,0 +1,44 @@
1
+ class CabooseRets::SearchOption < ActiveRecord::Base
2
+ self.table_name = "rets_search_options"
3
+
4
+ attr_accessible :id, :name, :field, :value
5
+
6
+ def self.update_search_options
7
+
8
+ names = {
9
+ 'City' => ['city'],
10
+ 'County' => ['county'],
11
+ 'Zip Code' => ['zip'],
12
+ 'Schools' => ['elem_school', 'middle_school', 'high_school'],
13
+ 'MLS Area' => ['area'],
14
+ 'Neighborhood' => ['subdivision'],
15
+ 'Street Name' => ['street_name'],
16
+ 'Property Type' => ['prop_type'],
17
+ 'MLS Number' => ['mls_acct']
18
+ #'feature',
19
+ #'location',
20
+ }
21
+ names.each do |name, fields|
22
+ fields.each do |field|
23
+ q = ["select distinct(#{field}) from rets_residential"]
24
+ rows = ActiveRecord::Base.connection.select_rows(ActiveRecord::Base.send(:sanitize_sql_array, q))
25
+ rows.each do |row|
26
+ so = self.where(:name => name, :field => field, :value => row[0]).first
27
+ self.create( :name => name, :field => field, :value => row[0]) if so.nil?
28
+ end
29
+ end
30
+ end
31
+ end
32
+
33
+ def self.results(str, count_per_name = 10)
34
+ q = ["select * from (
35
+ select name, field, value, row_number() over (partition by name order by field) as rownum
36
+ from rets_search_options
37
+ where lower(value) like ?
38
+ ) tmp where rownum < #{count_per_name}", "%#{str}%"]
39
+ rows = ActiveRecord::Base.connection.select_rows(ActiveRecord::Base.send(:sanitize_sql_array, q))
40
+ arr = rows.collect{ |row| { :name => row[0], :field => row[1], :value => row[2] }}
41
+ return arr
42
+ end
43
+
44
+ end
data/config/routes.rb CHANGED
@@ -39,6 +39,7 @@ CabooseRets::Engine.routes.draw do
39
39
  put "/admin/commercial/:mls_acct" => "commercial#admin_update"
40
40
  post "/admin/commercial/:mls_acct" => "commercial#admin_update"
41
41
 
42
+ get "/residential/search-options" => "residential#search_options"
42
43
  get "/residential/search:search_params" => "residential#index", :constraints => {:search_params => /.*/}
43
44
  get "/residential/:mls_acct/details" => "residential#details"
44
45
  get "/residential/:mls_acct" => "residential#details"
@@ -1,3 +1,3 @@
1
1
  module CabooseRets
2
- VERSION = '0.1.7'
2
+ VERSION = '0.1.8'
3
3
  end
@@ -7,6 +7,11 @@ namespace :caboose_rets do
7
7
  # CabooseRets::RetsImporter.delete_old_properties
8
8
  #end
9
9
 
10
+ desc "Update search options"
11
+ task :update_search_options => :environment do
12
+ CabooseRets::SearchOption.update_search_options
13
+ end
14
+
10
15
  desc "Initializes the database for a caboose installation"
11
16
  task :rename_media => :environment do
12
17
  CabooseRets::Media.rename_media
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.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-19 00:00:00.000000000 Z
11
+ date: 2016-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: caboose-cms
@@ -65,6 +65,7 @@ files:
65
65
  - app/models/caboose_rets/saved_property.rb
66
66
  - app/models/caboose_rets/saved_search.rb
67
67
  - app/models/caboose_rets/schema.rb
68
+ - app/models/caboose_rets/search_option.rb
68
69
  - app/views/caboose/blocks/_layout_rets.html.erb
69
70
  - app/views/caboose/blocks/_rets_agent_details.html.erb
70
71
  - app/views/caboose/blocks/_rets_agent_listings.html.erb