effective_memberships 0.9.6 → 0.9.7
Sign up to get free protection for your applications and to get access to all the features.
- 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
|