caboose-rets 0.0.42 → 0.0.43
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/app/controllers/caboose_rets/application_controller.rb +1 -1
- data/app/controllers/caboose_rets/rets_controller.rb +33 -0
- data/app/models/caboose_rets/commercial_property.rb +1 -0
- data/app/models/caboose_rets/land_property.rb +1 -0
- data/app/models/caboose_rets/multi_family_property.rb +1 -0
- data/app/models/caboose_rets/residential_property.rb +1 -0
- data/app/views/caboose_rets/commercial/admin_index.html.erb +4 -1
- data/app/views/caboose_rets/land/admin_index.html.erb +2 -0
- data/app/views/caboose_rets/multi_family/admin_index.html.erb +2 -0
- data/app/views/caboose_rets/residential/admin_index.html.erb +2 -0
- data/app/views/caboose_rets/rets/admin_import_form.html.erb +34 -0
- data/config/routes.rb +3 -0
- data/lib/caboose_rets/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ODA2MTNhODVlN2Y5YTVhMGI0NWQ1ZWU0YzYzYmY3ODBiY2NiZGVhMQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MjY5NjNiMjViOGFiNTc4NGU3MzE5YTc2YTdmZTI0NTNkODkzMDZmYw==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
N2RjYTIwYmU3YjAxNTc5YmU3NzZhOGQ4MzYxNzZlMTU0ZWIwMzhiMzQxOTIz
|
10
|
+
YmI3ZDFhYjk0MTZkNjMwNTBkNGY1NjJjZDk3NTc3YjkxMjY3OTJkM2E2NjI4
|
11
|
+
YWE0OTBhODg0YWViNjJiMjIxNWNjYzBmOWIxMWQ1NmNjNTM3NWU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZTJlOThlNDlhMzkxNjc3MjRmNGIxODkyMWE0ZjA3ZjYwNTljOGZmMTk0ZjZh
|
14
|
+
MzFiYjQyNDNkNDc5Y2YxZTgwMDBmYWE2YzEwMDZlYjI4Y2YyYjRlOWI3YmNl
|
15
|
+
MDc5MjdkODQ3NjA3MGFhOTNmZjM2MTcyOWQ0ZmJkOTc2YjgxNjQ=
|
@@ -0,0 +1,33 @@
|
|
1
|
+
|
2
|
+
module CabooseRets
|
3
|
+
class RetsController < ApplicationController
|
4
|
+
|
5
|
+
# GET /admin/rets/import
|
6
|
+
def admin_import_form
|
7
|
+
return if !user_is_allowed('properties', 'edit')
|
8
|
+
render :layout => 'caboose/admin'
|
9
|
+
end
|
10
|
+
|
11
|
+
# POST /admin/rets/import
|
12
|
+
def admin_import
|
13
|
+
return if !user_is_allowed('properties', 'edit')
|
14
|
+
|
15
|
+
resp = Caboose::StdClass.new
|
16
|
+
|
17
|
+
mls_acct = params[:mls_acct].to_i
|
18
|
+
|
19
|
+
case params[:type]
|
20
|
+
when 'RES' then ResidentialProperty.delay.import_from_mls(mls_acct)
|
21
|
+
when 'COM' then CommercialProperty.delay.import_from_mls(mls_acct)
|
22
|
+
when 'LND' then LandProperty.delay.import_from_mls(mls_acct)
|
23
|
+
when 'MUL' then MultiFamilyProperty.delay.import_from_mls(mls_acct)
|
24
|
+
else
|
25
|
+
resp.error = "Invalid property type."
|
26
|
+
end
|
27
|
+
|
28
|
+
resp.success = "The property is being imported from MLS. This may take a few minutes depending on how many images it has."
|
29
|
+
render :json => resp
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
@@ -22,6 +22,7 @@ class CabooseRets::CommercialProperty < ActiveRecord::Base
|
|
22
22
|
|
23
23
|
def self.import_from_mls(mls_acct)
|
24
24
|
CabooseRets::RetsImporter.import("(MLS_ACCT=*#{mls_acct}*)", 'Property', 'COM')
|
25
|
+
return if !self.exists?(:mls_acct => mls_acct)
|
25
26
|
p = self.find(mls_acct.to_i)
|
26
27
|
CabooseRets::RetsImporter.download_property_images(p)
|
27
28
|
end
|
@@ -22,6 +22,7 @@ class CabooseRets::LandProperty < ActiveRecord::Base
|
|
22
22
|
|
23
23
|
def self.import_from_mls(mls_acct)
|
24
24
|
CabooseRets::RetsImporter.import("(MLS_ACCT=*#{mls_acct}*)", 'Property', 'LND')
|
25
|
+
return if !self.exists?(:mls_acct => mls_acct)
|
25
26
|
p = self.find(mls_acct.to_i)
|
26
27
|
CabooseRets::RetsImporter.download_property_images(p)
|
27
28
|
end
|
@@ -22,6 +22,7 @@ class CabooseRets::MultiFamilyProperty < ActiveRecord::Base
|
|
22
22
|
|
23
23
|
def self.import_from_mls(mls_acct)
|
24
24
|
CabooseRets::RetsImporter.import("(MLS_ACCT=*#{mls_acct}*)", 'Property', 'MUL')
|
25
|
+
return if !self.exists?(:mls_acct => mls_acct)
|
25
26
|
p = self.find(mls_acct.to_i)
|
26
27
|
CabooseRets::RetsImporter.download_property_images(p)
|
27
28
|
end
|
@@ -22,6 +22,7 @@ class CabooseRets::ResidentialProperty < ActiveRecord::Base
|
|
22
22
|
|
23
23
|
def self.import_from_mls(mls_acct)
|
24
24
|
CabooseRets::RetsImporter.import("(MLS_ACCT=*#{mls_acct}*)", 'Property', 'RES')
|
25
|
+
return if !self.exists?(:mls_acct => mls_acct)
|
25
26
|
p = self.find(mls_acct.to_i)
|
26
27
|
CabooseRets::RetsImporter.download_property_images(p)
|
27
28
|
end
|
@@ -13,7 +13,10 @@
|
|
13
13
|
</form>
|
14
14
|
</div>
|
15
15
|
|
16
|
-
<p
|
16
|
+
<p>
|
17
|
+
<a href='/admin/rets/import'>Import new property from MLS</a> |
|
18
|
+
<a href='/admni/commercial/new'>New custom commercial property</a>
|
19
|
+
</p>
|
17
20
|
|
18
21
|
<table class='data' id='properties_table'>
|
19
22
|
<tr>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<h1>Import Property from MLS</h1>
|
2
|
+
|
3
|
+
<form action='/admin/rets/import' method='post' id='import_form' onsubmit="import_property(); return false;">
|
4
|
+
<input type='hidden' name='authenticity_token' value='<%= form_authenticity_token %>' />
|
5
|
+
<p><input type='text' name='mls_acct' id='mls_acct' placeholder='MLS #' value="" style='width: 300px;' /></p>
|
6
|
+
<p><select name='type'>
|
7
|
+
<option value='RES'>Residential</option>
|
8
|
+
<option value='COM'>Commercial</option>
|
9
|
+
<option value='LND'>Land</option>
|
10
|
+
<option value='MUL'>Multi-Family</option>
|
11
|
+
</select></p>
|
12
|
+
<div id='message'></div>
|
13
|
+
<p><input type='submit' value='Import Property' /></p>
|
14
|
+
</form>
|
15
|
+
|
16
|
+
<% content_for :caboose_js do %>
|
17
|
+
<script type='text/javascript'>
|
18
|
+
|
19
|
+
function import_property()
|
20
|
+
{
|
21
|
+
$('#message').html("<p class='loading'>Importing property from MLS...</p>");
|
22
|
+
$.ajax({
|
23
|
+
url: '/admin/rets/import',
|
24
|
+
type: 'post',
|
25
|
+
data: $('#import_form').serialize(),
|
26
|
+
success: function(resp) {
|
27
|
+
if (resp.error) $('#message').html("<p class='note error'>" + resp.error + "</p>");
|
28
|
+
if (resp.success) $('#message').html("<p class='note success'>" + resp.success + "</p>");
|
29
|
+
}
|
30
|
+
});
|
31
|
+
}
|
32
|
+
|
33
|
+
</script>
|
34
|
+
<% end %>
|
data/config/routes.rb
CHANGED
@@ -24,6 +24,9 @@ CabooseRets::Engine.routes.draw do
|
|
24
24
|
get "admin/offices/:id" => "offices#admin_edit"
|
25
25
|
get "admin/offices/:id/refresh" => "offices#admin_refresh"
|
26
26
|
|
27
|
+
get "admin/rets/import" => "rets#admin_import_form"
|
28
|
+
post "admin/rets/import" => "rets#admin_import"
|
29
|
+
|
27
30
|
get "commercial/search:search_params" => "commercial#index", :constraints => {:search_params => /.*/}
|
28
31
|
get "commercial/:mls_acct/details" => "commercial#details"
|
29
32
|
get "commercial/:mls_acct" => "commercial#details"
|
data/lib/caboose_rets/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caboose-rets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.43
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Barry
|
@@ -42,6 +42,7 @@ files:
|
|
42
42
|
- app/controllers/caboose_rets/offices_controller.rb
|
43
43
|
- app/controllers/caboose_rets/open_houses_controller.rb
|
44
44
|
- app/controllers/caboose_rets/residential_controller.rb
|
45
|
+
- app/controllers/caboose_rets/rets_controller.rb
|
45
46
|
- app/controllers/caboose_rets/saved_properties_controller.rb
|
46
47
|
- app/controllers/caboose_rets/saved_searches_controller.rb
|
47
48
|
- app/helpers/caboose_rets/application_helper.rb
|
@@ -88,6 +89,7 @@ files:
|
|
88
89
|
- app/views/caboose_rets/residential/index.html.erb
|
89
90
|
- app/views/caboose_rets/residential/residential_not_exists.html.erb
|
90
91
|
- app/views/caboose_rets/residential/test_form.html.erb
|
92
|
+
- app/views/caboose_rets/rets/admin_import_form.html.erb
|
91
93
|
- app/views/caboose_rets/saved_searches/edit.html.erb
|
92
94
|
- app/views/caboose_rets/saved_searches/index.html.erb
|
93
95
|
- config/routes.rb
|