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 +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 %>
|