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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MmQ4MGEzYmUyNWU0YWM5ZGRhMmZiOTdmZjhjMWFkZmYwYTM0N2QyZA==
4
+ ODA2MTNhODVlN2Y5YTVhMGI0NWQ1ZWU0YzYzYmY3ODBiY2NiZGVhMQ==
5
5
  data.tar.gz: !binary |-
6
- ZDQyZjY4MGNmMzc5YjYxMjAxNTM4MDU2MGU5ZDk2MWJhMzRiNGM2Ng==
6
+ MjY5NjNiMjViOGFiNTc4NGU3MzE5YTc2YTdmZTI0NTNkODkzMDZmYw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- NzRjODFhYTBmNjQzNmZkYWE2NWMxZmU1ZmE4NTNmMjQyNjRiZDIzODVmNWEz
10
- MWYyYzIwMWNhMDQxYTBlMjFkZWYwNDc3NDI5NjlhYWQxMDU4MzBkZDg5NWQx
11
- YjhmN2VkYzU5NDUyOTViYTNjNTE5NTM4N2UyNGM3MmNiZjA0NjI=
9
+ N2RjYTIwYmU3YjAxNTc5YmU3NzZhOGQ4MzYxNzZlMTU0ZWIwMzhiMzQxOTIz
10
+ YmI3ZDFhYjk0MTZkNjMwNTBkNGY1NjJjZDk3NTc3YjkxMjY3OTJkM2E2NjI4
11
+ YWE0OTBhODg0YWViNjJiMjIxNWNjYzBmOWIxMWQ1NmNjNTM3NWU=
12
12
  data.tar.gz: !binary |-
13
- ZGRlYmIxMTI2NGYwOTQ4NmE3M2YyNTQ5ZGZiODRkNjQ5N2VlOGYyOWY0ODc1
14
- YjgxY2JmMWIxMzQxYjJlMDA1OTkzYjE2MmI0NmE1ZjNiZGJlNGY0MGFmZTdk
15
- YTcyMjU5YmZmMTg2OTE5NzljMjc5OWNlZDk3NzY3ZDY1YWYyMjU=
13
+ ZTJlOThlNDlhMzkxNjc3MjRmNGIxODkyMWE0ZjA3ZjYwNTljOGZmMTk0ZjZh
14
+ MzFiYjQyNDNkNDc5Y2YxZTgwMDBmYWE2YzEwMDZlYjI4Y2YyYjRlOWI3YmNl
15
+ MDc5MjdkODQ3NjA3MGFhOTNmZjM2MTcyOWQ0ZmJkOTc2YjgxNjQ=
@@ -1,6 +1,6 @@
1
1
 
2
2
  module CabooseRets
3
3
  class ApplicationController < Caboose::ApplicationController
4
-
4
+
5
5
  end
6
6
  end
@@ -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><input type='button' value='New Custom Commercial Property' onclick="window.location='/admin/commercial/new';" />
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>
@@ -11,6 +11,8 @@
11
11
  </form>
12
12
  </div>
13
13
 
14
+ <p><a href='/admin/rets/import'>Import new property from MLS</a></p>
15
+
14
16
  <table class='data' id='properties_table'>
15
17
  <tr>
16
18
  <%= raw @gen.sortable_table_headings({
@@ -11,6 +11,8 @@
11
11
  </form>
12
12
  </div>
13
13
 
14
+ <p><a href='/admin/rets/import'>Import new property from MLS</a></p>
15
+
14
16
  <table class='data' id='properties_table'>
15
17
  <tr>
16
18
  <%= raw @gen.sortable_table_headings({
@@ -11,6 +11,8 @@
11
11
  </form>
12
12
  </div>
13
13
 
14
+ <p><a href='/admin/rets/import'>Import new property from MLS</a></p>
15
+
14
16
  <table class='data' id='properties_table'>
15
17
  <tr>
16
18
  <%= raw @gen.sortable_table_headings({
@@ -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 %>
@@ -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"
@@ -1,3 +1,3 @@
1
1
  module CabooseRets
2
- VERSION = '0.0.42'
2
+ VERSION = '0.0.43'
3
3
  end
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.42
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