caboose-rets 0.1.56 → 0.1.57

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 02bd4515041f372ac88cb4bc7e047a030ef58d60
4
- data.tar.gz: edb24cf7f3dc4d58b09e5f3d5146819d3aba2682
3
+ metadata.gz: c88a7adc237f7151f802530ce4f66506a4965e50
4
+ data.tar.gz: f637b42ec76bb71590e0756619f5bfd2fab4d8c4
5
5
  SHA512:
6
- metadata.gz: 8c2c14872923df85e33ec63cb85134d49b397980b7ecf5e0198d3b6af48dbb037faca574321b7de53d2635d964165492d18b8aa8b180c544e0e21d299f4908e0
7
- data.tar.gz: 573e8b0b2578f0db017991cc04e80c1f96c3967a2d3664d62020ecabdf2cfad515deccf43f3235d345f26c38d728846f7ea5e633425545f928f693da756250c8
6
+ metadata.gz: 218139c1c9dc02635b90e395c48aa5eec228a2742192ed080b60508fae6d5627b3cc86a9deaa7258e8c63f7ae9866bf010a4c24ff2a98e9d14b87affb6e55933
7
+ data.tar.gz: 0e80e99ac99579ca6fae979fa5d25f21a3eb8c6261613a2ff90760545ebfff83d914a24a3699107ebcb022d6f940fafc8dda70b40f7900d14223e73b9a9d42c7
@@ -46,7 +46,7 @@ module CabooseRets
46
46
  'desc' => 'false',
47
47
  'base_url' => '/admin/agents',
48
48
  'items_per_page' => 50,
49
- 'additional_where' => [ (where) ],
49
+ 'additional_where' => [ (where) ]
50
50
  })
51
51
  render :json => {
52
52
  :pager => pager,
@@ -13,16 +13,66 @@ module CabooseRets
13
13
  @open_houses = OpenHouse.find(params[:mls_number])
14
14
  end
15
15
 
16
- # get /admin/open-houses
16
+ # @route GET /admin/open-houses
17
17
  def admin_index
18
- render :layout => 'caboose/admin'
18
+ return unless (user_is_allowed_to 'view', 'rets_open_houses')
19
+ render :layout => 'caboose/admin'
19
20
  end
20
-
21
- # get /admin/open-houses/refresh
21
+
22
+ # @route GET /admin/open-houses/json
23
+ def admin_json
24
+ render :json => false and return if !user_is_allowed_to 'view', 'rets_open_houses'
25
+ where = "(listing_mui in (select mls_number from rets_properties where list_office_mls_id = '#{@site.rets_office_id}'))" # '#{@site.rets_office_id}')"
26
+ pager = Caboose::Pager.new(params, {
27
+ 'listing_mui' => ''
28
+ }, {
29
+ 'model' => 'CabooseRets::OpenHouse',
30
+ 'sort' => 'start_time',
31
+ 'desc' => 'true',
32
+ 'base_url' => '/admin/open-houses',
33
+ 'items_per_page' => 50,
34
+ 'additional_where' => [ where ]
35
+ })
36
+ render :json => {
37
+ :pager => pager,
38
+ :models => pager.items
39
+ }
40
+ end
41
+
42
+ # @route GET /admin/open-houses/:id/json
43
+ def admin_json_single
44
+ render :json => false and return if !user_is_allowed_to 'edit', 'rets_open_houses'
45
+ prop = OpenHouse.find(params[:id])
46
+ render :json => prop
47
+ end
48
+
49
+ # @route GET /admin/open-houses/refresh
22
50
  def admin_refresh
23
- RetsImporter.update_helper('OpenHouse', DateTime.parse(1.month.ago.strftime('%F %T')))
51
+ RetsImporter.update_helper('OpenHouse', DateTime.parse(7.days.ago.strftime('%F %T')))
52
+ resp = Caboose::StdClass.new
53
+ resp.success = "New open houses are being imported!"
54
+ render :json => resp
55
+ end
56
+
57
+ # @route GET /admin/open-houses/:id
58
+ def admin_edit
59
+ return unless (user_is_allowed_to 'edit', 'rets_open_houses')
60
+ @openhouse = OpenHouse.find(params[:id])
61
+ render :layout => 'caboose/admin'
62
+ end
63
+
64
+ # @route PUT /admin/open-houses/:id
65
+ def admin_update
66
+ return unless (user_is_allowed_to 'edit', 'rets_open_houses')
24
67
  resp = Caboose::StdClass.new
25
- resp.success = "The open houses have been refreshed successfully."
68
+ openhouse = OpenHouse.find(params[:id])
69
+ params.each do |k,v|
70
+ case k
71
+ when "hide" then openhouse.hide = v
72
+ end
73
+ end
74
+ openhouse.save
75
+ resp.success = true
26
76
  render :json => resp
27
77
  end
28
78
 
@@ -20,6 +20,8 @@ module CabooseRets
20
20
  end
21
21
  end
22
22
  where = @site && @site.id == 558 ? "(style = 'Condo' OR res_style = 'Condo')" : "(id is not null)"
23
+ # where2 = params[:keyword].blank? ? "(id is not null)" : "(mls_number ILIKE ? or public_remarks ILIKE ? or street_name ILIKE ? or subdivision ILIKE ?)"
24
+ # terms2 = params[:keyword].blank? ? nil : ["%#{params[:keyword]}%","%#{params[:keyword]}%","%#{params[:keyword]}%","%#{params[:keyword]}%"]
23
25
  sortby = @site && @site.id == 558 ? "original_entry_timestamp" : CabooseRets::default_property_sort
24
26
  @pager = Caboose::PageBarGenerator.new(params, {
25
27
  'area' => '',
@@ -70,7 +72,7 @@ module CabooseRets
70
72
  'skip' => ['status'],
71
73
  'base_url' => '/properties',
72
74
  'items_per_page' => 10,
73
- 'additional_where' => [ (where) ]
75
+ 'additional_where' => [ where ]
74
76
  })
75
77
 
76
78
  @properties = @pager.items
@@ -191,7 +193,11 @@ module CabooseRets
191
193
  def facebook_listings_feed
192
194
  rc = CabooseRets::RetsConfig.where(:site_id => @site.id).first
193
195
  if params[:fieldtype] == 'agent' && rc && !rc.agent_mls.blank?
194
- @properties = CabooseRets::Property.where("list_agent_mls_id = ?", rc.agent_mls).order("original_entry_timestamp DESC").take(100)
196
+ if @site.id == 558
197
+ @properties = CabooseRets::Property.where("list_agent_mls_id in (?)", ['118593705','118511951','118598750','SCHMANDTT','118599999','118509093','118518704','118515504']).order("original_entry_timestamp DESC").take(100)
198
+ else
199
+ @properties = CabooseRets::Property.where("list_agent_mls_id = ?", rc.agent_mls).order("original_entry_timestamp DESC").take(100)
200
+ end
195
201
  elsif params[:fieldtype] == 'office' && rc && !rc.office_mls.blank?
196
202
  @properties = CabooseRets::Property.where("list_office_mls_id = ?", rc.office_mls).order("original_entry_timestamp DESC").take(100)
197
203
  else
@@ -3,7 +3,7 @@ class CabooseRets::OpenHouse < ActiveRecord::Base
3
3
  self.table_name = "rets_open_houses"
4
4
 
5
5
  has_one :property, :primary_key => 'listing_mui', :foreign_key => 'mls_number'
6
- attr_accessible :id, :matrix_unique_id
6
+ attr_accessible :id, :matrix_unique_id, :hide
7
7
 
8
8
  # def property
9
9
  # models = [CabooseRets::Property]
@@ -132,8 +132,6 @@ class CabooseRets::RetsImporter # < ActiveRecord::Base
132
132
  k = m.remote_key_field
133
133
  d = date_modified.in_time_zone(CabooseRets::timezone).strftime("%FT%T")
134
134
 
135
- self.log "d: #{d}"
136
-
137
135
  quer = "(#{m.date_modified_field}=#{d}+)"
138
136
  quer += "OR(PhotosChangeTimestamp=#{d}+)" if class_type == 'Property'
139
137
 
@@ -13,7 +13,7 @@ class CabooseRets::RetsPlugin < Caboose::CaboosePlugin
13
13
  }
14
14
  item['children'] << { 'id' => 'agents', 'icon' => 'users', 'href' => '/admin/agents' , 'text' => 'Agents' , 'modal' => false } if user.is_allowed('rets_agents','view')
15
15
  # item['children'] << { 'id' => 'offices' , 'href' => '/admin/offices' , 'text' => 'Offices' , 'modal' => false }
16
- # item['children'] << { 'id' => 'open-houses' , 'href' => '/admin/open-houses' , 'text' => 'Open Houses' , 'modal' => false }
16
+ item['children'] << { 'id' => 'open-houses', 'icon' => 'calendars', 'href' => '/admin/open-houses' , 'text' => 'Open Houses' , 'modal' => false } if user.is_allowed('rets_open_houses','view')
17
17
  item['children'] << { 'id' => 'properties' , 'icon' => 'rets', 'href' => '/admin/properties' , 'text' => 'Properties' , 'modal' => false } if user.is_allowed('rets_properties','view')
18
18
  # item['children'] << { 'id' => 'commercial' , 'href' => '/admin/commercial' , 'text' => 'Commercial Property' , 'modal' => false }
19
19
  # item['children'] << { 'id' => 'commercial' , 'href' => '/admin/multi-family' , 'text' => 'Multi-Family Property' , 'modal' => false }
@@ -95,7 +95,8 @@ class CabooseRets::Schema < Caboose::Utilities::Schema
95
95
  [ :open_house_type , :text ],
96
96
  [ :provider_key , :text ],
97
97
  [ :refreshments , :text ],
98
- [ :start_time , :text ]
98
+ [ :start_time , :text ],
99
+ [ :hide, :boolean , { :default => false }]
99
100
  ],
100
101
  CabooseRets::Property => [
101
102
  [ :access , :text],
@@ -1,15 +1,46 @@
1
+ <%= raw @crumbtrail.print({
2
+ '/admin' => 'Admin',
3
+ '/admin/open-houses' => 'Open Houses'
4
+ }) %>
1
5
 
2
6
  <h1>Open Houses</h1>
3
- <p><input type='button' value='Refresh Open Houses' onclick='refresh_open_house();' /></p>
4
- <div id='message'></div>
7
+
8
+ <p><a class="caboose-btn" href='#' onclick='refresh_open_house();return false;'>Import new open houses from MLS</a></p>
9
+ <div id="message"></div>
10
+
11
+ <div id='open-houses'></div>
12
+
13
+ <br /><br />
14
+
15
+ <% content_for :caboose_css do %>
16
+ <style>
17
+ #open-houses_new { display: none; }
18
+ </style>
19
+ <% end %>
20
+
5
21
 
6
22
  <% content_for :caboose_js do %>
7
- <%= javascript_include_tag "caboose/model/all" %>
23
+ <%= javascript_include_tag 'caboose/model/all' %>
8
24
  <script type='text/javascript'>
9
25
 
26
+ function date_format(date) {
27
+ var u = new Date(date);
28
+ var d = new Date(u.getTime() + u.getTimezoneOffset() * 60000)
29
+ var string = '';
30
+ if (d) {
31
+ d.setHours(0);
32
+ string += (d.getMonth() + 1);
33
+ string += "/";
34
+ string += d.getDate();
35
+ string += "/";
36
+ string += d.getFullYear();
37
+ }
38
+ return string;
39
+ }
40
+
10
41
  function refresh_open_house()
11
42
  {
12
- $('#message').html("<p class='loading'>Refreshing open houses...</p>");
43
+ $('#message').html("<p class='note loading'>Refreshing open houses...</p>");
13
44
  $.ajax({
14
45
  url: '/admin/open-houses/refresh',
15
46
  type: 'get',
@@ -20,5 +51,27 @@ function refresh_open_house()
20
51
  });
21
52
  }
22
53
 
54
+ $(document).ready(function() {
55
+ var that = this;
56
+ var table = new IndexTable({
57
+ form_authenticity_token: '<%= form_authenticity_token %>',
58
+ container: 'open-houses',
59
+ base_url: '/admin/open-houses',
60
+ allow_bulk_edit: false,
61
+ allow_bulk_delete: false,
62
+ allow_duplicate: false,
63
+ allow_advanced_edit: false,
64
+ allow_bulk_import: false,
65
+ no_models_text: "No matching open-houses were found.",
66
+ fields: [
67
+ { show: true , editable: false, bulk_edit: false, name: 'listing_mui' , nice_name: 'MLS Number' , sort: 'listing_mui' , type: 'text' , value: function(r) { return r.listing_mui }, width: 200 },
68
+ { show: true , editable: false, bulk_edit: false, name: 'start_time' , nice_name: 'Date' , sort: 'start_time' , type: 'text' , value: function(r) { return date_format(r.start_time) }, width: 200 },
69
+ { show: true , editable: true, bulk_edit: true, name: 'hide' , nice_name: 'Hide' , sort: 'hide' , type: 'checkbox' , text: function(r) { return r.hide ? 'Yes' : 'No' }, value: function(r) { return r.hide ? true : false }, width: 200 }
70
+ ],
71
+ search_fields: [
72
+ { name: 'listing_mui' , nice_name: 'MLS Number' , type: 'text' }
73
+ ]
74
+ });
75
+ });
23
76
  </script>
24
- <% end %>
77
+ <% end %>
@@ -1,11 +1,13 @@
1
1
  domain = Caboose::Domain.where(:site_id => @site.id, :primary => true).first.domain
2
2
  hp = Caboose::Page.where(:site_id => @site.id, :title => "Home").first
3
3
  xml.instruct! :xml, :version => "1.0"
4
- #xml.rss :version => "2.0", "xmlns:g" => "http://base.google.com/ns/1.0" do
5
4
  xml.listings do
6
- xml.title @site.description
7
- xml.link(("https://" + domain), :rel => "self")
8
- # xml.language "en"
5
+ xml.title @site.id == 558 ? "The Gray Group" : @site.description
6
+ if @site.id == 558
7
+ xml.link("https://www.thegraygroupal.com", :rel => "self")
8
+ else
9
+ xml.link(("https://" + domain), :rel => "self")
10
+ end
9
11
  for property in @properties
10
12
  xml.listing do
11
13
  kind = "#{property.res_style} #{property.style} #{property.property_type} #{property.property_subtype}"
@@ -1,3 +1,3 @@
1
1
  module CabooseRets
2
- VERSION = '0.1.56'
3
- end
2
+ VERSION = '0.1.57'
3
+ end
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.56
4
+ version: 0.1.57
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-12 00:00:00.000000000 Z
11
+ date: 2018-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: caboose-cms
@@ -74,7 +74,6 @@ files:
74
74
  - app/views/caboose_rets/offices/admin_edit.html.erb
75
75
  - app/views/caboose_rets/offices/admin_index.html.erb
76
76
  - app/views/caboose_rets/open_houses/admin_index.html.erb
77
- - app/views/caboose_rets/open_houses/admin_new.html.erb
78
77
  - app/views/caboose_rets/properties/_image_gallery.html.erb
79
78
  - app/views/caboose_rets/properties/_search_form.html.erb
80
79
  - app/views/caboose_rets/properties/admin_edit.html.erb
@@ -1,31 +0,0 @@
1
-
2
- <h1>New Open House</h1>
3
- <p><input type='text' id='mls' name='mls' placeholder='Property MLS#' style="width: 400px;" /></p>
4
- <p>Open House on <input type='text' id='date_time' name='date_time' placeholder='Date and Time' style="width: 400px;" /> at [address]</p>
5
- <div id='message'></div>
6
- <p><input type='submit' value='Add Post' onclick='add_open_house();' /></p>
7
-
8
- <% content_for :caboose_js do %>
9
- <%= javascript_include_tag "caboose/model/all" %>
10
- <script type='text/javascript'>
11
-
12
- function add_open_house()
13
- {
14
- $('#message').html("<p class='loading'>Adding post...</p>");
15
- $.ajax({
16
- url: '/admin/open-houses',
17
- type: 'post',
18
- data: {
19
- authenticity_token: "<%= form_authenticity_token %>",
20
- mls: $('#mls').val(),
21
- date_time: $('#date_time').val()
22
- },
23
- success: function(resp) {
24
- if (resp.error) $('#message').html("<p class='note error'>" + resp.error + "</p>");
25
- if (resp.redirect) window.location = resp.redirect
26
- }
27
- });
28
- }
29
-
30
- </script>
31
- <% end %>