effective_resources 2.20.5 → 2.20.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ad54f3d0e430c72b0e9607d11aa393d22e05fa004877a231bb3ea56da870cde0
4
- data.tar.gz: 4e99daf7cbd5d2d2b1fea577591fd115822b16f355d631a4990f858b811294c4
3
+ metadata.gz: 69e89a1c84cc396ff530fdc93cd65fbefad6ea5ae8ffb2058f67d75fd10b6cc4
4
+ data.tar.gz: 35c4dcec9220fa6b88eea8fa9877c1e9d793b5ccec1763a58c0fad399b5cf0bc
5
5
  SHA512:
6
- metadata.gz: f2c6742b9cd6a9be676718add27c8394722ba121b5faad5f6f1f14024e902e7a98c2f8888aa20581e89250c5c929212c4953ac358de8ad4a03c18421d4f3abdf
7
- data.tar.gz: 0250b78198490e85fce003d3a8791fc110701e80ec4d1c6152b50660c904c3b1c015e4cec4f573ae5b12faa795d8a23b8c724b6fee34ddf9844712b2f3af9219
6
+ metadata.gz: b3b93da68c46b5cbdf3c558b77d53e9c69012d4c41db6632821be08affac220c1c5601087cb7b52ebb92011e63c5ece1fd57749812a75b6efdb798c28c82d23c
7
+ data.tar.gz: 53c3c00d8f29414894aa61865fc64fa6d895f3540b44ce101c229d8a865caceed72b508097dbd57dced9fbf3fa348d2b42764aa10ac8b84d935a34204b456330
@@ -37,17 +37,5 @@ module Admin
37
37
  { id: organization.to_param, text: organization.try(:to_select2) || to_select2(organization) }
38
38
  end
39
39
  end
40
-
41
- private
42
-
43
- def to_select2(resource)
44
- if resource.try(:email).present?
45
- "<span>#{resource}</span> <small>#{resource.email}</small>"
46
- else
47
- "<span>#{resource}</span>"
48
- end
49
- end
50
-
51
40
  end
52
-
53
41
  end
@@ -2,11 +2,11 @@ module Effective
2
2
  module Select2AjaxController
3
3
  extend ActiveSupport::Concern
4
4
 
5
- def respond_with_select2_ajax(collection, skip_search: false, &block)
5
+ def respond_with_select2_ajax(collection, skip_search: false, skip_authorize: false, &block)
6
6
  raise('collection should be an ActiveRecord::Relation') unless collection.kind_of?(ActiveRecord::Relation)
7
7
 
8
8
  # Authorize
9
- EffectiveResources.authorize!(self, :index, collection.klass)
9
+ EffectiveResources.authorize!(self, :index, collection.klass) unless skip_authorize
10
10
 
11
11
  # Scope
12
12
  if collection.respond_to?(:select2_ajax)
@@ -49,5 +49,15 @@ module Effective
49
49
  end
50
50
  end
51
51
 
52
+ private
53
+
54
+ def to_select2(resource)
55
+ if resource.try(:email).present?
56
+ "<span>#{resource}</span> <small>#{resource.email}</small>"
57
+ else
58
+ "<span>#{resource}</span>"
59
+ end
60
+ end
61
+
52
62
  end
53
63
  end
@@ -26,6 +26,13 @@ module ActsAsPurchasableWizard
26
26
  self.errors.add(:base, "must have an email") unless owner.email.present?
27
27
  end
28
28
 
29
+ after_defer do |_|
30
+ raise('expected submit_order to be deferred') unless submit_order&.deferred?
31
+ before_submit_deferred!
32
+ submit_deferred!
33
+ after_submit_deferred!
34
+ end
35
+
29
36
  after_purchase do |_|
30
37
  raise('expected submit_order to be purchased') unless submit_order&.purchased?
31
38
  before_submit_purchased!
@@ -180,9 +187,34 @@ module ActsAsPurchasableWizard
180
187
  end
181
188
  end
182
189
 
190
+ # The historic way of handling a deferred order checkout is to return to the :checkout step and not call wizard submit!
191
+ # With effective_events date delayed payments, we do call wizard submit! and proceed to the :submitted step.
192
+
193
+ # False by default - do not call submit
194
+ def submit_wizard_on_deferred_order?
195
+ false
196
+ end
197
+
198
+ # Called automatically via after_defer hook above
199
+ def submit_deferred!
200
+ return unless submit_wizard_on_deferred_order?
201
+ return false if was_submitted?
202
+
203
+ wizard_steps[:checkout] = Time.zone.now
204
+ submit!
205
+ end
206
+
207
+ # A hook to extend
208
+ def before_submit_deferred!
209
+ end
210
+
211
+ def after_submit_deferred!
212
+ end
213
+
183
214
  # Called automatically via after_purchase hook above
215
+ # If previously submitted, possibly with deferred order, just save so any before_save or validate can run.
184
216
  def submit_purchased!
185
- return false if was_submitted?
217
+ return save! if was_submitted?
186
218
 
187
219
  wizard_steps[:checkout] = Time.zone.now
188
220
  submit!
@@ -198,7 +230,12 @@ module ActsAsPurchasableWizard
198
230
  # Draft -> Submitted requirements
199
231
  def submit!
200
232
  raise('already submitted') if was_submitted?
201
- raise('expected a purchased order') unless submit_order&.purchased?
233
+
234
+ if submit_wizard_on_deferred_order?
235
+ raise('expected a purchased or deferred order') unless (submit_order&.purchased? || submit_order&.deferred?)
236
+ else
237
+ raise('expected a purchased order') unless submit_order&.purchased?
238
+ end
202
239
 
203
240
  wizard_steps[:checkout] ||= Time.zone.now
204
241
  wizard_steps[:submitted] = Time.zone.now
@@ -113,7 +113,7 @@ module ActsAsWizard
113
113
 
114
114
  # For use in the summary partials. Does not include summary.
115
115
  def render_steps
116
- blacklist = [:start, :billing, :checkout, :submit, :submitted, :summary]
116
+ blacklist = [:start, :billing, :checkout, :submit, :submitted, :complete, :completed, :summary]
117
117
  ((required_steps | completed_steps) - blacklist).select { |step| has_completed_step?(step) }
118
118
  end
119
119
 
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '2.20.5'.freeze
2
+ VERSION = '2.20.7'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.20.5
4
+ version: 2.20.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-06 00:00:00.000000000 Z
11
+ date: 2024-05-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails