caboose-rets 0.1.137 → 0.1.138
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 +11 -0
- data/app/controllers/caboose_rets/saved_properties_controller.rb +6 -0
- data/app/models/caboose_rets/agent.rb +23 -0
- data/app/models/caboose_rets/rets_plugin.rb +6 -0
- data/app/models/caboose_rets/saved_property.rb +4 -3
- data/app/models/caboose_rets/schema.rb +10 -1
- data/app/views/caboose_rets/agents/admin_edit.html.erb +15 -7
- data/app/views/caboose_rets/saved_properties/rets_info.html.erb +32 -0
- data/config/routes.rb +1 -0
- data/lib/caboose_rets/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0693d66d51cc96cc0047406427a7995952d4ff49811f00e4ddc29a42e8ce10cd'
|
4
|
+
data.tar.gz: f64af0ab95cc78276e1c7fcedfbe07f24ffb2156812771845b697cb268cc02d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1fc5cb0670567151252eb6fce0fc78a11befe94d9893e070682838b8941c7448dba03e5708c95247c4615bfc6eb0a0310f64c3287a813afca13546a34afff24
|
7
|
+
data.tar.gz: 18ae14806df3455790c5c98db7d3e96191557415c1509ca44a71c74f205f059ad297102fbe5a5560c88405b97ab3c613a4b8a6cd61b3ebd90e41a7e22fe82364
|
@@ -33,6 +33,17 @@ module CabooseRets
|
|
33
33
|
render :layout => 'caboose/admin'
|
34
34
|
end
|
35
35
|
|
36
|
+
# @route GET /admin/agents/options
|
37
|
+
def admin_agent_options
|
38
|
+
options = []
|
39
|
+
rc = CabooseRets::RetsConfig.where(:site_id => @site.id).first
|
40
|
+
agents = rc ? CabooseRets::Agent.joins(:meta).where(:office_mls_id => rc.office_mls, rets_agents_meta: {hide: FALSE, accepts_listings: true}).order(:sort_order).all : []
|
41
|
+
agents.each do |c|
|
42
|
+
options << { 'value' => c.mls_id, 'text' => "#{c.first_name} #{c.last_name}" }
|
43
|
+
end
|
44
|
+
render :json => options
|
45
|
+
end
|
46
|
+
|
36
47
|
# @route GET /admin/agents/json
|
37
48
|
def admin_json
|
38
49
|
render :json => false and return if !user_is_allowed_to 'view', 'rets_agents'
|
@@ -7,6 +7,12 @@ module CabooseRets
|
|
7
7
|
@properties = SavedProperty.where(:user_id => logged_in_user.id).all
|
8
8
|
end
|
9
9
|
|
10
|
+
# GET /admin/users/:id/mls
|
11
|
+
def rets_info
|
12
|
+
@edituser = Caboose::User.where(:id => params[:id], :site_id => @site.id).first
|
13
|
+
render :layout => 'caboose/admin'
|
14
|
+
end
|
15
|
+
|
10
16
|
# POST /saved-properties
|
11
17
|
def add
|
12
18
|
return if !verify_logged_in
|
@@ -39,6 +39,29 @@ class CabooseRets::Agent < ActiveRecord::Base
|
|
39
39
|
CabooseRets::RetsImporter.import('Member', "(MemberMlsId=#{self.mls_id})")
|
40
40
|
CabooseRets::RetsImporter.import_agent(self.mls_id)
|
41
41
|
end
|
42
|
+
|
43
|
+
def self.assign_to_new_user(user)
|
44
|
+
if user && user.site && user.site.use_rets
|
45
|
+
rc = CabooseRets::RetsConfig.where(:site_id => user.site_id).first
|
46
|
+
agents = rc ? CabooseRets::Agent.joins(:meta).where(:office_mls_id => rc.office_mls, rets_agents_meta: {hide: FALSE, accepts_listings: true}).order(:sort_order).all : []
|
47
|
+
last_agent_mls_id = Caboose::Setting.where(:name => "latest_user_agent", :site_id => user.site_id).exists? ? Caboose::Setting.where(:name => "latest_user_agent", :site_id => user.site_id).first : Caboose::Setting.create(:name => "latest_user_agent", :site_id => user.site_id, :value => agents.first.mls_id)
|
48
|
+
last_agent = CabooseRets::Agent.joins(:meta).where(:mls_id => last_agent_mls_id.value, rets_agents_meta: {hide: FALSE, accepts_listings: true}).first
|
49
|
+
agent_index = last_agent.present? ? agents.find_index(last_agent) : 0
|
50
|
+
agent_index + 1 < agents.count ? agent_index += 1 : agent_index = 0
|
51
|
+
agent = agents[agent_index]
|
52
|
+
if agent.mls_id == '118593505' # Steven Deal shouldn't be assigned
|
53
|
+
agent_index + 1 < agents.count ? agent_index += 1 : agent_index = 0
|
54
|
+
agent = agents[agent_index]
|
55
|
+
end
|
56
|
+
Caboose.log("Assigning agent #{agent.mls_id} to user #{user.id}")
|
57
|
+
user.rets_agent_mls_id = agent.mls_id
|
58
|
+
last_agent_mls_id.value = agent.mls_id
|
59
|
+
user.save
|
60
|
+
last_agent_mls_id.save
|
61
|
+
role = Caboose::Role.where(:name => 'RETS Visitor', :site_id => user.site_id).exists? ? Caboose::Role.where(:name => 'RETS Visitor', :site_id => user.site_id).first : Caboose::Role.create(:name => 'RETS Visitor', :site_id => user.site_id)
|
62
|
+
Caboose::RoleMembership.create(:user_id => user.id, :role_id => role.id)
|
63
|
+
end
|
64
|
+
end
|
42
65
|
|
43
66
|
def parse(data)
|
44
67
|
# self.agent_number = data['AgentNumber']
|
@@ -26,5 +26,11 @@ class CabooseRets::RetsPlugin < Caboose::CaboosePlugin
|
|
26
26
|
|
27
27
|
return nav
|
28
28
|
end
|
29
|
+
|
30
|
+
def self.admin_user_tabs(tabs, user, site)
|
31
|
+
arr = tabs.to_a.insert(-2, ['MLS Profile', "/admin/users/#{user.id}/mls"])
|
32
|
+
tabs = Hash[arr]
|
33
|
+
return tabs
|
34
|
+
end
|
29
35
|
|
30
36
|
end
|
@@ -1,10 +1,11 @@
|
|
1
|
-
|
2
1
|
class CabooseRets::SavedProperty < ActiveRecord::Base
|
3
2
|
self.table_name = "rets_saved_properties"
|
3
|
+
|
4
4
|
belongs_to :user, :class_name => 'Caboose::User'
|
5
|
-
attr_accessible :user_id, :
|
5
|
+
attr_accessible :user_id, :mls_number
|
6
6
|
|
7
7
|
def property
|
8
|
-
return CabooseRets.
|
8
|
+
return CabooseRets::Property.where(:mls_number => self.mls_number).first
|
9
9
|
end
|
10
|
+
|
10
11
|
end
|
@@ -7,6 +7,12 @@ class CabooseRets::Schema < Caboose::Utilities::Schema
|
|
7
7
|
}
|
8
8
|
end
|
9
9
|
|
10
|
+
def self.removed_columns
|
11
|
+
{
|
12
|
+
CabooseRets::SavedProperty => [:mls_acct]
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
10
16
|
# The schema of the database
|
11
17
|
# { Model => [[name, data_type, options]] }
|
12
18
|
def self.schema
|
@@ -315,7 +321,7 @@ class CabooseRets::Schema < Caboose::Utilities::Schema
|
|
315
321
|
],
|
316
322
|
CabooseRets::SavedProperty => [
|
317
323
|
[ :user_id , :integer ],
|
318
|
-
[ :mls_number , :
|
324
|
+
[ :mls_number , :string ]
|
319
325
|
],
|
320
326
|
CabooseRets::SavedSearch => [
|
321
327
|
[ :user_id , :integer ],
|
@@ -336,6 +342,9 @@ class CabooseRets::Schema < Caboose::Utilities::Schema
|
|
336
342
|
Caboose::Site => [
|
337
343
|
[ :use_rets , :boolean, { :default => false }]
|
338
344
|
],
|
345
|
+
Caboose::User => [
|
346
|
+
[ :rets_agent_mls_id , :string ]
|
347
|
+
],
|
339
348
|
CabooseRets::RetsConfig => [
|
340
349
|
[ :site_id, :integer ],
|
341
350
|
[ :office_mls, :string ],
|
@@ -35,13 +35,9 @@
|
|
35
35
|
<span class="title">MLS ID</span>
|
36
36
|
<span class="value"><%= @agent.mls_id %></span>
|
37
37
|
</p>
|
38
|
-
|
39
|
-
|
40
38
|
<div id="agent_<%= @agent.id %>_accepts_listings"></div>
|
41
39
|
<br />
|
42
|
-
<div id="agent_<%= @agent.id %>
|
43
|
-
<br />
|
44
|
-
<div id="agent_<%= @agent.id %>_hide"></div>
|
40
|
+
<div id="agent_<%= @agent.id %>_hide"></div>
|
45
41
|
<br />
|
46
42
|
<div id="agent_<%= @agent.id %>_slug"></div>
|
47
43
|
|
@@ -59,13 +55,24 @@
|
|
59
55
|
<div class="unit1of2 right">
|
60
56
|
<% properties = CabooseRets::Property.where(:representative_agent_mui => @agent.mls_id).order('id desc').limit(100) %>
|
61
57
|
<% if properties.count > 0 %>
|
62
|
-
<h5>Assigned Listings (<%= properties.count %>)</h5>
|
58
|
+
<h5 style="margin:0;">Assigned Listings (<%= properties.count %>)</h5>
|
63
59
|
<ul>
|
64
60
|
<% properties.each do |prop| %>
|
65
61
|
<li><a target="_blank" href="/properties/<%= prop.mls_number %>/details">MLS # <%= prop.mls_number %> - <%= prop.full_address %></a></li>
|
66
62
|
<% end %>
|
67
63
|
</ul>
|
68
|
-
<% end %>
|
64
|
+
<% end %>
|
65
|
+
|
66
|
+
<% users = Caboose::User.where(:rets_agent_mls_id => @agent.mls_id).order('id desc').limit(100) %>
|
67
|
+
<% if users.count > 0 %>
|
68
|
+
<h5 style="margin:0;">Assigned Users (<%= users.count %>)</h5>
|
69
|
+
<ul>
|
70
|
+
<% users.each do |user| %>
|
71
|
+
<li><a href="/admin/users/<%= user.id %>"><%= user.first_name %> <%= user.last_name %></a></li>
|
72
|
+
<% end %>
|
73
|
+
</ul>
|
74
|
+
<% end %>
|
75
|
+
|
69
76
|
</div>
|
70
77
|
</div>
|
71
78
|
|
@@ -86,6 +93,7 @@
|
|
86
93
|
.unit1of2.right ul {
|
87
94
|
list-style-type: none;
|
88
95
|
padding: 0;
|
96
|
+
margin-top: 6px;
|
89
97
|
}
|
90
98
|
.unit1of2.right ul li {
|
91
99
|
margin-bottom: 1px;
|
@@ -0,0 +1,32 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
<%= render :partial => 'caboose/users/admin_header' %>
|
4
|
+
|
5
|
+
<h3 style="margin:0;">MLS Profile</h3>
|
6
|
+
|
7
|
+
<div class="mb-holder">
|
8
|
+
<p><div id='user_<%= @edituser.id %>_rets_agent_mls_id' ></div></p>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
<%= render :partial => 'caboose/users/admin_footer' %>
|
14
|
+
|
15
|
+
<% content_for :caboose_js do %>
|
16
|
+
<%= javascript_include_tag "caboose/model/all" %>
|
17
|
+
<script type="text/javascript">
|
18
|
+
|
19
|
+
$(document).ready(function() {
|
20
|
+
new ModelBinder({
|
21
|
+
name: 'User',
|
22
|
+
id: <%= @edituser.id %>,
|
23
|
+
update_url: '/admin/users/<%= @edituser.id %>',
|
24
|
+
authenticity_token: '<%= form_authenticity_token %>',
|
25
|
+
attributes: [
|
26
|
+
{ name: 'rets_agent_mls_id' , nice_name: 'Assigned Agent', type: 'select' , value: <%= raw Caboose.json(@edituser.rets_agent_mls_id) %>, width: 400, options_url: '/admin/agents/options' }
|
27
|
+
]
|
28
|
+
});
|
29
|
+
});
|
30
|
+
|
31
|
+
</script>
|
32
|
+
<% end %>
|
data/config/routes.rb
CHANGED
@@ -96,6 +96,7 @@ CabooseRets::Engine.routes.draw do
|
|
96
96
|
get "/saved-properties" => "saved_properties#index"
|
97
97
|
post "/saved-properties" => "saved_properties#add"
|
98
98
|
delete "/saved-properties/:mls" => "saved_properties#delete"
|
99
|
+
get "/admin/users/:id/mls" => "saved_properties#rets_info"
|
99
100
|
|
100
101
|
get "/admin/properties/:mls/photos" => "rets_media#admin_photos"
|
101
102
|
get "/admin/properties/:mls/files" => "rets_media#admin_files"
|
data/lib/caboose_rets/version.rb
CHANGED
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.138
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Barry
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-07-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: caboose-cms
|
@@ -100,6 +100,7 @@ files:
|
|
100
100
|
- app/views/caboose_rets/properties/property_not_exists.html.erb
|
101
101
|
- app/views/caboose_rets/properties/test_form.html.erb
|
102
102
|
- app/views/caboose_rets/rets/admin_import_form.html.erb
|
103
|
+
- app/views/caboose_rets/saved_properties/rets_info.html.erb
|
103
104
|
- app/views/caboose_rets/saved_searches/edit.html.erb
|
104
105
|
- app/views/caboose_rets/saved_searches/index.html.erb
|
105
106
|
- config/routes.rb
|