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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3721be10e7efeeac492d4d6f0356529b354de233c08fbffe6ad6da9405384165
4
- data.tar.gz: cecb7cc4d5183a7b63193213ce214170430b6a0ff8a76bedf7c7dbcd2cf6cc1d
3
+ metadata.gz: '0693d66d51cc96cc0047406427a7995952d4ff49811f00e4ddc29a42e8ce10cd'
4
+ data.tar.gz: f64af0ab95cc78276e1c7fcedfbe07f24ffb2156812771845b697cb268cc02d5
5
5
  SHA512:
6
- metadata.gz: 870f358c326b3f9b24a779e1d2b86d31a0e4e424c96fa4fcf2a2704cb84d576cbca4d6f8bb012c907b86df1822b524b8ff24ab7c7d237185925484b66ff9a1db
7
- data.tar.gz: 0c87f5e78d2f6c30cd3745a6740289cf1b9cb03eabe9ecbe4ba80aece7bb80e281b785098728b5345c359d941bd52db177cf284d6d4b4373c417954c4027e8fb
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, :mls
5
+ attr_accessible :user_id, :mls_number
6
6
 
7
7
  def property
8
- return CabooseRets.get_property(self.mls)
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 , :integer ]
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 %>_weight"></div>
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 %>
@@ -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"
@@ -1,3 +1,3 @@
1
1
  module CabooseRets
2
- VERSION = '0.1.137'
2
+ VERSION = '0.1.138'
3
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.137
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-06-27 00:00:00.000000000 Z
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