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 +4 -4
- data/app/controllers/caboose_rets/agents_controller.rb +1 -1
- data/app/controllers/caboose_rets/open_houses_controller.rb +56 -6
- data/app/controllers/caboose_rets/properties_controller.rb +8 -2
- data/app/models/caboose_rets/open_house.rb +1 -1
- data/app/models/caboose_rets/rets_importer.rb +0 -2
- data/app/models/caboose_rets/rets_plugin.rb +1 -1
- data/app/models/caboose_rets/schema.rb +2 -1
- data/app/views/caboose_rets/open_houses/admin_index.html.erb +58 -5
- data/app/views/caboose_rets/properties/facebook_listings_feed.rss.builder +6 -4
- data/lib/caboose_rets/version.rb +2 -2
- metadata +2 -3
- data/app/views/caboose_rets/open_houses/admin_new.html.erb +0 -31
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c88a7adc237f7151f802530ce4f66506a4965e50
|
|
4
|
+
data.tar.gz: f637b42ec76bb71590e0756619f5bfd2fab4d8c4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 218139c1c9dc02635b90e395c48aa5eec228a2742192ed080b60508fae6d5627b3cc86a9deaa7258e8c63f7ae9866bf010a4c24ff2a98e9d14b87affb6e55933
|
|
7
|
+
data.tar.gz: 0e80e99ac99579ca6fae979fa5d25f21a3eb8c6261613a2ff90760545ebfff83d914a24a3699107ebcb022d6f940fafc8dda70b40f7900d14223e73b9a9d42c7
|
|
@@ -13,16 +13,66 @@ module CabooseRets
|
|
|
13
13
|
@open_houses = OpenHouse.find(params[:mls_number])
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
#
|
|
16
|
+
# @route GET /admin/open-houses
|
|
17
17
|
def admin_index
|
|
18
|
-
|
|
18
|
+
return unless (user_is_allowed_to 'view', 'rets_open_houses')
|
|
19
|
+
render :layout => 'caboose/admin'
|
|
19
20
|
end
|
|
20
|
-
|
|
21
|
-
#
|
|
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(
|
|
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
|
-
|
|
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' => [
|
|
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
|
-
@
|
|
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
|
-
|
|
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
|
-
|
|
4
|
-
<
|
|
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
|
|
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
|
-
|
|
8
|
-
|
|
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}"
|
data/lib/caboose_rets/version.rb
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
module CabooseRets
|
|
2
|
-
VERSION = '0.1.
|
|
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.
|
|
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-
|
|
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 %>
|