caboose-rets 0.1.18 → 0.1.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/caboose_rets/admin_media.js +7 -7
  3. data/app/assets/javascripts/caboose_rets/caboose_rets.js +8 -8
  4. data/app/controllers/caboose_rets/agents_controller.rb +67 -75
  5. data/app/controllers/caboose_rets/offices_controller.rb +4 -4
  6. data/app/controllers/caboose_rets/open_houses_controller.rb +3 -3
  7. data/app/controllers/caboose_rets/properties_controller.rb +160 -0
  8. data/app/controllers/caboose_rets/rets_controller.rb +2 -2
  9. data/app/controllers/caboose_rets/rets_media_controller.rb +13 -13
  10. data/app/controllers/caboose_rets/saved_properties_controller.rb +35 -35
  11. data/app/models/caboose_rets/agent.rb +42 -55
  12. data/app/models/caboose_rets/agent_meta.rb +7 -7
  13. data/app/models/caboose_rets/media.rb +63 -57
  14. data/app/models/caboose_rets/office.rb +35 -21
  15. data/app/models/caboose_rets/open_house.rb +15 -15
  16. data/app/models/caboose_rets/property.rb +203 -0
  17. data/app/models/caboose_rets/rets_importer.rb +193 -233
  18. data/app/models/caboose_rets/rets_importer_bak.rb +77 -77
  19. data/app/models/caboose_rets/rets_importer_old.rb +625 -0
  20. data/app/models/caboose_rets/saved_property.rb +4 -4
  21. data/app/models/caboose_rets/saved_search.rb +36 -33
  22. data/app/models/caboose_rets/schema.rb +324 -855
  23. data/app/models/caboose_rets/schema_past.rb +918 -0
  24. data/app/models/caboose_rets/search_option.rb +6 -6
  25. data/app/views/caboose/blocks/_layout_rets.html.erb +9 -6
  26. data/app/views/caboose/blocks/_rets_agent_listings.html.erb +3 -3
  27. data/app/views/caboose_rets/agents/index.html.erb +23 -40
  28. data/app/views/caboose_rets/media/admin_property_media.html.erb +2 -2
  29. data/app/views/caboose_rets/{residential → properties}/_search_form.html.erb +42 -42
  30. data/app/views/caboose_rets/{residential → properties}/admin_edit.html.erb +7 -7
  31. data/app/views/caboose_rets/{land → properties}/admin_index.html.erb +11 -11
  32. data/app/views/caboose_rets/properties/details.html.erb +127 -0
  33. data/app/views/caboose_rets/{land → properties}/index.html.erb +0 -0
  34. data/app/views/caboose_rets/{residential/residential_not_exists.html.erb → properties/property_not_exists.html.erb} +4 -5
  35. data/app/views/caboose_rets/{residential → properties}/test_form.html.erb +1 -1
  36. data/app/views/caboose_rets/rets/admin_import_form.html.erb +1 -1
  37. data/config/routes.rb +70 -55
  38. data/lib/caboose-rets.rb +1 -1
  39. data/lib/caboose_rets/engine.rb +3 -3
  40. data/lib/caboose_rets/version.rb +1 -1
  41. data/lib/rets/base/core.rb +1 -1
  42. data/lib/rets/base/sax_search.rb +1 -1
  43. data/lib/tasks/caboose_rets.rake +106 -17
  44. metadata +16 -50
  45. data/app/controllers/caboose_rets/commercial_controller.rb +0 -349
  46. data/app/controllers/caboose_rets/land_controller.rb +0 -144
  47. data/app/controllers/caboose_rets/multi_family_controller.rb +0 -107
  48. data/app/controllers/caboose_rets/residential_controller.rb +0 -163
  49. data/app/models/caboose_rets/commercial_property.rb +0 -214
  50. data/app/models/caboose_rets/land_property.rb +0 -144
  51. data/app/models/caboose_rets/multi_family_property.rb +0 -199
  52. data/app/models/caboose_rets/residential_property.rb +0 -236
  53. data/app/views/caboose/blocks/_rets_commercial_details.html.erb +0 -192
  54. data/app/views/caboose/blocks/_rets_commercial_headers.html.erb +0 -17
  55. data/app/views/caboose/blocks/_rets_commercial_index.html.erb +0 -71
  56. data/app/views/caboose/blocks/_rets_commercial_row.html.erb +0 -39
  57. data/app/views/caboose/blocks/_rets_commercial_search_form.html.erb +0 -201
  58. data/app/views/caboose/blocks/_rets_land_details.html.erb +0 -165
  59. data/app/views/caboose/blocks/_rets_land_index.html.erb +0 -63
  60. data/app/views/caboose/blocks/_rets_land_row.html.erb +0 -58
  61. data/app/views/caboose/blocks/_rets_land_search_form.html.erb +0 -194
  62. data/app/views/caboose/blocks/_rets_multifamily_details.html.erb +0 -161
  63. data/app/views/caboose/blocks/_rets_multifamily_index.html.erb +0 -63
  64. data/app/views/caboose/blocks/_rets_multifamily_row.html.erb +0 -56
  65. data/app/views/caboose/blocks/_rets_multifamily_search_form.html.erb +0 -273
  66. data/app/views/caboose/blocks/_rets_openhouse_details.html.erb +0 -12
  67. data/app/views/caboose/blocks/_rets_openhouses_index.html.erb +0 -79
  68. data/app/views/caboose/blocks/_rets_residential_details.html.erb +0 -243
  69. data/app/views/caboose/blocks/_rets_residential_index.html.erb +0 -65
  70. data/app/views/caboose/blocks/_rets_residential_row.html.erb +0 -59
  71. data/app/views/caboose/blocks/_rets_residential_search_form.html.erb +0 -304
  72. data/app/views/caboose_rets/commercial/admin_edit.html.erb +0 -269
  73. data/app/views/caboose_rets/commercial/admin_index.html.erb +0 -51
  74. data/app/views/caboose_rets/commercial/admin_new.html.erb +0 -57
  75. data/app/views/caboose_rets/commercial/details.html.erb +0 -0
  76. data/app/views/caboose_rets/commercial/index.html.erb +0 -87
  77. data/app/views/caboose_rets/land/admin_edit.html.erb +0 -156
  78. data/app/views/caboose_rets/land/details.html.erb +0 -0
  79. data/app/views/caboose_rets/multi_family/admin_edit.html.erb +0 -211
  80. data/app/views/caboose_rets/multi_family/admin_index.html.erb +0 -46
  81. data/app/views/caboose_rets/residential/admin_index.html.erb +0 -46
  82. data/app/views/caboose_rets/residential/details.html.erb +0 -0
  83. data/app/views/caboose_rets/residential/index.html.erb +0 -0
@@ -12,8 +12,8 @@ module CabooseRets
12
12
  def admin_import
13
13
  return if !user_is_allowed('properties', 'edit')
14
14
 
15
- mls_acct = params[:mls_acct].to_i
16
- CabooseRets::RetsImporter.delay(:queue => 'rets').import_property(mls_acct)
15
+ mls = params[:mls].to_i
16
+ CabooseRets::RetsImporter.delay(:queue => 'rets').import_property(mls)
17
17
 
18
18
  resp = Caboose::StdClass.new
19
19
  resp.success = "The property is being imported from MLS. This may take a few minutes depending on how many images it has."
@@ -9,39 +9,39 @@ module CabooseRets
9
9
  render :json => media_hash(m)
10
10
  end
11
11
 
12
- # GET /admin/properties/:mls_acct/media
12
+ # GET /admin/properties/:mls/media
13
13
  def admin_property_media
14
14
  return if !user_is_allowed('media', 'view')
15
- @property = CabooseRets.get_property(params[:mls_acct])
15
+ @property = CabooseRets.get_property(params[:mls])
16
16
  render :layout => 'caboose/admin'
17
17
  end
18
18
 
19
- # GET /admin/properties/:mls_acct/photos
19
+ # GET /admin/properties/:mls/photos
20
20
  def admin_photos
21
21
  return if !user_is_allowed('media', 'view')
22
- media = Media.where(:mls_acct => params[:mls_acct], :media_type => 'Photo').reorder(:media_order).all
22
+ media = Media.where(:mls => params[:mls], :media_type => 'Photo').reorder(:media_order).all
23
23
  media2 = media.collect { |m| media_hash(m) }
24
24
  render :json => media2
25
25
  end
26
26
 
27
- # GET /admin/properties/:mls_acct/files
27
+ # GET /admin/properties/:mls/files
28
28
  def admin_files
29
29
  return if !user_is_allowed('media', 'view')
30
- media = Media.where(:mls_acct => params[:mls_acct], :media_type => 'File').reorder(:media_order).all
30
+ media = Media.where(:mls => params[:mls], :media_type => 'File').reorder(:media_order).all
31
31
  media2 = media.collect { |m| media_hash(m) }
32
32
  render :json => media2
33
33
  end
34
34
 
35
- # POST /admin/properties/:mls_acct/photos
35
+ # POST /admin/properties/:mls/photos
36
36
  def admin_add_photo
37
37
  return if !user_is_allowed('media', 'edit')
38
38
 
39
- x = Media.maximum(:media_order, :conditions => {:mls_acct => params[:mls_acct], :media_type => 'Photo'})
39
+ x = Media.maximum(:media_order, :conditions => {:mls => params[:mls], :media_type => 'Photo'})
40
40
  x = 0 if x.nil?
41
41
 
42
42
  m = Media.new
43
43
  m.id = Media.maximum(:id) + 1
44
- m.mls_acct = params[:mls_acct]
44
+ m.mls = params[:mls]
45
45
  m.date_modified = DateTime.now
46
46
  m.media_order = x + 1
47
47
  m.media_type = 'Photo'
@@ -55,12 +55,12 @@ module CabooseRets
55
55
  def admin_add_file
56
56
  return if !user_is_allowed('media', 'edit')
57
57
 
58
- x = Media.maximum(:media_order, :conditions => {:mls_acct => params[:mls_acct], :media_type => 'File'})
58
+ x = Media.maximum(:media_order, :conditions => {:mls => params[:mls], :media_type => 'File'})
59
59
  x = 0 if x.nil?
60
60
 
61
61
  m = Media.new
62
62
  m.id = Media.maximum(:id) + 1
63
- m.mls_acct = params[:mls_acct]
63
+ m.mls = params[:mls]
64
64
  m.date_modified = DateTime.now
65
65
  m.media_order = x + 1
66
66
  m.media_type = 'File'
@@ -77,7 +77,7 @@ module CabooseRets
77
77
  render :json => true
78
78
  end
79
79
 
80
- # PUT /admin/properties/:mls_acct/media/order
80
+ # PUT /admin/properties/:mls/media/order
81
81
  def admin_update_order
82
82
  return if !user_is_allowed('media', 'delete')
83
83
  Media.reorder(params[:sort], "advantagerealtygroup")
@@ -95,7 +95,7 @@ module CabooseRets
95
95
  :media_order => m.media_order,
96
96
  :media_remarks => m.media_remarks,
97
97
  :media_type => m.media_type,
98
- :mls_acct => m.mls_acct,
98
+ :mls => m.mls,
99
99
  :url => m.url,
100
100
  :image => {
101
101
  :file_name => m.image_file_name,
@@ -1,88 +1,88 @@
1
1
  module CabooseRets
2
2
  class SavedPropertiesController < ApplicationController
3
-
3
+
4
4
  # GET /saved-properties
5
5
  def index
6
6
  return if !verify_logged_in
7
- @properties = SavedProperty.where(:user_id => logged_in_user.id).all
7
+ @properties = SavedProperty.where(:user_id => logged_in_user.id).all
8
8
  end
9
-
9
+
10
10
  # POST /saved-properties
11
11
  def add
12
- return if !verify_logged_in
13
-
12
+ return if !verify_logged_in
13
+
14
14
  resp = Caboose::StdClass.new
15
-
16
- if SavedProperty.exists?(:user_id => logged_in_user.id, :mls_acct => params[:mls_acct])
15
+
16
+ if SavedProperty.exists?(:user_id => logged_in_user.id, :mls => params[:mls])
17
17
  resp.success = true
18
- else
18
+ else
19
19
  p = SavedProperty.new(
20
20
  :user_id => logged_in_user.id,
21
- :mls_acct => params[:mls_acct]
21
+ :mls => params[:mls]
22
22
  )
23
23
  if p.save
24
- resp.success = true
24
+ resp.success = true
25
25
  else
26
- resp.error = "There was an error saving your property."
26
+ resp.error = "There was an error saving your property."
27
27
  end
28
28
  end
29
29
  render :json => resp
30
30
  end
31
-
32
- # DELETE /saved-properties/:mls_acct
31
+
32
+ # DELETE /saved-properties/:mls
33
33
  def delete
34
- return if !verify_logged_in
35
- SavedProperty.where(:user_id => logged_in_user.id, :mls_acct => params[:mls_acct]).destroy_all
34
+ return if !verify_logged_in
35
+ SavedProperty.where(:user_id => logged_in_user.id, :mls => params[:mls]).destroy_all
36
36
  render :json => Caboose::StdClass.new('success' => true)
37
37
  end
38
-
38
+
39
39
  # POST /saved-properties
40
40
  def add
41
- return if !verify_logged_in
42
-
41
+ return if !verify_logged_in
42
+
43
43
  resp = Caboose::StdClass.new
44
-
45
- if SavedProperty.exists?(:user_id => logged_in_user.id, :mls_acct => params[:mls_acct])
44
+
45
+ if SavedProperty.exists?(:user_id => logged_in_user.id, :mls => params[:mls])
46
46
  resp.success = true
47
- else
47
+ else
48
48
  p = SavedProperty.new(
49
49
  :user_id => logged_in_user.id,
50
- :mls_acct => params[:mls_acct]
50
+ :mls => params[:mls]
51
51
  )
52
52
  if p.save
53
- resp.success = true
53
+ resp.success = true
54
54
  else
55
- resp.error = "There was an error saving your property."
55
+ resp.error = "There was an error saving your property."
56
56
  end
57
57
  end
58
58
  render :json => resp
59
59
  end
60
-
61
- # GET /saved-properties/:mls_acct/toggle
60
+
61
+ # GET /saved-properties/:mls/toggle
62
62
  def toggle_save
63
63
  return if !verify_logged_in
64
-
64
+
65
65
  resp = Caboose::StdClass.new
66
- if SavedProperty.where(:user_id => logged_in_user.id, :mls_acct => params[:mls_acct]).exists?
67
- SavedProperty.where(:user_id => logged_in_user.id, :mls_acct => params[:mls_acct]).destroy_all
66
+ if SavedProperty.where(:user_id => logged_in_user.id, :mls => params[:mls]).exists?
67
+ SavedProperty.where(:user_id => logged_in_user.id, :mls => params[:mls]).destroy_all
68
68
  resp.saved = false
69
69
  else
70
70
  p = SavedProperty.new
71
71
  p.user_id = logged_in_user.id
72
- p.mls_acct = params[:mls_acct]
72
+ p.mls = params[:mls]
73
73
  p.save
74
74
  resp.saved = true
75
75
  end
76
-
76
+
77
77
  render :json => resp
78
78
  end
79
-
80
- # GET /saved-properties/:mls_acct/status
79
+
80
+ # GET /saved-properties/:mls/status
81
81
  def status
82
82
  return if !verify_logged_in
83
-
83
+
84
84
  resp = Caboose::StdClass.new
85
- resp.saved = SavedProperty.where(:user_id => logged_in_user.id, :mls_acct => params[:mls_acct]).exists?
85
+ resp.saved = SavedProperty.where(:user_id => logged_in_user.id, :mls => params[:mls]).exists?
86
86
  render :json => resp
87
87
  end
88
88
 
@@ -1,24 +1,22 @@
1
-
2
1
  class CabooseRets::Agent < ActiveRecord::Base
3
2
  self.table_name = "rets_agents"
4
3
 
5
- has_one :meta, :class_name => 'AgentMeta', :primary_key => 'la_code', :foreign_key => 'la_code'
6
- has_many :commercial_properties
7
- has_many :residential_properties
8
- attr_accessible :id, :la_code
4
+ has_one :meta, :class_name => 'AgentMeta', :primary_key => 'matrix_unique_id', :foreign_key => 'matrix_unique_id'
5
+ has_many :properties
6
+ attr_accessible :id, :agent_number, :matrix_unique_id
9
7
  after_initialize :fix_name
10
8
 
11
9
  def image
12
10
  return nil if self.meta.nil?
13
11
  return self.meta.image
14
12
  end
15
-
16
- def assistants
17
- CabooseRets::Agent.where(:assistant_to => self.la_code).reorder(:last_name, :first_name).all
18
- end
13
+
14
+ # def assistants
15
+ # CabooseRets::Agent.where(:assistant_to => self.mls_id).reorder(:last_name, :first_name).all
16
+ # end
19
17
 
20
18
  def office
21
- CabooseRets::Office.where(:lo_code => self.lo_code).first
19
+ CabooseRets::Office.where(:lo_mls_id => self.mls_id).first
22
20
  end
23
21
 
24
22
  def fix_name
@@ -32,58 +30,47 @@ class CabooseRets::Agent < ActiveRecord::Base
32
30
  end
33
31
 
34
32
  def refresh_from_mls
35
- CabooseRets::RetsImporter.import("(MLS_ACCT=#{self.mls_acct})", 'Property', 'RES')
33
+ CabooseRets::RetsImporter.import('Listing',"(Matrix_Unique_ID=#{self.matrix_unique_id})")
36
34
  CabooseRets::RetsImporter.download_property_images(self)
37
35
  end
38
36
 
39
- def self.refresh_from_mls(la_code)
40
- CabooseRets::RetsImporter.import("(LA_LA_CODE=#{la_code})", 'Agent', 'AGT')
41
- CabooseRets::RetsImporter.import_property(mls_acct)
37
+ def self.refresh_from_mls(agent_number)
38
+ CabooseRets::RetsImporter.import('Agent', "(Agent_Number=#{self.agent_number})")
39
+ CabooseRets::RetsImporter.import_property(matrix_unique_id)
42
40
  end
43
41
 
44
42
  def parse(data)
45
- self.beeper_phone = data['LA_BEEPER_PHONE']
46
- self.last_name = data['LA_LAST_NAME']
47
- self.member_email = data['LA_MEMBER_EMAIL']
48
- self.phone_home_fax = data['LA_PHONE_HOME_FAX']
49
- self.car_phone = data['LA_CAR_PHONE']
50
- self.la_code = data['LA_LA_CODE']
51
- self.member_page = data['LA_MEMBER_PAGE']
52
- self.phone_pager = data['LA_PHONE_PAGER']
53
- self.date_created = data['LA_DATE_CREATED']
54
- self.lo_code = data['LA_LO_CODE']
55
- self.member_status = data['LA_MEMBER_STATUS']
56
- self.phone_second_home = data['LA_PHONE_SECOND_HOME']
57
- self.date_modified = data['LA_DATE_MODIFIED']
58
- self.mail_addr1 = data['LA_MAIL_ADDR1']
59
- self.nrds_id = data['LA_NRDS_ID']
60
- self.phone_toll_free = data['LA_PHONE_TOLL_FREE']
61
- self.defaultemail = data['LA_DEFAULTEMAIL']
62
- self.mail_addr2 = data['LA_MAIL_ADDR2']
63
- self.office_phone = data['LA_OFFICE_PHONE']
64
- self.phone_voice_mail = data['LA_PHONE_VOICE_MAIL']
65
- self.fax_phone = data['LA_FAX_PHONE']
66
- self.mail_city = data['LA_MAIL_CITY']
67
- self.other_phone = data['LA_OTHER_PHONE']
68
- self.phone_voice_pager = data['LA_PHONE_VOICE_PAGER']
69
- self.first_name = data['LA_FIRST_NAME']
70
- self.mail_state = data['LA_MAIL_STATE']
71
- self.phone_change_date = data['LA_PHONE_CHANGE_DATE']
72
- self.photo_count = data['PHOTO_COUNT']
73
- self.home_phone = data['LA_HOME_PHONE']
74
- self.mail_zip = data['LA_MAIL_ZIP']
75
- self.phone_direct_office = data['LA_PHONE_DIRECT_OFFICE']
76
- self.photo_date_modified = data['PHOTO_DATE_MODIFIED']
77
- #self.photo_url = ""
78
- end
79
-
80
- def verify_meta_exists
81
- self.meta = CabooseRets::AgentMeta.create(:la_code => self.la_code) if self.meta.nil?
82
- end
83
-
84
- def image_url(style)
43
+ self.agent_number = data['AgentNumber']
44
+ self.cell_phone = data['CellPhone']
45
+ self.direct_work_phone = data['DirectWorkPhone']
46
+ self.email = data['Email']
47
+ self.fax_phone = data['FaxPhone']
48
+ self.first_name = data['FirstName']
49
+ self.full_name = data['FullName']
50
+ self.generational_name = data['GenerationalName']
51
+ self.last_name = data['LastName']
52
+ self.matrix_unique_id = data['Matrix_Unique_ID']
53
+ self.matrix_modified_dt = data['MatrixModifiedDT']
54
+ self.middle_name = data['MiddleName']
55
+ self.mls = data['MLS']
56
+ self.mls_id = data['MLSID']
57
+ self.office_mui = data['Office_MUI']
58
+ self.office_mls_id = data['OfficeMLSID']
59
+ self.office_phone = data['OfficePhone']
60
+ self.other_phone = data['OtherPhone']
61
+ self.phone_toll_free = data['PhoneTollFree']
62
+ self.phone_voice_mail = data['PhoneVoiceMail']
63
+ self.photo_count = data['PhotoCount']
64
+ self.photo_modification_timestamp = data['PhotoModificationTimestamp']
65
+ end
66
+
67
+ def verify_meta_exists
68
+ self.meta = CabooseRets::AgentMeta.create(:la_code => self.la_code) if self.meta.nil?
69
+ end
70
+
71
+ def image_url(style)
85
72
  if CabooseRets::use_hosted_images == true
86
- #return "#{CabooseRets::agents_base_url}/#{self.image_location}"
73
+ return "#{CabooseRets::agents_base_url}/#{self.image_location}"
87
74
  self.verify_meta_exists
88
75
  return self.meta.image_location
89
76
  end
@@ -1,21 +1,21 @@
1
1
 
2
2
  class CabooseRets::AgentMeta < ActiveRecord::Base
3
- self.table_name = "rets_agents_meta"
4
- belongs_to :agent, :foreign_key => 'la_code', :primary_key => 'la_code'
5
- has_attached_file :image,
6
- :path => 'rets/agents/:la_code_:style.:extension',
3
+ self.table_name = "rets_agents_meta"
4
+ belongs_to :agent, :foreign_key => 'matrix_unique_id', :primary_key => 'la_code'
5
+ has_attached_file :image,
6
+ :path => 'rets/agents/:la_code_:style.:extension',
7
7
  :styles => {
8
8
  :thumb => '100x150>',
9
9
  :large => '200x300>'
10
10
  }
11
11
  do_not_validate_attachment_file_type :image
12
- attr_accessible :id,
12
+ attr_accessible :id,
13
13
  :la_code ,
14
- :hide ,
14
+ :hide ,
15
15
  :bio ,
16
16
  :contact_info ,
17
17
  :assistant_to ,
18
18
  :designation ,
19
19
  :image_location
20
-
20
+
21
21
  end
@@ -2,133 +2,139 @@
2
2
  class CabooseRets::Media < ActiveRecord::Base
3
3
  self.table_name = "rets_media"
4
4
 
5
- has_attached_file :file, :path => 'rets/media/:mls_acct_:id.:extension'
5
+ has_attached_file :file, :path => 'rets/media/:mls_:id.:extension'
6
6
  do_not_validate_attachment_file_type :file
7
- has_attached_file :image,
8
- :path => 'rets/media/:mls_acct_:media_order_:style.:extension',
7
+ has_attached_file :image,
8
+ :path => 'rets/media/:mls_:media_order_:style.:extension',
9
9
  :styles => {
10
10
  :tiny => '160x120>',
11
11
  :thumb => '400x300>',
12
12
  :large => '640x480>'
13
13
  }
14
14
  do_not_validate_attachment_file_type :image
15
- attr_accessible :date_modified, :file_name, :media_id, :media_order, :media_remarks, :media_type, :mls_acct, :url
16
-
17
- def parse(data)
18
- self.date_modified = data['DATE_MODIFIED']
19
- self.file_name = data['FILE_NAME']
20
- self.media_id = data['MEDIA_ID']
21
- self.media_order = data['MEDIA_ORDER'].to_i
22
- self.media_remarks = data['MEDIA_REMARKS']
23
- self.media_type = data['MEDIA_TYPE']
24
- self.mls_acct = data['MLS_ACCT']
25
- self.url = data['URL']
15
+ attr_accessible :date_modified, :file_name, :media_id, :media_order, :media_remarks, :media_type, :mls, :url
16
+
17
+ def parse(data,content)
18
+ # self.date_modified = data['DATE_MODIFIED']
19
+ # self.file_name = data['FILE_NAME']
20
+ # self.media_id = data['MEDIA_ID']
21
+ # self.media_order = data['MEDIA_ORDER'].to_i
22
+ # self.media_remarks = data['MEDIA_REMARKS']
23
+ # self.mls = data['MLS']
24
+ self.media_type = data['content-type']
25
+ self.media_mui = data['content-id']
26
+ self.media = Caboose::Media.create(
27
+ :image => content,
28
+ # :image => content,
29
+ :image_content_type => data['content-type']
30
+ )
31
+ # self.media.save
26
32
  end
27
-
33
+
28
34
  before_post_process :lowercase_file_names
29
-
30
- def lowercase_file_names
31
- self.image.instance_write(:file_name, self.image_file_name.downcase) if self.image_file_name
32
- self.file.instance_write(:file_name, self.file_file_name.downcase) if self.file_file_name
35
+
36
+ def lowercase_file_names
37
+ self.image.instance_write(:file_name, self.image_file_name.downcase) if self.image_file_name
38
+ self.file.instance_write(:file_name, self.file_file_name.downcase) if self.file_file_name
33
39
  end
34
40
 
35
- #before_post_process :rename_avatar
36
- #def rename_image
37
- # extension = File.extname(image_file_name).downcase
38
- # self.image.instance_write :file_name, "#{self.mls_acct}_#{self.media_order}.#{extension}"
41
+ #before_post_process :rename_avatar
42
+ #def rename_image
43
+ # extension = File.extname(image_file_name).downcase
44
+ # self.image.instance_write :file_name, "#{self.mls}_#{self.media_order}.#{extension}"
39
45
  #end
40
-
46
+
41
47
  def self.reorder(media_ids, bucket_name)
42
-
48
+
43
49
  s3 = AWS::S3.new
44
50
  b = s3.buckets[bucket_name]
45
-
51
+
46
52
  # Rename the s3 assets to temp names
47
53
  media_ids.each do |id|
48
- m = CabooseRets::Media.find(id)
54
+ m = CabooseRets::Media.find(id)
49
55
  (m.image.styles.keys+[:original]).each { |style| b.objects[m.image.path(style)].rename_to "#{m.image.path(style)}.temp" } if m.media_type == 'Photo'
50
56
  b.objects[m.file.path].rename_to "#{m.file.path}.temp" if m.media_type == 'File'
51
57
  end
52
-
58
+
53
59
  # Rename the assets to their new names
54
60
  i = 1
55
61
  j = 1
56
62
  media_ids.each do |id|
57
63
  m = CabooseRets::Media.find(id)
58
- if m.media_type == 'Photo'
59
- orig_name = "#{m.image.path}.temp"
60
- m.media_order = i
61
- (m.image.styles.keys+[:original]).each { |style| b.objects[orig_name.gsub("original", style.to_s)].rename_to m.image.path(style) }
64
+ if m.media_type == 'Photo'
65
+ orig_name = "#{m.image.path}.temp"
66
+ m.media_order = i
67
+ (m.image.styles.keys+[:original]).each { |style| b.objects[orig_name.gsub("original", style.to_s)].rename_to m.image.path(style) }
62
68
  m.save
63
69
  i = i + 1
64
- elsif m.media_type == 'File'
70
+ elsif m.media_type == 'File'
65
71
  b.objects["#{m.file.path}.temp"].rename_to m.file.path
66
72
  m.media_order = j
67
73
  m.save
68
74
  j = j + 1
69
75
  end
70
76
  end
71
-
77
+
72
78
  return true
73
79
  end
74
-
80
+
75
81
  def self.reorder(media_ids, bucket_name)
76
-
82
+
77
83
  s3 = AWS::S3.new
78
84
  b = s3.buckets[bucket_name]
79
-
85
+
80
86
  # Rename the s3 assets to temp names
81
87
  media_ids.each do |id|
82
- m = CabooseRets::Media.find(id)
88
+ m = CabooseRets::Media.find(id)
83
89
  (m.image.styles.keys+[:original]).each { |style| b.objects[m.image.path(style)].rename_to "#{m.image.path(style)}.temp" } if m.media_type == 'Photo'
84
90
  b.objects[m.file.path].rename_to "#{m.file.path}.temp" if m.media_type == 'File'
85
91
  end
86
-
92
+
87
93
  # Rename the assets to their new names
88
94
  i = 1
89
95
  j = 1
90
96
  media_ids.each do |id|
91
97
  m = CabooseRets::Media.find(id)
92
- if m.media_type == 'Photo'
93
- orig_name = "#{m.image.path}.temp"
94
- m.media_order = i
95
- (m.image.styles.keys+[:original]).each { |style| b.objects[orig_name.gsub("original", style.to_s)].rename_to m.image.path(style) }
98
+ if m.media_type == 'Photo'
99
+ orig_name = "#{m.image.path}.temp"
100
+ m.media_order = i
101
+ (m.image.styles.keys+[:original]).each { |style| b.objects[orig_name.gsub("original", style.to_s)].rename_to m.image.path(style) }
96
102
  m.save
97
103
  i = i + 1
98
- elsif m.media_type == 'File'
104
+ elsif m.media_type == 'File'
99
105
  b.objects["#{m.file.path}.temp"].rename_to m.file.path
100
106
  m.media_order = j
101
107
  m.save
102
108
  j = j + 1
103
109
  end
104
110
  end
105
-
111
+
106
112
  return true
107
113
  end
108
-
114
+
109
115
  def self.rename_media
110
116
  s3 = AWS::S3.new
111
117
  b = s3.buckets["advantagerealtygroup"]
112
-
113
- CabooseRets::Media.where(:media_type => 'Photo').reorder("mls_acct, media_order").all.each do |m|
114
- puts "Renaming #{m.mls_acct}_#{m.id}..."
118
+
119
+ CabooseRets::Media.where(:media_type => 'Photo').reorder("mls, media_order").all.each do |m|
120
+ puts "Renaming #{m.mls}_#{m.id}..."
115
121
  if m.image_file_name && m.image
116
122
  ext = File.extname(m.image_file_name)
117
- (m.image.styles.keys+[:original]).each do |style|
123
+ (m.image.styles.keys+[:original]).each do |style|
118
124
  b.objects[m.image.path(style)].copy_to "rets/media_new/#{m.id}_#{style}.#{ext}" if b.objects[m.image.path(style)].exists?
119
125
  end
120
126
  end
121
127
  end
122
-
128
+
123
129
  return true
124
130
  end
125
-
126
- def image_url(style)
127
- if CabooseRets::use_hosted_images == true
128
- return "#{CabooseRets::media_base_url}/#{self.file_name}"
131
+
132
+ def image_url(style)
133
+ if CabooseRets::use_hosted_images == true
134
+ return "#{CabooseRets::media_base_url}/#{self.file_name}"
129
135
  end
130
136
  return "" if self.image.nil?
131
- return self.image.url(style)
137
+ return self.image.url(style)
132
138
  end
133
-
139
+
134
140
  end