caboose-rets 0.1.137 → 0.1.138
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 +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
|