effective_memberships 0.9.6 → 0.9.7
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 +4 -4
- data/app/controllers/admin/registrar_actions_controller.rb +4 -0
- data/app/models/concerns/effective_memberships_applicant.rb +11 -7
- data/app/models/concerns/effective_memberships_owner.rb +23 -7
- data/app/models/concerns/effective_memberships_registrar.rb +68 -16
- data/app/models/effective/membership_history.rb +6 -1
- data/app/models/effective/registrar_action.rb +9 -1
- data/app/views/admin/applicants/_form_approve.html.haml +10 -0
- data/app/views/admin/memberships/_form.html.haml +4 -0
- data/app/views/admin/registrar_actions/_form.html.haml +3 -0
- data/app/views/admin/registrar_actions/_form_reinstatement.html.haml +44 -0
- data/app/views/admin/registrar_actions/_form_remove.html.haml +5 -0
- data/app/views/effective/applicants/select/_apply_for_reinstatement.html.haml +1 -3
- data/app/views/effective/applicants/select.html.haml +7 -11
- data/app/views/effective/memberships/_dashboard.html.haml +1 -0
- data/lib/effective_memberships/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c9916218e0d606b59b230debdc5c7a70e1d3754333f786298a4b9f3cf21222ce
|
4
|
+
data.tar.gz: 7ee9f5e5f4f64ea6764c206b053a81dc0d253a596de57d2e20324e3c64b86aa4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e6f8b7f49df86cd4461dba072f3106e3a095076d44f298ced308857e7ee86b3f91455d6823716470d6b4dccdb75ed42e8e05cc2be9bc0208e314aaef011e759
|
7
|
+
data.tar.gz: 936b9c462cede66151ae4a9d186a3b3d6aee60989f284f6157373fb043f73498e486678e09d39af0f75f648a5ace5826f66f0ec553427fbeb77375a1b5822fa9
|
@@ -14,6 +14,10 @@ module Admin
|
|
14
14
|
success: -> { "#{resource.owner} has been reclassified to #{resource.owner.membership.category}" },
|
15
15
|
redirect: -> { admin_owners_path(resource) }
|
16
16
|
|
17
|
+
submit :reinstate, 'Reinstate',
|
18
|
+
success: -> { "#{resource.owner} has been reinstated to #{resource.owner.membership.category}" },
|
19
|
+
redirect: -> { admin_owners_path(resource) }
|
20
|
+
|
17
21
|
submit :status_assign, 'Assign Status',
|
18
22
|
success: -> { "#{resource.owner} has been assigned #{resource.owner.membership.statuses_sentence}" },
|
19
23
|
redirect: -> { admin_owners_path(resource) }
|
@@ -21,6 +21,10 @@ module EffectiveMembershipsApplicant
|
|
21
21
|
[:start, :select, :summary, :billing, :checkout, :submitted]
|
22
22
|
end
|
23
23
|
|
24
|
+
# Apply to Join - Anyone can do this
|
25
|
+
# Apply to Reclassify - Must have an existing membership and category
|
26
|
+
# Apply for Reinstatement - Must have a removed membership. Membership history.
|
27
|
+
|
24
28
|
def categories
|
25
29
|
['Apply to Join', 'Apply to Reclassify', 'Apply for Reinstatement']
|
26
30
|
end
|
@@ -101,7 +105,6 @@ module EffectiveMembershipsApplicant
|
|
101
105
|
# Required for Apply to Reclassify
|
102
106
|
belongs_to :from_category, polymorphic: true, optional: true
|
103
107
|
|
104
|
-
# Required for Apply for Reinstatement
|
105
108
|
belongs_to :from_status, polymorphic: true, optional: true
|
106
109
|
|
107
110
|
has_many :applicant_reviews, -> { order(:id) }, as: :applicant, inverse_of: :applicant, dependent: :destroy
|
@@ -202,8 +205,8 @@ module EffectiveMembershipsApplicant
|
|
202
205
|
self.from_category = owner.membership.categories.first
|
203
206
|
end
|
204
207
|
|
205
|
-
if
|
206
|
-
self.
|
208
|
+
if reinstatement?
|
209
|
+
self.from_category = owner.reinstatement_membership_category
|
207
210
|
end
|
208
211
|
end
|
209
212
|
|
@@ -215,7 +218,6 @@ module EffectiveMembershipsApplicant
|
|
215
218
|
validates :user, presence: true
|
216
219
|
|
217
220
|
validates :from_category, presence: true, if: -> { reclassification? }
|
218
|
-
validates :from_status, presence: true, if: -> { reinstatement? }
|
219
221
|
|
220
222
|
validate(if: -> { reclassification? && category_id.present? }) do
|
221
223
|
errors.add(:category_id, "can't reclassify to existing category") if category_id == from_category_id
|
@@ -603,10 +605,12 @@ module EffectiveMembershipsApplicant
|
|
603
605
|
|
604
606
|
# Used by the select step
|
605
607
|
def can_apply_applicant_types_collection
|
606
|
-
if owner.blank?
|
608
|
+
if owner.blank?
|
607
609
|
['Apply to Join']
|
608
|
-
elsif owner.
|
610
|
+
elsif owner.membership_removed?
|
609
611
|
['Apply for Reinstatement', 'Apply to Join']
|
612
|
+
elsif owner.membership.blank? || owner.membership.categories.blank?
|
613
|
+
['Apply to Join']
|
610
614
|
else
|
611
615
|
['Apply to Reclassify']
|
612
616
|
end
|
@@ -861,7 +865,7 @@ module EffectiveMembershipsApplicant
|
|
861
865
|
elsif reclassification?
|
862
866
|
EffectiveMemberships.Registrar.reclassify!(owner, to: to_category, status: to_status)
|
863
867
|
elsif reinstatement?
|
864
|
-
EffectiveMemberships.Registrar.reinstate!(owner,
|
868
|
+
EffectiveMemberships.Registrar.reinstate!(owner, to: to_category)
|
865
869
|
else
|
866
870
|
raise('unsupported approval applicant_type')
|
867
871
|
end
|
@@ -130,8 +130,25 @@ module EffectiveMembershipsOwner
|
|
130
130
|
end
|
131
131
|
|
132
132
|
def membership_removed_on
|
133
|
-
|
134
|
-
|
133
|
+
removed_membership_history.start_on if membership_removed?
|
134
|
+
end
|
135
|
+
|
136
|
+
# The membership history that is removed. Has exit statuses that may affect reinstatement fees.
|
137
|
+
def removed_membership_history
|
138
|
+
membership_histories.reverse.find { |history| history.removed? } if membership_removed?
|
139
|
+
end
|
140
|
+
|
141
|
+
# The membership history we would reinstate to. Should be the one just before removed.
|
142
|
+
def reinstatement_membership_history
|
143
|
+
membership_histories.reverse.find { |history| !history.removed? } if membership_removed?
|
144
|
+
end
|
145
|
+
|
146
|
+
def reinstatement_membership_category
|
147
|
+
reinstatement_membership_history.membership_categories.first if membership_removed?
|
148
|
+
end
|
149
|
+
|
150
|
+
def reinstatement_membership_statuses
|
151
|
+
reinstatement_membership_history.membership_statuses if membership_removed?
|
135
152
|
end
|
136
153
|
|
137
154
|
def registrar_action_categories(action)
|
@@ -139,7 +156,7 @@ module EffectiveMembershipsOwner
|
|
139
156
|
end
|
140
157
|
|
141
158
|
def registrar_action_statuses(action)
|
142
|
-
EffectiveMemberships.Status.sorted.all
|
159
|
+
EffectiveMemberships.Status.sorted.all
|
143
160
|
end
|
144
161
|
|
145
162
|
def after_build_fee(fee)
|
@@ -311,9 +328,7 @@ module EffectiveMembershipsOwner
|
|
311
328
|
EffectiveMemberships.Registrar.in_good_standing!(self)
|
312
329
|
end
|
313
330
|
|
314
|
-
if membership_histories.blank?
|
315
|
-
build_membership_history()
|
316
|
-
end
|
331
|
+
build_membership_history() if membership_histories.blank?
|
317
332
|
|
318
333
|
save!
|
319
334
|
end
|
@@ -361,9 +376,10 @@ module EffectiveMembershipsOwner
|
|
361
376
|
errors = []
|
362
377
|
history = membership_histories.first
|
363
378
|
last_history = membership_histories.last
|
379
|
+
was_removed = membership_histories.any? { |history| history.removed? }
|
364
380
|
|
365
381
|
# Check membership joined on date matches first history start date
|
366
|
-
if membership.joined_on != history.start_on
|
382
|
+
if membership.joined_on != history.start_on && !was_removed
|
367
383
|
errors << "The joined date #{membership.joined_on.strftime('%F')} does not match the first history start date of #{history.start_on.strftime('%F')}. Please change the first history start date to #{membership.joined_on.strftime('%F')} or update the joined date above."
|
368
384
|
end
|
369
385
|
|
@@ -131,9 +131,12 @@ module EffectiveMembershipsRegistrar
|
|
131
131
|
membership.registration_on = date # Always new registration_on
|
132
132
|
|
133
133
|
# Assign Number (this could be nil)
|
134
|
-
number = next_membership_number(owner, to: to) if number.
|
135
|
-
|
136
|
-
|
134
|
+
number = next_membership_number(owner, to: to) if number.nil?
|
135
|
+
|
136
|
+
if number.present?
|
137
|
+
membership.number = number
|
138
|
+
membership.number_as_integer = (Integer(number) rescue nil)
|
139
|
+
end
|
137
140
|
|
138
141
|
# Assign Category
|
139
142
|
membership.build_membership_category(category: to)
|
@@ -173,11 +176,13 @@ module EffectiveMembershipsRegistrar
|
|
173
176
|
|
174
177
|
date ||= Time.zone.now
|
175
178
|
|
179
|
+
# Existing Membership
|
176
180
|
membership = owner.membership
|
177
181
|
|
178
|
-
#
|
182
|
+
# Last Changed Date
|
179
183
|
membership.registration_on = date
|
180
184
|
|
185
|
+
# Assign Category
|
181
186
|
membership.build_membership_category(category: to)
|
182
187
|
membership.membership_category(category: from).mark_for_destruction
|
183
188
|
|
@@ -195,24 +200,60 @@ module EffectiveMembershipsRegistrar
|
|
195
200
|
save!(owner, date: date)
|
196
201
|
end
|
197
202
|
|
198
|
-
def reinstate!(owner,
|
203
|
+
def reinstate!(owner, to: nil, date: nil, skip_fees: false)
|
199
204
|
raise('expecting a memberships owner') unless owner.class.respond_to?(:effective_memberships_owner?)
|
200
|
-
raise('owner must have
|
205
|
+
raise('owner must have a removed membership.') unless owner.membership_removed?
|
206
|
+
|
207
|
+
history = owner.reinstatement_membership_history
|
208
|
+
raise('owner must have a reinstatement membership history.') if history.blank?
|
201
209
|
|
202
|
-
|
203
|
-
raise('
|
210
|
+
to ||= owner.reinstatement_membership_category
|
211
|
+
raise('expecting a to memberships category') unless to.class.respond_to?(:effective_memberships_category?)
|
204
212
|
|
213
|
+
statuses = owner.reinstatement_membership_statuses
|
214
|
+
|
215
|
+
# Default Date
|
205
216
|
date ||= Time.zone.now
|
217
|
+
period = period(date: date)
|
218
|
+
period_end_on = period_end_on(date: date)
|
206
219
|
|
207
|
-
|
208
|
-
membership
|
209
|
-
|
220
|
+
# Build a membership
|
221
|
+
membership = owner.build_membership
|
222
|
+
|
223
|
+
# Assign Dates
|
224
|
+
membership.joined_on = date
|
225
|
+
membership.registration_on = date
|
226
|
+
|
227
|
+
# Assign Number (this could be nil)
|
228
|
+
if history.number.present?
|
229
|
+
membership.number = history.number
|
230
|
+
membership.number_as_integer = (Integer(history.number) rescue nil)
|
231
|
+
end
|
232
|
+
|
233
|
+
# Assign Category
|
234
|
+
membership.build_membership_category(category: to)
|
235
|
+
|
236
|
+
# Assign Statuses
|
237
|
+
statuses.each do |status|
|
238
|
+
membership.build_membership_status(status: status)
|
239
|
+
end
|
210
240
|
|
241
|
+
# Assign fees paid through period
|
242
|
+
if skip_fees
|
243
|
+
membership.fees_paid_period = period
|
244
|
+
membership.fees_paid_through_period = period_end_on
|
245
|
+
end
|
246
|
+
|
247
|
+
# Or, Build Fees
|
211
248
|
unless skip_fees
|
212
249
|
fee = owner.build_prorated_fee(date: date)
|
213
250
|
# This might already be present and purchased if joined and reinstated in the same period
|
214
251
|
end
|
215
252
|
|
253
|
+
# Assign member role
|
254
|
+
add_member_role(owner)
|
255
|
+
|
256
|
+
# Save owner
|
216
257
|
save!(owner, date: date)
|
217
258
|
end
|
218
259
|
|
@@ -267,16 +308,17 @@ module EffectiveMembershipsRegistrar
|
|
267
308
|
true
|
268
309
|
end
|
269
310
|
|
270
|
-
|
311
|
+
# When you remove, you can set a status(es) which may affect reinstatement applications
|
312
|
+
def remove!(owner, statuses: nil, date: nil, notes: nil)
|
313
|
+
statuses = Array(statuses)
|
314
|
+
|
271
315
|
raise('expecting a memberships owner') unless owner.class.respond_to?(:effective_memberships_owner?)
|
272
316
|
raise('expected a member with a membership') unless owner.membership.present?
|
317
|
+
raise('expecting an membership status (optional)') if statuses.present? && statuses.any? { |status| !status.class.respond_to?(:effective_memberships_status?) }
|
273
318
|
|
274
319
|
# Date
|
275
320
|
date ||= Time.zone.now
|
276
321
|
|
277
|
-
# Remove Membership
|
278
|
-
owner.membership.mark_for_destruction
|
279
|
-
|
280
322
|
# Delete unpurchased fees and orders
|
281
323
|
owner.outstanding_fee_payment_fees.each { |fee| fee.mark_for_destruction }
|
282
324
|
owner.outstanding_fee_payment_orders.each { |order| order.mark_for_destruction }
|
@@ -284,7 +326,17 @@ module EffectiveMembershipsRegistrar
|
|
284
326
|
# Remove member role
|
285
327
|
remove_member_role(owner)
|
286
328
|
|
287
|
-
|
329
|
+
# Remove Membership
|
330
|
+
owner.membership.mark_for_destruction
|
331
|
+
|
332
|
+
# We do the save a bit differently here because we want to set the removed statuses
|
333
|
+
history = owner.build_membership_history(start_on: date, notes: notes)
|
334
|
+
|
335
|
+
if statuses.present?
|
336
|
+
history.assign_attributes(statuses: statuses.map(&:to_s), status_ids: statuses.map(&:id))
|
337
|
+
end
|
338
|
+
|
339
|
+
owner.save!
|
288
340
|
end
|
289
341
|
|
290
342
|
def not_in_good_standing!(owner, date: nil, notes: nil)
|
@@ -25,13 +25,18 @@ module Effective
|
|
25
25
|
serialize :status_ids, Array
|
26
26
|
|
27
27
|
scope :deep, -> { includes(:owner) }
|
28
|
-
scope :sorted, -> { order(:start_on) }
|
28
|
+
scope :sorted, -> { order(:start_on).order(:id) }
|
29
29
|
|
30
30
|
scope :removed, -> { where(removed: true) }
|
31
31
|
|
32
32
|
validates :owner, presence: true
|
33
33
|
validates :start_on, presence: true
|
34
34
|
|
35
|
+
with_options(if: -> { removed? }) do
|
36
|
+
validates :number, absence: { message: 'must be blank when removed' }
|
37
|
+
validates :category_ids, absence: { message: 'must be blank when removed' }
|
38
|
+
end
|
39
|
+
|
35
40
|
def to_s
|
36
41
|
'membership history'
|
37
42
|
end
|
@@ -17,6 +17,9 @@ module Effective
|
|
17
17
|
attr_accessor :membership_number
|
18
18
|
attr_accessor :skip_fees
|
19
19
|
|
20
|
+
# Reinstate
|
21
|
+
attr_accessor :skip_fees
|
22
|
+
|
20
23
|
# Status Change
|
21
24
|
attr_accessor :status_ids
|
22
25
|
attr_accessor :status_id
|
@@ -64,6 +67,11 @@ module Effective
|
|
64
67
|
EffectiveMemberships.Registrar.reclassify!(owner, to: category, skip_fees: skip_fees?)
|
65
68
|
end
|
66
69
|
|
70
|
+
def reinstate!
|
71
|
+
update!(current_action: :reinstate)
|
72
|
+
EffectiveMemberships.Registrar.reinstate!(owner, skip_fees: skip_fees?)
|
73
|
+
end
|
74
|
+
|
67
75
|
def status_assign!
|
68
76
|
update!(current_action: :status_assign)
|
69
77
|
EffectiveMemberships.Registrar.status_assign!(owner, status: statuses)
|
@@ -86,7 +94,7 @@ module Effective
|
|
86
94
|
|
87
95
|
def remove!
|
88
96
|
update!(current_action: :remove)
|
89
|
-
EffectiveMemberships.Registrar.remove!(owner)
|
97
|
+
EffectiveMemberships.Registrar.remove!(owner, statuses: statuses)
|
90
98
|
end
|
91
99
|
|
92
100
|
def assign_attributes(atts)
|
@@ -4,9 +4,13 @@
|
|
4
4
|
- categories = EffectiveMemberships.Category.all
|
5
5
|
= f.select :category_id, categories, label: 'Approve to'
|
6
6
|
|
7
|
+
- reinstatement = applicant.owner.reinstatement_membership_history if applicant.reinstatement?
|
8
|
+
|
7
9
|
%p
|
8
10
|
- if applicant.owner.membership&.number_was.present?
|
9
11
|
The member will keep their existing membership number: #{applicant.owner.membership.number}.
|
12
|
+
- elsif applicant.reinstatement? && reinstatement.number.present?
|
13
|
+
The member will keep their previous membership number: #{reinstatement.number}.
|
10
14
|
- else
|
11
15
|
- number = EffectiveMemberships.Registrar.next_membership_number(applicant.owner, to: applicant.category)
|
12
16
|
|
@@ -15,6 +19,9 @@
|
|
15
19
|
- else
|
16
20
|
No membership number will be assigned.
|
17
21
|
|
22
|
+
- if applicant.reinstatement?
|
23
|
+
%p The member will be reinstated with their previous status: #{badges(reinstatement.membership_statuses) || 'None'}.
|
24
|
+
|
18
25
|
%h3 Fees
|
19
26
|
%p The following fees will be created:
|
20
27
|
- month = Time.zone.now.strftime('%B')
|
@@ -27,6 +34,9 @@
|
|
27
34
|
%li A #{month} prorated fee to the new category
|
28
35
|
%li A #{month} discount fee from their old category
|
29
36
|
|
37
|
+
- if applicant.reinstatement?
|
38
|
+
%li A #{month} prorated fee to their reinstatement category
|
39
|
+
|
30
40
|
%p The following unpurchased fees will be deleted:
|
31
41
|
- outstanding_fee_payment_fees = applicant.owner.outstanding_fee_payment_fees
|
32
42
|
|
@@ -15,3 +15,7 @@
|
|
15
15
|
- if membership.blank? && owner.membership_histories.present?
|
16
16
|
= card('History') do
|
17
17
|
= render_datatable(Admin::EffectiveMembershipHistoriesDatatable.new(owner: owner), inline: true, simple: true)
|
18
|
+
|
19
|
+
- if owner.membership_removed?
|
20
|
+
- registrar_action = Effective::RegistrarAction.new(current_user: current_user, owner: owner)
|
21
|
+
= render 'admin/registrar_actions/form_reinstatement', registrar_action: registrar_action
|
@@ -15,3 +15,6 @@
|
|
15
15
|
.mb-4= render 'admin/registrar_actions/form_not_in_good_standing', registrar_action: registrar_action
|
16
16
|
.mb-4= render 'admin/registrar_actions/form_fees_paid', registrar_action: registrar_action
|
17
17
|
.mb-4= render 'admin/registrar_actions/form_remove', registrar_action: registrar_action
|
18
|
+
|
19
|
+
|
20
|
+
- # The reinstatement form is added by memberships/form and not here
|
@@ -0,0 +1,44 @@
|
|
1
|
+
.card
|
2
|
+
.card-body
|
3
|
+
%h5.card-title Reinstate
|
4
|
+
|
5
|
+
= effective_form_with(model: [:admin, registrar_action], url: effective_memberships.admin_registrar_actions_path) do |f|
|
6
|
+
= f.hidden_field :owner_id
|
7
|
+
= f.hidden_field :owner_type
|
8
|
+
|
9
|
+
- removed = f.object.owner.removed_membership_history
|
10
|
+
- reinstatement = f.object.owner.reinstatement_membership_history
|
11
|
+
|
12
|
+
- raise('expected a removed membership history') unless removed.present?
|
13
|
+
- raise('expected a reinstatement membership history') unless reinstatement.present?
|
14
|
+
|
15
|
+
- period = EffectiveMemberships.Registrar.current_period
|
16
|
+
|
17
|
+
%p.text-muted
|
18
|
+
Reinstate to previous membership and optionally create fees.
|
19
|
+
|
20
|
+
%p
|
21
|
+
This member was removed on #{removed.start_on.strftime('%F')} from
|
22
|
+
= reinstatement.membership_categories.first
|
23
|
+
= badges(reinstatement.membership_statuses)
|
24
|
+
- if reinstatement.number.present?
|
25
|
+
with number #{reinstatement.number}.
|
26
|
+
|
27
|
+
= f.check_box :current_action, label: 'Yes, reinstate this member to their previous category, status and number'
|
28
|
+
|
29
|
+
= f.show_if :current_action, true do
|
30
|
+
= f.check_box :skip_fees, label: 'Yes, skip creating fees and just set the category'
|
31
|
+
|
32
|
+
= f.hide_if :skip_fees, true do
|
33
|
+
%p The following fee(s) will be created:
|
34
|
+
- month = Time.zone.now.strftime('%B')
|
35
|
+
|
36
|
+
%ul
|
37
|
+
%li A #{month} prorated fee for the #{reinstatement.membership_categories.first} category
|
38
|
+
|
39
|
+
%p The member will be required to return to the website and make a fee payment
|
40
|
+
|
41
|
+
= f.show_if :skip_fees, true do
|
42
|
+
%p No fees will be created
|
43
|
+
|
44
|
+
= f.submit 'Reinstate', border: false, center: true, 'data-confirm': "Really reinstate #{f.object.owner}?"
|
@@ -13,5 +13,10 @@
|
|
13
13
|
= f.check_box :current_action, label: 'Yes, remove this member'
|
14
14
|
|
15
15
|
= f.show_if :current_action, true do
|
16
|
+
- statuses = f.object.owner.registrar_action_statuses(:remove)
|
17
|
+
|
18
|
+
- if statuses.present?
|
19
|
+
= f.select :status_ids, statuses, label: 'Remove with status', multiple: true, hint: 'Will be assigned to the membership history and may affect fees generated for reinstatement applicants'
|
20
|
+
|
16
21
|
= f.submit 'Remove', border: false, center: true,
|
17
22
|
'data-confirm': "Really remove #{f.object.owner}?"
|
@@ -3,7 +3,8 @@
|
|
3
3
|
|
4
4
|
- categories = resource.can_apply_categories_collection()
|
5
5
|
- applicant_types = resource.can_apply_applicant_types_collection()
|
6
|
-
- existing_category = resource.owner
|
6
|
+
- existing_category = resource.owner.membership&.category
|
7
|
+
- reinstatement_category = resource.owner.reinstatement_membership_category
|
7
8
|
|
8
9
|
= card do
|
9
10
|
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
@@ -20,11 +21,6 @@
|
|
20
21
|
= render('effective/applicants/select/apply_to_join', f: f)
|
21
22
|
= render('effective/applicants/select/categories', f: f, categories: categories)
|
22
23
|
|
23
|
-
- elsif applicant_types == ['Apply for Reinstatement']
|
24
|
-
= f.hidden_field :applicant_type, value: applicant_types.first
|
25
|
-
= f.hidden_field :category_id, value: existing_category.id
|
26
|
-
= render('effective/applicants/select/apply_for_reinstatement', f: f)
|
27
|
-
|
28
24
|
- elsif applicant_types == ['Apply to Reclassify']
|
29
25
|
= render('effective/applicants/select/apply_to_reclassify', f: f)
|
30
26
|
= render('effective/applicants/select/categories', f: f, categories: categories - [existing_category])
|
@@ -32,6 +28,11 @@
|
|
32
28
|
- else
|
33
29
|
= f.select :applicant_type, applicant_types, label: 'Apply to...'
|
34
30
|
|
31
|
+
- if applicant_types.include?('Apply for Reinstatement')
|
32
|
+
= f.show_if :applicant_type, 'Apply for Reinstatement' do
|
33
|
+
= f.hidden_field :category_id, value: reinstatement_category.id
|
34
|
+
= render('effective/applicants/select/apply_for_reinstatement', f: f)
|
35
|
+
|
35
36
|
- if applicant_types.include?('Apply to Join')
|
36
37
|
= f.show_if :applicant_type, 'Apply to Join' do
|
37
38
|
= render('effective/applicants/select/apply_to_join', f: f)
|
@@ -42,9 +43,4 @@
|
|
42
43
|
= render('effective/applicants/select/apply_to_reclassify', f: f)
|
43
44
|
= render('effective/applicants/select/categories', f: f, categories: categories - [existing_category])
|
44
45
|
|
45
|
-
- if applicant_types.include?('Apply for Reinstatement')
|
46
|
-
= f.show_if :applicant_type, 'Apply for Reinstatement' do
|
47
|
-
= f.hidden_field :category_id, value: existing_category.id
|
48
|
-
= render('effective/applicants/select/apply_for_reinstatement', f: f)
|
49
|
-
|
50
46
|
= f.save 'Save and Continue'
|
@@ -35,6 +35,7 @@
|
|
35
35
|
|
36
36
|
- if current_user.membership_removed?
|
37
37
|
%p Your membership was removed on #{current_user.membership_removed_on.strftime('%F')}.
|
38
|
+
%p You may Apply for Reinstatement to #{current_user.reinstatement_membership_category} by clicking the Apply to Join button below and then complete the wizard.
|
38
39
|
|
39
40
|
- if membership_organizations.present?
|
40
41
|
%p You are a representative for #{pluralize(membership_organizations.length, 'member organization')}.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_memberships
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.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: 2022-
|
11
|
+
date: 2022-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -383,6 +383,7 @@ files:
|
|
383
383
|
- app/views/admin/registrar_actions/_form_not_in_good_standing.html.haml
|
384
384
|
- app/views/admin/registrar_actions/_form_reclassify.html.haml
|
385
385
|
- app/views/admin/registrar_actions/_form_register.html.haml
|
386
|
+
- app/views/admin/registrar_actions/_form_reinstatement.html.haml
|
386
387
|
- app/views/admin/registrar_actions/_form_remove.html.haml
|
387
388
|
- app/views/admin/registrar_actions/_form_status_change.html.haml
|
388
389
|
- app/views/admin/representatives/_form.html.haml
|