caboose-rets 0.1.56 → 0.1.57

Sign up to get free protection for your applications and to get access to all the features.
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 %>