effective_memberships 0.13.0 → 0.13.2
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/models/concerns/effective_memberships_applicant.rb +17 -6
- data/app/models/concerns/effective_memberships_directory.rb +9 -1
- data/app/models/concerns/effective_memberships_registrar.rb +18 -5
- data/app/models/effective/registrar_action.rb +2 -2
- data/app/views/admin/applicants/_form_approve.html.haml +1 -1
- data/app/views/admin/registrar_actions/_form_reclassify.html.haml +6 -3
- data/app/views/admin/registrar_actions/_form_reinstatement.html.haml +6 -0
- data/app/views/effective/membership_directory/_form.html.haml +1 -0
- data/app/views/effective/membership_directory/_membership.html.haml +1 -0
- data/app/views/effective/membership_directory/show.html.haml +1 -0
- data/lib/effective_memberships/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3eddddc73bf54e32d870cd26982092d29cedf29083845a6ec93ddad09f9a8c46
|
4
|
+
data.tar.gz: 69e21c598c39b6d28a5031bd07308c2ededa79448975da5d4db4d9a3be50325e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69b84ed6117f73c0b463f4236defe71bec83a59c0f06a6a2954373e6ae88070132d022dcb9f9fd39e87bd14f993b236a32e2f3ddc1b63aa8969bbb1826400ae0
|
7
|
+
data.tar.gz: 509f767917c6d3553127423e26f26784ca92f6a73b115482b5d1d25ad393fa578f73d5396446c5be8335d8a3f18dcefa53e15634edb40c80bed5c8b91658d718
|
@@ -360,7 +360,6 @@ module EffectiveMembershipsApplicant
|
|
360
360
|
validates :declare_reinstatement, acceptance: true
|
361
361
|
end
|
362
362
|
|
363
|
-
|
364
363
|
# Admin Approve
|
365
364
|
validate(if: -> { approved_membership_date.present? }) do
|
366
365
|
if approved_membership_date.to_date > Time.zone.now.to_date
|
@@ -501,9 +500,9 @@ module EffectiveMembershipsApplicant
|
|
501
500
|
end
|
502
501
|
|
503
502
|
# Draft -> Submitted requirements
|
504
|
-
def submit!
|
505
|
-
raise('already submitted') if was_submitted?
|
506
|
-
raise('expected a purchased order')
|
503
|
+
def submit!(force: false)
|
504
|
+
raise('already submitted') if was_submitted? && !force
|
505
|
+
raise('expected a purchased order') if !submit_order&.purchased? && !force
|
507
506
|
|
508
507
|
wizard_steps[:checkout] ||= Time.zone.now
|
509
508
|
wizard_steps[:submitted] = Time.zone.now
|
@@ -863,9 +862,21 @@ module EffectiveMembershipsApplicant
|
|
863
862
|
number: approved_membership_number.presence # Set by the Admin Process form, or nil
|
864
863
|
)
|
865
864
|
elsif reclassification?
|
866
|
-
EffectiveMemberships.Registrar.reclassify!(
|
865
|
+
EffectiveMemberships.Registrar.reclassify!(
|
866
|
+
owner,
|
867
|
+
to: to_category,
|
868
|
+
status: to_status,
|
869
|
+
date: approved_membership_date.presence, # Set by the Admin Process form, or nil
|
870
|
+
number: approved_membership_number.presence # Set by the Admin Process form, or nil
|
871
|
+
)
|
867
872
|
elsif reinstatement?
|
868
|
-
|
873
|
+
# No status
|
874
|
+
EffectiveMemberships.Registrar.reinstate!(
|
875
|
+
owner,
|
876
|
+
to: to_category,
|
877
|
+
date: approved_membership_date.presence, # Set by the Admin Process form, or nil
|
878
|
+
number: approved_membership_number.presence # Set by the Admin Process form, or nil
|
879
|
+
)
|
869
880
|
else
|
870
881
|
raise('unsupported approval applicant_type')
|
871
882
|
end
|
@@ -23,6 +23,9 @@ module EffectiveMembershipsDirectory
|
|
23
23
|
attr_accessor :first_name
|
24
24
|
attr_accessor :last_name
|
25
25
|
|
26
|
+
# Memberships
|
27
|
+
attr_accessor :number
|
28
|
+
|
26
29
|
# Organizations
|
27
30
|
attr_accessor :title
|
28
31
|
|
@@ -47,7 +50,7 @@ module EffectiveMembershipsDirectory
|
|
47
50
|
# Search Users and Organizations for only these fields. Passed into search_any. Return nil for all.
|
48
51
|
# Should this include email?
|
49
52
|
def search_any_columns
|
50
|
-
[:title, :name, :first_name, :middle_name, :last_name]
|
53
|
+
[:title, :name, :first_name, :middle_name, :last_name, :number]
|
51
54
|
end
|
52
55
|
|
53
56
|
def per_page
|
@@ -116,6 +119,11 @@ module EffectiveMembershipsDirectory
|
|
116
119
|
memberships = memberships.with_category(EffectiveMemberships.Category.where(id: category))
|
117
120
|
end
|
118
121
|
|
122
|
+
# Filter by number
|
123
|
+
if number.present?
|
124
|
+
memberships = memberships.where('number ILIKE ?', "%#{number}%")
|
125
|
+
end
|
126
|
+
|
119
127
|
# Return an ActiveRecord::Relation of Effective::Memberships
|
120
128
|
memberships
|
121
129
|
end
|
@@ -163,7 +163,7 @@ module EffectiveMembershipsRegistrar
|
|
163
163
|
owner.build_prorated_fee(date: date)
|
164
164
|
end
|
165
165
|
|
166
|
-
def reclassify!(owner, to:, status: nil, date: nil, skip_fees: false)
|
166
|
+
def reclassify!(owner, to:, status: nil, date: nil, number: nil, skip_fees: false)
|
167
167
|
raise('expecting a memberships owner') unless owner.class.respond_to?(:effective_memberships_owner?)
|
168
168
|
raise('owner must have an existing membership. use register! instead') if owner.membership.blank?
|
169
169
|
|
@@ -183,6 +183,14 @@ module EffectiveMembershipsRegistrar
|
|
183
183
|
# Last Changed Date
|
184
184
|
membership.registration_on = date
|
185
185
|
|
186
|
+
# Assign Number (this could be nil)
|
187
|
+
number = next_membership_number(owner, to: to) if number.nil?
|
188
|
+
|
189
|
+
if number.present?
|
190
|
+
membership.number = number
|
191
|
+
membership.number_as_integer = (Integer(number) rescue nil)
|
192
|
+
end
|
193
|
+
|
186
194
|
# Assign Category
|
187
195
|
membership.build_membership_category(category: to)
|
188
196
|
membership.membership_category(category: from).mark_for_destruction
|
@@ -213,7 +221,7 @@ module EffectiveMembershipsRegistrar
|
|
213
221
|
end
|
214
222
|
end
|
215
223
|
|
216
|
-
def reinstate!(owner, to: nil, date: nil, skip_fees: false)
|
224
|
+
def reinstate!(owner, to: nil, date: nil, number: nil, skip_fees: false)
|
217
225
|
raise('expecting a memberships owner') unless owner.class.respond_to?(:effective_memberships_owner?)
|
218
226
|
|
219
227
|
history = owner.reinstatement_membership_history || owner.membership_histories.last
|
@@ -236,10 +244,15 @@ module EffectiveMembershipsRegistrar
|
|
236
244
|
membership.joined_on = date
|
237
245
|
membership.registration_on = date
|
238
246
|
|
247
|
+
# Assign Old Number (this could be nil)
|
248
|
+
number = history.number if history.number.present?
|
249
|
+
|
239
250
|
# Assign Number (this could be nil)
|
240
|
-
if
|
241
|
-
|
242
|
-
|
251
|
+
number = next_membership_number(owner, to: to) if number.nil?
|
252
|
+
|
253
|
+
if number.present?
|
254
|
+
membership.number = number
|
255
|
+
membership.number_as_integer = (Integer(number) rescue nil)
|
243
256
|
end
|
244
257
|
|
245
258
|
# Assign Category
|
@@ -64,12 +64,12 @@ module Effective
|
|
64
64
|
|
65
65
|
def reclassify!
|
66
66
|
update!(current_action: :reclassify)
|
67
|
-
EffectiveMemberships.Registrar.reclassify!(owner, to: category, skip_fees: skip_fees?)
|
67
|
+
EffectiveMemberships.Registrar.reclassify!(owner, to: category, number: number, skip_fees: skip_fees?)
|
68
68
|
end
|
69
69
|
|
70
70
|
def reinstate!
|
71
71
|
update!(current_action: :reinstate)
|
72
|
-
EffectiveMemberships.Registrar.reinstate!(owner, skip_fees: skip_fees?)
|
72
|
+
EffectiveMemberships.Registrar.reinstate!(owner, number: number, skip_fees: skip_fees?)
|
73
73
|
end
|
74
74
|
|
75
75
|
def status_assign!
|
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
%p
|
10
10
|
- if applicant.owner.membership&.number_was.present?
|
11
|
-
The member will keep their existing membership number: #{applicant.owner.membership.
|
11
|
+
The member will keep their existing membership number: #{applicant.owner.membership.number_was}.
|
12
12
|
- elsif applicant.reinstatement? && reinstatement&.number.present?
|
13
13
|
The member will keep their previous membership number: #{reinstatement.number}.
|
14
14
|
- else
|
@@ -18,12 +18,15 @@
|
|
18
18
|
= f.check_box :current_action, label: 'Yes, reclassify this member to another category'
|
19
19
|
|
20
20
|
= f.show_if :current_action, true do
|
21
|
-
%p The member will keep their existing membership number: #{membership.number}.
|
22
|
-
|
23
21
|
- categories = f.object.owner.registrar_action_categories(:reclassify) - membership.categories
|
24
|
-
|
25
22
|
= f.select :category_id, categories, label: 'Reclassify to', required: true
|
26
23
|
|
24
|
+
%p
|
25
|
+
- if membership.number.present?
|
26
|
+
The member will keep their existing membership number: #{membership.number}.
|
27
|
+
- else
|
28
|
+
= f.text_field :membership_number, hint: "leave blank to assign the next number as per the category"
|
29
|
+
|
27
30
|
= f.check_box :skip_fees, label: 'Yes, skip creating fees and just set the category'
|
28
31
|
|
29
32
|
= f.hide_if :skip_fees, true do
|
@@ -27,6 +27,12 @@
|
|
27
27
|
= f.check_box :current_action, label: 'Yes, reinstate this member to their previous category, status and number'
|
28
28
|
|
29
29
|
= f.show_if :current_action, true do
|
30
|
+
%p
|
31
|
+
- if reinstatement.number.present?
|
32
|
+
The member will keep their existing membership number: #{reinstatement.number}.
|
33
|
+
- else
|
34
|
+
= f.text_field :membership_number, hint: "leave blank to assign the next number as per the category"
|
35
|
+
|
30
36
|
= f.check_box :skip_fees, label: 'Yes, skip creating fees and just set the category'
|
31
37
|
|
32
38
|
= f.hide_if :skip_fees, true do
|
@@ -2,6 +2,7 @@
|
|
2
2
|
%h6= membership.owner
|
3
3
|
%p= membership.categories.map(&:membership_directory_title).to_sentence
|
4
4
|
%p= membership.statuses.map(&:membership_directory_title).to_sentence
|
5
|
+
%p= membership.number
|
5
6
|
|
6
7
|
- if membership.owner.try(:email).present?
|
7
8
|
%p= reveal_mail_to(membership.owner.email)
|
@@ -4,6 +4,7 @@
|
|
4
4
|
%h6= @membership.owner
|
5
5
|
%p= @membership.categories.map(&:membership_directory_title).to_sentence
|
6
6
|
%p= @membership.statuses.map(&:membership_directory_title).to_sentence
|
7
|
+
%p= @membership.number
|
7
8
|
|
8
9
|
- if @membership.owner.respond_to?(:rich_text_body)
|
9
10
|
.mb-4= @membership.owner.rich_text_body.to_s
|
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.13.
|
4
|
+
version: 0.13.2
|
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: 2023-03-
|
11
|
+
date: 2023-03-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|