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 +4 -4
- data/app/controllers/caboose_rets/residential_controller.rb +7 -0
- data/app/models/caboose_rets/schema.rb +5 -0
- data/app/models/caboose_rets/search_option.rb +44 -0
- data/config/routes.rb +1 -0
- data/lib/caboose_rets/version.rb +1 -1
- data/lib/tasks/caboose_rets.rake +5 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b9427dfa683fee1e5be758b91721d68fe8ce144
|
4
|
+
data.tar.gz: 17b46b6354a55b034e0d5443851d5de066a1790a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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"
|
data/lib/caboose_rets/version.rb
CHANGED
data/lib/tasks/caboose_rets.rake
CHANGED
@@ -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.
|
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-
|
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
|