caboose-rets 0.0.42 → 0.0.43

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