effective_memberships 0.6.7 → 0.6.8

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: 994cc88bc7e75f8660b8af1a9930175493759241323675edc72da9ab53640ab5
4
- data.tar.gz: e29658115f728da1b3b33f5776fc24e461f6abe5ac9cb8d1362834153598a96e
3
+ metadata.gz: b1fcdc5cbf08b23f6aab670babdf698a2aff6b6d9d2067055dc970bb2eb4b8e4
4
+ data.tar.gz: 0a423a28dc16bd84135e741bcb9f290c7997c034ba0095319bab4cf36913d605
5
5
  SHA512:
6
- metadata.gz: 9b2a8938998de7838aef913e2e4f2262a0cde28fc04de5fb0d74816a1ff9ddc23db3000985aceca51b4578339553c9be2c39b0ca0df11c6bbecd7a620101e17f
7
- data.tar.gz: 95f6268d44cc10e4dabe9c4208f5d42ae669533f31876643aa2b31749414dc5cbf68e8368c062c5997cc61261579e6bec5decfb446020c5497fe74cc02a29640
6
+ metadata.gz: 296aa3d82c05315ac9247f28052e474440562fb85450fc4735f4875b26d67ccdd612df58727207251f2540f103efa41c519128e1366be02f446400816000f3de
7
+ data.tar.gz: 71feca7c490aea3f2ba49cae7c3318b79d5da533f1b7a6adedcb0ae38a1b9ea2c6b61daa163a9abfc92e2d3e8aff110dbb705c4e373bcfab488aae1d9533a82c
@@ -194,8 +194,14 @@ module EffectiveMembershipsApplicant
194
194
  # Set Apply to Join or Reclassification
195
195
  before_validation(if: -> { (new_record? || current_step == :select) && owner.present? }) do
196
196
  self.applicant_type ||= can_apply_applicant_types_collection().first
197
- self.from_category = owner.membership&.category
198
- self.from_status = owner.membership&.status if reinstatement?
197
+
198
+ if owner.membership.present?
199
+ self.from_category = owner.membership.categories.first
200
+ end
201
+
202
+ if owner.membership.present? && reinstatement?
203
+ self.from_status = owner.membership.statuses.find { |status| status.reinstatable? }
204
+ end
199
205
  end
200
206
 
201
207
  before_validation(if: -> { current_step == :experience }) do
@@ -779,7 +785,7 @@ module EffectiveMembershipsApplicant
779
785
  elsif reclassification?
780
786
  EffectiveMemberships.Registrar.reclassify!(owner, to: category)
781
787
  elsif reinstatement?
782
- EffectiveMemberships.Registrar.reinstate!(owner)
788
+ EffectiveMemberships.Registrar.reinstate!(owner, from: from_status)
783
789
  else
784
790
  raise('unsupported approval applicant_type')
785
791
  end
@@ -186,17 +186,18 @@ module EffectiveMembershipsRegistrar
186
186
  save!(owner, date: date)
187
187
  end
188
188
 
189
- def reinstate!(owner, date: nil, skip_fees: false)
189
+ def reinstate!(owner, from:, date: nil, skip_fees: false)
190
190
  raise('expecting a memberships owner') unless owner.class.respond_to?(:effective_memberships_owner?)
191
191
  raise('owner must have an existing membership. use register! instead') if owner.membership.blank?
192
192
 
193
- from = owner.membership.status
194
- raise('expecting a from memberships status') if from.present? && !from.class.respond_to?(:effective_memberships_status?)
193
+ raise('expecting a from') if from.blank?
194
+ raise('expected a from status or category') unless from.class.respond_to?(:effective_memberships_status?) || from.class.respond_to?(:effective_memberships_category?)
195
195
 
196
196
  date ||= Time.zone.now
197
197
 
198
198
  membership = owner.membership
199
- membership.membership_status(status: from).mark_for_destruction if from.present?
199
+ membership.membership_status(status: from).mark_for_destruction if from.class.respond_to?(:effective_memberships_status?)
200
+ membership.membership_category(category: from).mark_for_destruction if from.class.respond_to?(:effective_memberships_category?)
200
201
 
201
202
  unless skip_fees
202
203
  fee = owner.build_prorated_fee(date: date)
@@ -22,7 +22,11 @@
22
22
  - else
23
23
  None
24
24
 
25
- - if applicant.from_category.present?
25
+ - if applicant.from_status.present?
26
+ %tr
27
+ %th From Status
28
+ %td= applicant.from_status
29
+ - elsif applicant.from_category.present?
26
30
  %tr
27
31
  %th From Category
28
32
  %td= applicant.from_category
@@ -1,3 +1,3 @@
1
1
  - membership = f.object.owner.membership
2
2
 
3
- %p Apply for reinstatement from #{membership.status || membership.category}.
3
+ %p Apply for reinstatement from #{badges(f.object.from_status || f.object.from_category)}.
@@ -1,3 +1,3 @@
1
1
  module EffectiveMemberships
2
- VERSION = '0.6.7'
2
+ VERSION = '0.6.8'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_memberships
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.7
4
+ version: 0.6.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect