caboose-rets 0.1.7 → 0.1.8

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
  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