effective_memberships 0.3.7 → 0.3.10
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/effective/membership_cards_controller.rb +19 -0
- data/app/datatables/admin/effective_applicants_datatable.rb +2 -1
- data/app/datatables/admin/effective_memberships_datatable.rb +38 -1
- data/app/datatables/effective_memberships_directory_datatable.rb +1 -1
- data/app/models/concerns/effective_memberships_applicant.rb +45 -27
- data/app/models/concerns/effective_memberships_card.rb +56 -0
- data/app/models/concerns/effective_memberships_category.rb +22 -2
- data/app/models/concerns/effective_memberships_registrar.rb +1 -1
- data/app/models/effective/applicant_reference.rb +6 -1
- data/app/models/effective/membership.rb +2 -0
- data/app/models/effective/membership_card.rb +7 -0
- data/app/views/admin/applicants/_form.html.haml +1 -1
- data/app/views/effective/applicants/_stamp.html.haml +36 -0
- data/app/views/effective/applicants/stamp.html.haml +28 -0
- data/app/views/effective/membership_cards/index.html.haml +16 -0
- data/config/routes.rb +7 -0
- data/lib/effective_memberships/version.rb +1 -1
- data/lib/effective_memberships.rb +5 -1
- metadata +22 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c506926f876b0fe6e4559cce6784e0c0ac8f30891dca21183f74dd5ab1fc5ee6
|
4
|
+
data.tar.gz: 980454f32127c3423d33aaaf4136615fac433dbede09f718ae7ebfb1c0cc3b39
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 29813982537ac083f937e2c1d8df597676b51eb26c7512f773f018fd91e0e2a3a389b6095f89ba8e8acdb44086313b2ff3638f926f380490366b8c7148eaaf46
|
7
|
+
data.tar.gz: 436039fe95ff3c095bb755663ec6f51674ffe620957b2f1a0557d598f634eeb651aa317476a887d818cd71bacf5a9708eb34eab2df06a3456201c6b02e1af890
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Effective
|
2
|
+
class MembershipCardsController < ApplicationController
|
3
|
+
before_action(:authenticate_user!) if defined?(Devise)
|
4
|
+
|
5
|
+
include Effective::CrudController
|
6
|
+
|
7
|
+
resource_scope -> { EffectiveMemberships.MembershipCard }
|
8
|
+
|
9
|
+
def show
|
10
|
+
membership = Effective::Membership.find(params[:id])
|
11
|
+
card = resource_scope.new(membership: membership)
|
12
|
+
|
13
|
+
EffectiveResources.authorize!(self, :show, card)
|
14
|
+
|
15
|
+
send_data(card.to_pdf, filename: card.filename, type: card.content_type, disposition: 'attachment')
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
@@ -24,11 +24,48 @@ module Admin
|
|
24
24
|
col :bad_standing_admin, visible: false
|
25
25
|
col :bad_standing_reason, visible: false
|
26
26
|
|
27
|
+
col :email do |membership|
|
28
|
+
email = membership.owner.try(:email)
|
29
|
+
mail_to(email) if email.present?
|
30
|
+
end
|
31
|
+
|
32
|
+
col :phone do |membership|
|
33
|
+
membership.owner.try(:phone) || membership.owner.try(:home_phone) || membership.owner.try(:cell_phone)
|
34
|
+
end
|
35
|
+
|
36
|
+
col :address do |membership|
|
37
|
+
membership.owner.try(:addresses).try(:first).try(:to_html)
|
38
|
+
end
|
39
|
+
|
40
|
+
col :address1, visible: false do |membership|
|
41
|
+
membership.owner.try(:addresses).try(:first).try(:address1)
|
42
|
+
end
|
43
|
+
|
44
|
+
col :address2, visible: false do |membership|
|
45
|
+
membership.owner.try(:addresses).try(:first).try(:address2)
|
46
|
+
end
|
47
|
+
|
48
|
+
col :city, visible: false do |membership|
|
49
|
+
membership.owner.try(:addresses).try(:first).try(:city)
|
50
|
+
end
|
51
|
+
|
52
|
+
col :province, visible: false do |membership|
|
53
|
+
membership.owner.try(:addresses).try(:first).try(:province)
|
54
|
+
end
|
55
|
+
|
56
|
+
col :country, visible: false do |membership|
|
57
|
+
membership.owner.try(:addresses).try(:first).try(:country)
|
58
|
+
end
|
59
|
+
|
60
|
+
col :postal_code, visible: false do |membership|
|
61
|
+
membership.owner.try(:addresses).try(:first).try(:postal_code)
|
62
|
+
end
|
63
|
+
|
27
64
|
actions_col
|
28
65
|
end
|
29
66
|
|
30
67
|
collection do
|
31
|
-
memberships = Effective::Membership.deep.all.includes(:
|
68
|
+
memberships = Effective::Membership.deep.all.includes(owner: :addresses)
|
32
69
|
|
33
70
|
raise('expected an owner_id, not user_id') if attributes[:user_id].present?
|
34
71
|
|
@@ -11,7 +11,7 @@ class EffectiveMembershipsDirectoryDatatable < Effective::Datatable
|
|
11
11
|
end
|
12
12
|
|
13
13
|
collection do
|
14
|
-
scope = Effective::Membership.deep.includes(:owner)
|
14
|
+
scope = Effective::Membership.deep.good_standing.includes(:owner)
|
15
15
|
|
16
16
|
archived_klasses.each do |klass|
|
17
17
|
scope = scope.where.not(owner_id: klass.archived.select('id'), owner_type: klass.name)
|
@@ -49,6 +49,7 @@ module EffectiveMembershipsApplicant
|
|
49
49
|
experience: 'Work Experience',
|
50
50
|
references: 'References',
|
51
51
|
files: 'Attach Files',
|
52
|
+
stamp: 'Professional Stamp',
|
52
53
|
declarations: 'Declarations',
|
53
54
|
summary: 'Review',
|
54
55
|
billing: 'Billing Address',
|
@@ -93,10 +94,14 @@ module EffectiveMembershipsApplicant
|
|
93
94
|
has_many :applicant_references, -> { order(:id) }, class_name: 'Effective::ApplicantReference', as: :applicant, inverse_of: :applicant, dependent: :destroy
|
94
95
|
accepts_nested_attributes_for :applicant_references, reject_if: :all_blank, allow_destroy: true
|
95
96
|
|
96
|
-
has_many :
|
97
|
+
has_many :stamps, -> { order(:id) }, class_name: 'Effective::Stamp', as: :applicant, inverse_of: :applicant, dependent: :destroy
|
98
|
+
accepts_nested_attributes_for :stamps, reject_if: :all_blank, allow_destroy: true
|
99
|
+
|
100
|
+
# Effective Namespace polymorphic
|
101
|
+
has_many :fees, -> { order(:id) }, class_name: 'Effective::Fee', as: :parent, inverse_of: :parent, dependent: :destroy
|
97
102
|
accepts_nested_attributes_for :fees, reject_if: :all_blank, allow_destroy: true
|
98
103
|
|
99
|
-
has_many :orders, -> { order(:id) }, as: :parent, inverse_of: :parent,
|
104
|
+
has_many :orders, -> { order(:id) }, class_name: 'Effective::Order', as: :parent, inverse_of: :parent, dependent: :destroy
|
100
105
|
accepts_nested_attributes_for :orders
|
101
106
|
|
102
107
|
effective_resource do
|
@@ -138,6 +143,8 @@ module EffectiveMembershipsApplicant
|
|
138
143
|
scope :in_progress, -> { where.not(status: [:approved, :declined]) }
|
139
144
|
scope :done, -> { where(status: [:approved, :declined]) }
|
140
145
|
|
146
|
+
scope :not_draft, -> { where.not(status: :draft) }
|
147
|
+
|
141
148
|
# Set Apply to Join or Reclassification
|
142
149
|
before_validation(if: -> { new_record? && owner.present? }) do
|
143
150
|
self.applicant_type ||= (owner.membership.blank? ? 'Apply to Join' : 'Apply to Reclassify')
|
@@ -274,6 +281,9 @@ module EffectiveMembershipsApplicant
|
|
274
281
|
|
275
282
|
applicant_steps = Array(category&.applicant_wizard_steps)
|
276
283
|
|
284
|
+
# Special logic for stamp step
|
285
|
+
applicant_steps.delete(:stamp) unless apply_to_join?
|
286
|
+
|
277
287
|
wizard_steps.select do |step|
|
278
288
|
required_steps.include?(step) || category.blank? || applicant_steps.include?(step)
|
279
289
|
end
|
@@ -282,30 +292,30 @@ module EffectiveMembershipsApplicant
|
|
282
292
|
|
283
293
|
# All Fees and Orders
|
284
294
|
def submit_fees
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
+
# Find or build submit fee
|
296
|
+
fee = fees.first || fees.build(owner: owner, fee_type: 'Applicant')
|
297
|
+
|
298
|
+
unless fee.purchased?
|
299
|
+
fee.assign_attributes(
|
300
|
+
category: category,
|
301
|
+
price: category.applicant_fee,
|
302
|
+
tax_exempt: category.applicant_fee_tax_exempt,
|
303
|
+
qb_item_name: category.applicant_fee_qb_item_name
|
304
|
+
)
|
305
|
+
end
|
295
306
|
|
296
|
-
|
297
|
-
|
307
|
+
# Update stamp price
|
308
|
+
stamp = stamps.first
|
298
309
|
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
)
|
310
|
+
if stamp.present? && !stamp.purchased?
|
311
|
+
stamp.assign_attributes(
|
312
|
+
price: category.stamp_fee,
|
313
|
+
tax_exempt: category.stamp_fee_tax_exempt,
|
314
|
+
qb_item_name: category.stamp_fee_qb_item_name
|
315
|
+
)
|
316
|
+
end
|
307
317
|
|
308
|
-
|
318
|
+
(fees + stamps)
|
309
319
|
end
|
310
320
|
|
311
321
|
# Draft -> Submitted requirements
|
@@ -315,7 +325,9 @@ module EffectiveMembershipsApplicant
|
|
315
325
|
|
316
326
|
wizard_steps[:checkout] ||= Time.zone.now
|
317
327
|
wizard_steps[:submitted] = Time.zone.now
|
328
|
+
|
318
329
|
submitted!
|
330
|
+
stamps.each { |stamp| stamp.submit! }
|
319
331
|
|
320
332
|
after_commit do
|
321
333
|
applicant_references.each { |reference| reference.notify! if reference.submitted? }
|
@@ -410,10 +422,6 @@ module EffectiveMembershipsApplicant
|
|
410
422
|
# Reset the progress so far. They have to click through screens again.
|
411
423
|
assign_attributes(wizard_steps: wizard_steps.slice(:start, :select))
|
412
424
|
|
413
|
-
# Delete any fees and orders. Keep all other data.
|
414
|
-
submit_fees.each { |fee| fee.mark_for_destruction }
|
415
|
-
submit_order.mark_for_destruction if submit_order
|
416
|
-
|
417
425
|
save!
|
418
426
|
end
|
419
427
|
|
@@ -463,6 +471,16 @@ module EffectiveMembershipsApplicant
|
|
463
471
|
category&.min_applicant_files.to_i
|
464
472
|
end
|
465
473
|
|
474
|
+
# Stamps step
|
475
|
+
def stamp
|
476
|
+
stamps.first || stamps.build(
|
477
|
+
owner: owner,
|
478
|
+
name: owner.to_s,
|
479
|
+
shipping_address: (owner.try(:shipping_address) || owner.try(:billing_address)),
|
480
|
+
price: 0
|
481
|
+
)
|
482
|
+
end
|
483
|
+
|
466
484
|
# The submit! method used to be here
|
467
485
|
# But it needs to be inside the included do block
|
468
486
|
# So see above. Sorry.
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# EffectiveMembershipsCard
|
4
|
+
# Mark your card model with include EffectiveMembershipsCard to get all the includes
|
5
|
+
|
6
|
+
module EffectiveMembershipsCard
|
7
|
+
extend ActiveSupport::Concern
|
8
|
+
|
9
|
+
module ClassMethods
|
10
|
+
def effective_memberships_card?; true; end
|
11
|
+
end
|
12
|
+
|
13
|
+
included do
|
14
|
+
include ActiveModel::Model
|
15
|
+
|
16
|
+
attr_accessor :membership
|
17
|
+
validates :membership, presence: true
|
18
|
+
end
|
19
|
+
|
20
|
+
# Instance Methods
|
21
|
+
def owner
|
22
|
+
membership&.owner
|
23
|
+
end
|
24
|
+
|
25
|
+
def content_type
|
26
|
+
'application/pdf'
|
27
|
+
end
|
28
|
+
|
29
|
+
def filename
|
30
|
+
"#{self.class.name.split('::').first.downcase}-membership-card-#{Time.zone.now.strftime('%F')}.pdf"
|
31
|
+
end
|
32
|
+
|
33
|
+
def to_pdf
|
34
|
+
raise('is invalid') unless valid?
|
35
|
+
|
36
|
+
return pdf.render() if pdf.respond_to?(:render) # Prawn
|
37
|
+
return pdf.to_pdf() if pdf.respond_to?(:to_pdf) # CombinePdf
|
38
|
+
|
39
|
+
pdf
|
40
|
+
end
|
41
|
+
|
42
|
+
def pdf
|
43
|
+
@pdf ||= build_pdf()
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def build_pdf()
|
49
|
+
raise('to be implemented')
|
50
|
+
|
51
|
+
# pdf = Prawn::Document.new
|
52
|
+
# pdf.text("Membership Card for #{membership.owner} Number #{membership.number}")
|
53
|
+
# pdf
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
@@ -180,7 +180,7 @@ module EffectiveMembershipsCategory
|
|
180
180
|
end
|
181
181
|
|
182
182
|
def applicant_wizard_steps_collection
|
183
|
-
wizard_steps = EffectiveMemberships.Applicant.
|
183
|
+
wizard_steps = EffectiveMemberships.Applicant.wizard_steps_hash
|
184
184
|
required_steps = EffectiveMemberships.Applicant.required_wizard_steps
|
185
185
|
|
186
186
|
wizard_steps.map do |step, title|
|
@@ -189,7 +189,7 @@ module EffectiveMembershipsCategory
|
|
189
189
|
end
|
190
190
|
|
191
191
|
def fee_payment_wizard_steps_collection
|
192
|
-
wizard_steps = EffectiveMemberships.FeePayment.
|
192
|
+
wizard_steps = EffectiveMemberships.FeePayment.wizard_steps_hash
|
193
193
|
required_steps = EffectiveMemberships.FeePayment.required_wizard_steps
|
194
194
|
|
195
195
|
wizard_steps.map do |step, title|
|
@@ -197,4 +197,24 @@ module EffectiveMembershipsCategory
|
|
197
197
|
end
|
198
198
|
end
|
199
199
|
|
200
|
+
def applicant_fee_qb_item_name
|
201
|
+
'Applicant'
|
202
|
+
end
|
203
|
+
|
204
|
+
def applicant_fee_tax_exempt
|
205
|
+
tax_exempt
|
206
|
+
end
|
207
|
+
|
208
|
+
def stamp_fee
|
209
|
+
0
|
210
|
+
end
|
211
|
+
|
212
|
+
def stamp_fee_qb_item_name
|
213
|
+
qb_item_name
|
214
|
+
end
|
215
|
+
|
216
|
+
def stamp_fee_tax_exempt
|
217
|
+
tax_exempt
|
218
|
+
end
|
219
|
+
|
200
220
|
end
|
@@ -219,7 +219,7 @@ module EffectiveMembershipsRegistrar
|
|
219
219
|
|
220
220
|
if owner.outstanding_fee_payment_fees.present?
|
221
221
|
order = Effective::Order.new(items: owner.outstanding_fee_payment_fees, user: owner)
|
222
|
-
order.
|
222
|
+
order.mark_as_purchased!
|
223
223
|
end
|
224
224
|
|
225
225
|
owner.update_membership_status!
|
@@ -2,7 +2,12 @@ module Effective
|
|
2
2
|
class ApplicantReference < ActiveRecord::Base
|
3
3
|
acts_as_tokened
|
4
4
|
acts_as_addressable :reference
|
5
|
-
|
5
|
+
|
6
|
+
acts_as_statused(
|
7
|
+
:submitted, # Was submitted by the applicant
|
8
|
+
:completed # Was completed by the reference.
|
9
|
+
)
|
10
|
+
|
6
11
|
log_changes(to: :applicant) if respond_to?(:log_changes)
|
7
12
|
|
8
13
|
belongs_to :applicant, polymorphic: true
|
@@ -29,6 +29,8 @@ module Effective
|
|
29
29
|
scope :deep, -> { includes(membership_categories: :category) }
|
30
30
|
scope :sorted, -> { order(:id) }
|
31
31
|
|
32
|
+
scope :good_standing, -> { where(bad_standing: [nil, false]) }
|
33
|
+
|
32
34
|
scope :with_paid_fees_through, -> (period = nil) {
|
33
35
|
where(arel_table[:fees_paid_period].gteq(period || EffectiveMemberships.Registrar.current_period))
|
34
36
|
}
|
@@ -35,7 +35,7 @@
|
|
35
35
|
|
36
36
|
- if applicant.owner.applicants.any? { |other| other.was_submitted? && other.id != applicant.id }
|
37
37
|
= tab 'Other Applications' do
|
38
|
-
= render_datatable(Admin::EffectiveApplicantsDatatable.new(
|
38
|
+
= render_datatable(Admin::EffectiveApplicantsDatatable.new(owner: applicant.owner, except_id: applicant.id))
|
39
39
|
|
40
40
|
- if applicant.persisted? && applicant.respond_to?(:log_changes_datatable)
|
41
41
|
= tab 'Logs' do
|
@@ -0,0 +1,36 @@
|
|
1
|
+
.card
|
2
|
+
.card-body
|
3
|
+
.row
|
4
|
+
.col-sm
|
5
|
+
%h5.card-title= applicant.wizard_step_title(:stamp)
|
6
|
+
.col-sm-auto.text-right
|
7
|
+
= link_to('Edit', wizard_path(:stamp)) if edit_effective_wizard?
|
8
|
+
|
9
|
+
- applicant.stamps.each do |stamp|
|
10
|
+
%table.table.table-sm
|
11
|
+
%tbody
|
12
|
+
%tr
|
13
|
+
%th Name
|
14
|
+
%td= stamp.name
|
15
|
+
|
16
|
+
%tr
|
17
|
+
%th Name Confirmation
|
18
|
+
%td= stamp.name_confirmation
|
19
|
+
|
20
|
+
%tr
|
21
|
+
%th Category
|
22
|
+
%td= stamp.category
|
23
|
+
|
24
|
+
- if stamp.shipping_address.present?
|
25
|
+
%tr
|
26
|
+
%th Shipping Address
|
27
|
+
%td= stamp.shipping_address.to_html
|
28
|
+
|
29
|
+
- if applicant.was_approved?
|
30
|
+
%tr
|
31
|
+
%th Submitted
|
32
|
+
%td= stamp.submitted_at&.strftime('%F') || '-'
|
33
|
+
|
34
|
+
%tr
|
35
|
+
%th Issued
|
36
|
+
%td= stamp.issued_at&.strftime('%F') || 'Not Issued'
|
@@ -0,0 +1,28 @@
|
|
1
|
+
= render 'layout' do
|
2
|
+
= render 'effective/applicants/content', resource: resource
|
3
|
+
|
4
|
+
.card
|
5
|
+
.card-body
|
6
|
+
%p Should your application be approved, you are eligible to receive a Professional Stamp.
|
7
|
+
|
8
|
+
%p Please confirm your name as it should appear on any Professional Stamp.
|
9
|
+
|
10
|
+
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
11
|
+
= f.hidden_field :id
|
12
|
+
|
13
|
+
= f.fields_for(:stamps, f.object.stamp) do |fs|
|
14
|
+
= fs.hidden_field :applicant_id
|
15
|
+
= fs.hidden_field :applicant_type
|
16
|
+
|
17
|
+
= fs.hidden_field :owner_id
|
18
|
+
= fs.hidden_field :owner_type
|
19
|
+
|
20
|
+
= fs.hidden_field :price
|
21
|
+
= fs.hidden_field :tax_exempt
|
22
|
+
= fs.hidden_field :qb_item_name
|
23
|
+
|
24
|
+
= render 'effective/stamps/fields', f: fs
|
25
|
+
|
26
|
+
%p Stamps will be processed after approval of this application.
|
27
|
+
|
28
|
+
= f.save 'Save and Continue'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
- owners = current_user.effective_memberships_owners
|
2
|
+
|
3
|
+
- owners.each do |owner|
|
4
|
+
- membership = owner.membership
|
5
|
+
- card = EffectiveMemberships.MembershipCard.new(membership: membership)
|
6
|
+
|
7
|
+
- next unless EffectiveResources.authorized?(self, :show, card)
|
8
|
+
|
9
|
+
= card('Membership Card') do
|
10
|
+
%p
|
11
|
+
Your membership card for
|
12
|
+
= membership.categories.to_sentence
|
13
|
+
= membership.owner.to_s
|
14
|
+
is available for download:
|
15
|
+
|
16
|
+
%p= link_to 'Download Membership Card', effective_memberships.membership_card_membership_path(membership, format: :pdf), class: 'btn btn-primary'
|
data/config/routes.rb
CHANGED
@@ -18,6 +18,13 @@ EffectiveMemberships::Engine.routes.draw do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
get '/directory', to: 'memberships_directory#index'
|
21
|
+
|
22
|
+
resources :membership_cards, only: :index
|
23
|
+
|
24
|
+
resources :memberships, only: [] do
|
25
|
+
get :membership_card, on: :member, to: 'membership_cards#show'
|
26
|
+
end
|
27
|
+
|
21
28
|
end
|
22
29
|
|
23
30
|
namespace :admin do
|
@@ -7,7 +7,7 @@ module EffectiveMemberships
|
|
7
7
|
def self.config_keys
|
8
8
|
[
|
9
9
|
:categories_table_name, :applicants_table_name, :applicant_reviews_table_name, :fee_payments_table_name,
|
10
|
-
:category_class_name, :applicant_class_name, :applicant_review_class_name, :fee_payment_class_name, :registrar_class_name,
|
10
|
+
:category_class_name, :applicant_class_name, :applicant_review_class_name, :fee_payment_class_name, :registrar_class_name, :membership_card_class_name,
|
11
11
|
:additional_fee_types,
|
12
12
|
:layout,
|
13
13
|
:mailer, :parent_mailer, :deliver_method, :mailer_layout, :mailer_sender, :mailer_admin, :use_effective_email_templates
|
@@ -32,6 +32,10 @@ module EffectiveMemberships
|
|
32
32
|
fee_payment_class_name&.constantize || Effective::FeePayment
|
33
33
|
end
|
34
34
|
|
35
|
+
def self.MembershipCard
|
36
|
+
membership_card_class_name&.constantize || Effective::MembershipCard
|
37
|
+
end
|
38
|
+
|
35
39
|
# Singleton
|
36
40
|
def self.Registrar
|
37
41
|
klass = registrar_class_name&.constantize || Effective::Registrar
|
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.3.
|
4
|
+
version: 0.3.10
|
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-02-
|
11
|
+
date: 2022-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: effective_products
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: effective_resources
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -252,6 +266,7 @@ files:
|
|
252
266
|
- app/controllers/effective/applicant_references_controller.rb
|
253
267
|
- app/controllers/effective/applicants_controller.rb
|
254
268
|
- app/controllers/effective/fee_payments_controller.rb
|
269
|
+
- app/controllers/effective/membership_cards_controller.rb
|
255
270
|
- app/controllers/effective/memberships_directory_controller.rb
|
256
271
|
- app/datatables/admin/effective_applicant_course_areas_datatable.rb
|
257
272
|
- app/datatables/admin/effective_applicant_course_names_datatable.rb
|
@@ -273,6 +288,7 @@ files:
|
|
273
288
|
- app/mailers/effective/memberships_mailer.rb
|
274
289
|
- app/models/concerns/effective_memberships_applicant.rb
|
275
290
|
- app/models/concerns/effective_memberships_applicant_review.rb
|
291
|
+
- app/models/concerns/effective_memberships_card.rb
|
276
292
|
- app/models/concerns/effective_memberships_category.rb
|
277
293
|
- app/models/concerns/effective_memberships_fee_payment.rb
|
278
294
|
- app/models/concerns/effective_memberships_owner.rb
|
@@ -289,6 +305,7 @@ files:
|
|
289
305
|
- app/models/effective/fee.rb
|
290
306
|
- app/models/effective/fee_payment.rb
|
291
307
|
- app/models/effective/membership.rb
|
308
|
+
- app/models/effective/membership_card.rb
|
292
309
|
- app/models/effective/membership_category.rb
|
293
310
|
- app/models/effective/membership_history.rb
|
294
311
|
- app/models/effective/registrar.rb
|
@@ -346,6 +363,7 @@ files:
|
|
346
363
|
- app/views/effective/applicants/_orders.html.haml
|
347
364
|
- app/views/effective/applicants/_references.html.haml
|
348
365
|
- app/views/effective/applicants/_select.html.haml
|
366
|
+
- app/views/effective/applicants/_stamp.html.haml
|
349
367
|
- app/views/effective/applicants/_summary.html.haml
|
350
368
|
- app/views/effective/applicants/billing.html.haml
|
351
369
|
- app/views/effective/applicants/checkout.html.haml
|
@@ -357,6 +375,7 @@ files:
|
|
357
375
|
- app/views/effective/applicants/files.html.haml
|
358
376
|
- app/views/effective/applicants/references.html.haml
|
359
377
|
- app/views/effective/applicants/select.html.haml
|
378
|
+
- app/views/effective/applicants/stamp.html.haml
|
360
379
|
- app/views/effective/applicants/start.html.haml
|
361
380
|
- app/views/effective/applicants/submitted.html.haml
|
362
381
|
- app/views/effective/applicants/summary.html.haml
|
@@ -379,6 +398,7 @@ files:
|
|
379
398
|
- app/views/effective/fee_payments/summary.html.haml
|
380
399
|
- app/views/effective/fees/_dashboard.html.haml
|
381
400
|
- app/views/effective/fees/_fee.html.haml
|
401
|
+
- app/views/effective/membership_cards/index.html.haml
|
382
402
|
- app/views/effective/memberships/_dashboard.html.haml
|
383
403
|
- app/views/effective/memberships/_membership.html.haml
|
384
404
|
- app/views/effective/memberships_directory/index.html.haml
|