wco_models 3.1.0.91 → 3.1.0.93

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: c267b89943c2cb18139bdd044522d142fca56a81cadd7930b21eec7f6349d813
4
- data.tar.gz: 42c005b73cdb2d15d3157b2d485a57166519a594383caf5a959400c18ae693cb
3
+ metadata.gz: 2ce69cb552cc8f072d6cab730355f2680f5080773b5ba38f15cb45827c1d69ce
4
+ data.tar.gz: df88159670a5a92bade97d647c652bbd11b5d8e7a7d630b8ff4837fd878fc8d5
5
5
  SHA512:
6
- metadata.gz: 77f0973a4e5ecddd767b045a6c77a5ba6b1dc98eacef09931fbc71413143f5966a3104fa763526f61b0f4a96029b082b025918423146e8703c434469455e74a5
7
- data.tar.gz: 564da09016bf7490ad15c0c394d15ffb1b453f610536dc4bd9f0cafb8fa8e855f6d7a66c999c5e7f75c4347157ec3a1cbe5e99d77a6dac1809555fe89757e6e0
6
+ metadata.gz: 0cccea65fbae4e19a976408913ae73f9fe602019ae1ed4d1314a61b6ea3bb2a1c70333b9eb84ff39152f0a8d361c730d9922c77bdb7b60a07670f9be9ce6c282
7
+ data.tar.gz: 89592dfbb1197a866983d79573cae2d61109cf7d635a06e4b9609edb0e615108d3f8f1f2181934fdadb8ff90f11a7bc33160e35306127e111798361160c22dc0
@@ -8,7 +8,7 @@ class Wco::LeadsController < Wco::ApplicationController
8
8
  params[:lead][:leadset] = nil if params[:lead][:leadset].blank?
9
9
 
10
10
  @lead = Wco::Lead.new params[:lead].permit!
11
- authorize! :crete, @lead
11
+ authorize! :create, @lead
12
12
  if @lead.save
13
13
  flash_notice 'ok'
14
14
  else
@@ -17,6 +17,11 @@ class Wco::LeadsController < Wco::ApplicationController
17
17
  redirect_to action: :index
18
18
  end
19
19
 
20
+ def edit
21
+ authorize! :edit, Wco::Lead
22
+ @lead = Wco::Lead.find params[:id]
23
+ end
24
+
20
25
  def index
21
26
  authorize! :index, Wco::Lead
22
27
  @leads = Wco::Lead.all
@@ -64,7 +69,17 @@ class Wco::LeadsController < Wco::ApplicationController
64
69
  end
65
70
 
66
71
  def update
67
- params[:tags].delete ''
72
+ params[:lead][:tags].delete ''
73
+ params[:lead][:leadset] = nil if params[:lead][:leadset].blank?
74
+
75
+ @lead = Wco::Lead.new params[:lead].permit!
76
+ authorize! :update, @lead
77
+ if @lead.save
78
+ flash_notice 'ok'
79
+ else
80
+ flash_alert @lead
81
+ end
82
+ redirect_to action: :show, id: @lead.id
68
83
  end
69
84
 
70
85
  ##
@@ -28,6 +28,24 @@ class Wco::Lead
28
28
  self[:email] = a
29
29
  end
30
30
  end
31
+ def self.normalize_email a
32
+ a = a.downcase
33
+ if a.index('+')
34
+ a.slice!( a[a.index('+')...a.index('@')] )
35
+ end
36
+ return a
37
+ end
38
+ def self.find_or_create_by_email email
39
+ email = self.normalize_email email
40
+ out = where( email: email ).first
41
+ if !out
42
+ domain = email.split('@')[1]
43
+ leadset = Wco::Leadset.where( company_url: domain ).first
44
+ leadset ||= Wco::Leadset.create( company_url: domain, email: email )
45
+ out = create!( email: email, leadset: leadset )
46
+ end
47
+ return out
48
+ end
31
49
 
32
50
 
33
51
  has_one :photo, class_name: 'Wco::Photo'
@@ -86,17 +86,13 @@ class WcoEmail::MessageStub
86
86
 
87
87
  ## Leadset, Lead
88
88
  from = the_mail.from ? the_mail.from[0] : "nobody@unknown-doma.in"
89
- domain = from.split('@')[1]
90
- leadset = Wco::Leadset.where( company_url: domain.downcase ).first
91
- leadset ||= Wco::Leadset.create( company_url: domain.downcase, email: from.downcase )
92
- lead = Wco::Lead.find_or_create_by( email: from, leadset: leadset )
93
-
89
+ lead = Wco::Lead.find_or_create_by_email( from )
94
90
 
95
91
  message = WcoEmail::Message.unscoped.where( message_id: message_id ).first
96
92
  if message
97
93
  message.message_id = "#{Time.now.strftime('%Y%m%d')}-trash-#{message.message_id}"
98
94
  message.object_key = "#{Time.now.strftime('%Y%m%d')}-trash-#{message.object_key}"
99
- message.save!( validate: false )
95
+ message.save( validate: false )
100
96
  message.delete
101
97
  end
102
98
 
@@ -119,7 +115,7 @@ class WcoEmail::MessageStub
119
115
  tos: the_mail.to,
120
116
 
121
117
  cc: the_mail.cc ? the_mail.cc[0] : nil,
122
- ccs: the_mail.cc,
118
+ ccs: the_mail.cc,
123
119
  })
124
120
  puts! @message, '@message'
125
121
 
@@ -156,9 +152,7 @@ class WcoEmail::MessageStub
156
152
  conv.save
157
153
 
158
154
  the_mail.cc&.each do |cc|
159
- domain = cc.split('@')[1] rescue 'unknown.domain'
160
- leadset = Wco::Leadset.find_or_create_by( company_url: domain )
161
- Wco::Lead.find_or_create_by( email: cc, leadset: leadset )
155
+ Wco::Lead.find_or_create_by_email( cc )
162
156
  end
163
157
 
164
158
  conv.update_attributes({
@@ -19,7 +19,7 @@
19
19
 
20
20
  .field
21
21
  = f.label "Leadset (company)"
22
- = f.select :leadset, options_for_select(@leadsets_list, selected: lead.leadset_id), { class: :select2 }
22
+ = f.select :leadset, options_for_select(@leadsets_list, selected: lead.leadset_id), {}, { class: :select2 }
23
23
 
24
24
  -# .field
25
25
  -# %label Rating
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wco_models
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0.91
4
+ version: 3.1.0.93
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Pudeyev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-18 00:00:00.000000000 Z
11
+ date: 2024-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-s3