effective_memberships 0.1.23 → 0.2.3
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/applicant_references_controller.rb +9 -0
- data/app/controllers/effective/applicant_references_controller.rb +3 -4
- data/app/controllers/effective/applicants_controller.rb +0 -1
- data/app/controllers/effective/memberships_directory_controller.rb +14 -0
- data/app/datatables/admin/effective_applicant_references_datatable.rb +31 -0
- data/app/datatables/admin/effective_memberships_datatable.rb +2 -2
- data/app/datatables/effective_memberships_directory_datatable.rb +31 -0
- data/app/models/concerns/effective_memberships_owner.rb +33 -3
- data/app/models/concerns/effective_memberships_registrar.rb +38 -1
- data/app/models/effective/membership.rb +2 -1
- data/app/views/admin/applicant_references/_applicant_reference.html.haml +1 -0
- data/app/views/admin/applicants/_form.html.haml +4 -0
- data/app/views/admin/applicants/_status.html.haml +2 -2
- data/app/views/effective/applicant_references/_applicant_reference.html.haml +1 -1
- data/app/views/effective/memberships_directory/index.html.haml +1 -0
- data/config/effective_memberships.rb +1 -1
- data/config/routes.rb +7 -0
- data/lib/effective_memberships/version.rb +1 -1
- metadata +36 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 981aea653a25a94a440ce8599ab99cab71f429ac409a839f5f061d9731239d2e
|
|
4
|
+
data.tar.gz: b88503a72edd658d63e81b49d4b17c4402dde65d717692db4dff53f3b54c02fe
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 67066fc2672c948a59c20cd1422e88d39a5b41be07aecf36ede4dcace2919e91c0d1058c165ebad70af7ed6dedcdc47015f447d89449c330d7cd1edf537a80cb
|
|
7
|
+
data.tar.gz: 7f46ea79c2d79e431f1150224180520850dbc683b399b9758801818d9ab213de67e6e4902a1e3861a1b16a5f54843fe048f5e0c5222d89cda27351ae5f6e28a6
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
module Admin
|
|
2
|
+
class ApplicantReferencesController < ApplicationController
|
|
3
|
+
before_action(:authenticate_user!) if defined?(Devise)
|
|
4
|
+
before_action { EffectiveResources.authorize!(self, :admin, :effective_memberships) }
|
|
5
|
+
|
|
6
|
+
include Effective::CrudController
|
|
7
|
+
|
|
8
|
+
end
|
|
9
|
+
end
|
|
@@ -24,12 +24,11 @@ module Effective
|
|
|
24
24
|
|
|
25
25
|
def permitted_params
|
|
26
26
|
permitted = params.require(:effective_applicant_reference).permit!.except(:token, :last_notified_at, :status, :status_steps)
|
|
27
|
-
authorized = current_user.effective_memberships_owners.include?(resource.applicant.owner) == false
|
|
28
27
|
|
|
29
|
-
if
|
|
30
|
-
permitted
|
|
31
|
-
else
|
|
28
|
+
if current_user && current_user.effective_memberships_owners.include?(resource.applicant&.owner)
|
|
32
29
|
permitted.except(:reservations, :reservations_reason, :work_history, :accept_declaration)
|
|
30
|
+
else
|
|
31
|
+
permitted
|
|
33
32
|
end
|
|
34
33
|
|
|
35
34
|
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module Effective
|
|
2
|
+
class MembershipsDirectoryController < ApplicationController
|
|
3
|
+
include Effective::CrudController
|
|
4
|
+
|
|
5
|
+
def index
|
|
6
|
+
@page_title = 'Directory'
|
|
7
|
+
|
|
8
|
+
EffectiveResources.authorize!(self, :index, Effective::Membership)
|
|
9
|
+
|
|
10
|
+
@datatable = EffectiveResources.best('EffectiveMembershipsDirectoryDatatable').new
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
class Admin::EffectiveApplicantReferencesDatatable < Effective::Datatable
|
|
2
|
+
|
|
3
|
+
datatable do
|
|
4
|
+
order :name
|
|
5
|
+
|
|
6
|
+
col :applicant
|
|
7
|
+
|
|
8
|
+
col :name
|
|
9
|
+
col :email
|
|
10
|
+
col :phone
|
|
11
|
+
|
|
12
|
+
col :status do |reference|
|
|
13
|
+
if reference.submitted?
|
|
14
|
+
'Waiting on response'
|
|
15
|
+
elsif reference.completed?
|
|
16
|
+
'Completed'
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
col :last_notified_at do |reference|
|
|
21
|
+
reference.last_notified_at&.strftime('%F') unless reference.completed?
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
actions_col
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
collection do
|
|
28
|
+
Effective::ApplicantReference.deep.all
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
@@ -8,7 +8,7 @@ module Admin
|
|
|
8
8
|
col :owner_id, visible: false
|
|
9
9
|
col :owner_type, visible: false
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
val :owner
|
|
12
12
|
col :categories
|
|
13
13
|
|
|
14
14
|
col :number
|
|
@@ -28,7 +28,7 @@ module Admin
|
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
collection do
|
|
31
|
-
memberships = Effective::Membership.deep.all
|
|
31
|
+
memberships = Effective::Membership.deep.all.includes(:owner)
|
|
32
32
|
|
|
33
33
|
raise('expected an owner_id, not user_id') if attributes[:user_id].present?
|
|
34
34
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Member Directory Datatable
|
|
2
|
+
class EffectiveMembershipsDirectoryDatatable < Effective::Datatable
|
|
3
|
+
datatable do
|
|
4
|
+
length 100
|
|
5
|
+
|
|
6
|
+
col(:name) { |membership| membership.owner.to_s }
|
|
7
|
+
|
|
8
|
+
col :joined_on
|
|
9
|
+
col :number
|
|
10
|
+
col :categories, search: :string, label: 'Category'
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
collection do
|
|
14
|
+
scope = Effective::Membership.deep.includes(:owner)
|
|
15
|
+
|
|
16
|
+
archived_klasses.each do |klass|
|
|
17
|
+
scope = scope.where.not(owner_id: klass.archived.select('id'), owner_type: klass.name)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
scope
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def archived_klasses
|
|
24
|
+
@archived_klasses ||= begin
|
|
25
|
+
klasses = Effective::Membership.distinct(:owner_type).pluck(:owner_type)
|
|
26
|
+
klasses = klasses.select { |klass| klass.safe_constantize.try(:acts_as_archived?) }
|
|
27
|
+
klasses.map { |klass| klass.constantize }
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
@@ -21,6 +21,8 @@ module EffectiveMembershipsOwner
|
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
included do
|
|
24
|
+
acts_as_role_restricted unless respond_to?(:acts_as_role_restricted?)
|
|
25
|
+
|
|
24
26
|
# App scoped
|
|
25
27
|
has_many :applicants, -> { order(:id) }, inverse_of: :owner, as: :owner
|
|
26
28
|
has_many :fee_payments, -> { order(:id) }, inverse_of: :owner, as: :owner
|
|
@@ -51,10 +53,37 @@ module EffectiveMembershipsOwner
|
|
|
51
53
|
end
|
|
52
54
|
|
|
53
55
|
def effective_memberships_owners
|
|
54
|
-
owners =
|
|
55
|
-
owners =
|
|
56
|
+
owners = organizations if self.class.respond_to?(:effective_organizations_user?)
|
|
57
|
+
owners = users if self.class.respond_to?(:effective_organizations_organization?)
|
|
58
|
+
|
|
59
|
+
owners = Array(owners).reject { |owner| owner.try(:archived?) }
|
|
60
|
+
|
|
61
|
+
owners.presence || [self]
|
|
62
|
+
end
|
|
56
63
|
|
|
57
|
-
|
|
64
|
+
# This is the calculated way of determining if an owner is a member or not.
|
|
65
|
+
# The correct way to check for membership is: current_user.is?(:member)
|
|
66
|
+
def membership_present?
|
|
67
|
+
individual_membership_present? || organization_membership_present?
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def individual_membership_present?
|
|
71
|
+
membership.present? && !membership.marked_for_destruction?
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def organization_membership_present?(except: nil)
|
|
75
|
+
return false unless self.class.respond_to?(:effective_organizations_user?)
|
|
76
|
+
organizations.any? { |organization| organization != except && organization.membership_present? }
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def assign_member_role
|
|
80
|
+
membership_present? ? add_role(:member) : remove_role(:member)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# This can be called by a script to recalculate the owner role based on current membership
|
|
84
|
+
def update_member_role!
|
|
85
|
+
assign_member_role
|
|
86
|
+
save!
|
|
58
87
|
end
|
|
59
88
|
|
|
60
89
|
def outstanding_fee_payment_owners
|
|
@@ -230,6 +259,7 @@ module EffectiveMembershipsOwner
|
|
|
230
259
|
fee
|
|
231
260
|
end
|
|
232
261
|
|
|
262
|
+
# Called by the registrar.
|
|
233
263
|
def update_membership_status!
|
|
234
264
|
raise('expected membership to be present') unless membership.present?
|
|
235
265
|
|
|
@@ -37,7 +37,7 @@ module EffectiveMembershipsRegistrar
|
|
|
37
37
|
categories = Array(categories)
|
|
38
38
|
|
|
39
39
|
raise('expecting a memberships owner') unless owner.class.respond_to?(:effective_memberships_owner?)
|
|
40
|
-
raise('expecting a membership category') unless categories.all? { |cat| cat.class.respond_to?(:effective_memberships_category?) }
|
|
40
|
+
raise('expecting a membership category') unless categories.present? && categories.all? { |cat| cat.class.respond_to?(:effective_memberships_category?) }
|
|
41
41
|
|
|
42
42
|
# Default Date and next number
|
|
43
43
|
date ||= Time.zone.now
|
|
@@ -73,6 +73,9 @@ module EffectiveMembershipsRegistrar
|
|
|
73
73
|
save!(owner, date: date)
|
|
74
74
|
end
|
|
75
75
|
|
|
76
|
+
# Assign member role
|
|
77
|
+
add_member_role(owner)
|
|
78
|
+
|
|
76
79
|
owner.update_membership_status!
|
|
77
80
|
end
|
|
78
81
|
|
|
@@ -113,6 +116,9 @@ module EffectiveMembershipsRegistrar
|
|
|
113
116
|
raise('already has purchased prorated fee') if fee.purchased?
|
|
114
117
|
end
|
|
115
118
|
|
|
119
|
+
# Assign member role
|
|
120
|
+
add_member_role(owner)
|
|
121
|
+
|
|
116
122
|
# Save owner
|
|
117
123
|
save!(owner, date: date)
|
|
118
124
|
end
|
|
@@ -163,6 +169,9 @@ module EffectiveMembershipsRegistrar
|
|
|
163
169
|
owner.outstanding_fee_payment_fees.each { |fee| fee.mark_for_destruction }
|
|
164
170
|
owner.outstanding_fee_payment_orders.each { |order| order.mark_for_destruction }
|
|
165
171
|
|
|
172
|
+
# Remove member role
|
|
173
|
+
remove_member_role(owner)
|
|
174
|
+
|
|
166
175
|
save!(owner, date: date)
|
|
167
176
|
end
|
|
168
177
|
|
|
@@ -293,6 +302,34 @@ module EffectiveMembershipsRegistrar
|
|
|
293
302
|
|
|
294
303
|
protected
|
|
295
304
|
|
|
305
|
+
def add_member_role(owner)
|
|
306
|
+
owner.add_role(:member)
|
|
307
|
+
|
|
308
|
+
if owner.class.respond_to?(:effective_organizations_organization?)
|
|
309
|
+
organization = owner
|
|
310
|
+
organization.representatives.each { |representative| representative.user.add_role(:member) }
|
|
311
|
+
end
|
|
312
|
+
|
|
313
|
+
true
|
|
314
|
+
end
|
|
315
|
+
|
|
316
|
+
def remove_member_role(owner)
|
|
317
|
+
owner.remove_role(:member)
|
|
318
|
+
|
|
319
|
+
if owner.class.respond_to?(:effective_organizations_organization?)
|
|
320
|
+
organization = owner
|
|
321
|
+
|
|
322
|
+
organization.representatives.each do |representative|
|
|
323
|
+
user = representative.user
|
|
324
|
+
member = user.individual_membership_present? || user.organization_membership_present?(except: organization)
|
|
325
|
+
|
|
326
|
+
user.remove_role(:member) if !member
|
|
327
|
+
end
|
|
328
|
+
end
|
|
329
|
+
|
|
330
|
+
true
|
|
331
|
+
end
|
|
332
|
+
|
|
296
333
|
def save!(owner, date: Time.zone.now)
|
|
297
334
|
owner.build_membership_history(start_on: date)
|
|
298
335
|
owner.save!
|
|
@@ -26,7 +26,7 @@ module Effective
|
|
|
26
26
|
timestamps
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
-
scope :deep, -> { includes(:
|
|
29
|
+
scope :deep, -> { includes(membership_categories: :category) }
|
|
30
30
|
scope :sorted, -> { order(:id) }
|
|
31
31
|
|
|
32
32
|
scope :with_paid_fees_through, -> (period = nil) {
|
|
@@ -58,6 +58,7 @@ module Effective
|
|
|
58
58
|
validates :number, presence: true, uniqueness: true
|
|
59
59
|
validates :joined_on, presence: true
|
|
60
60
|
validates :registration_on, presence: true
|
|
61
|
+
validates :membership_categories, presence: true
|
|
61
62
|
|
|
62
63
|
validate(if: -> { owner.present? }) do
|
|
63
64
|
self.errors.add(:owner_id, 'must be a memberships owner') unless owner.class.effective_memberships_owner?
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
= render '/effective/applicant_references/applicant_reference', applicant_reference: applicant_reference, skip_actions: true
|
|
@@ -21,6 +21,10 @@
|
|
|
21
21
|
= tab 'Process' do
|
|
22
22
|
= render 'admin/applicants/form_process', applicant: applicant
|
|
23
23
|
|
|
24
|
+
- if applicant.applicant_references.present?
|
|
25
|
+
= tab 'References' do
|
|
26
|
+
.mb-4= render_inline_datatable(Admin::EffectiveApplicantReferencesDatatable.new(applicant: applicant))
|
|
27
|
+
|
|
24
28
|
- if applicant.fees.present?
|
|
25
29
|
= tab 'Fees' do
|
|
26
30
|
.mb-4= render_inline_datatable(Admin::EffectiveFeesDatatable.new(applicant_id: applicant.to_param))
|
|
@@ -51,9 +51,9 @@
|
|
|
51
51
|
= applicant.min_applicant_references
|
|
52
52
|
Required References Responded
|
|
53
53
|
- else
|
|
54
|
-
- if applicant.applicant_references.
|
|
54
|
+
- if applicant.applicant_references.present?
|
|
55
55
|
%p
|
|
56
|
-
= applicant.applicant_references.count(&:
|
|
56
|
+
= applicant.applicant_references.count(&:completed?)
|
|
57
57
|
= '/'
|
|
58
58
|
= applicant.applicant_references.count
|
|
59
59
|
References Responded
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
- elsif reference.completed?
|
|
24
24
|
Response completed
|
|
25
25
|
|
|
26
|
-
-
|
|
26
|
+
- unless reference.applicant.was_approved?
|
|
27
27
|
%tr
|
|
28
28
|
%th Last Notified at
|
|
29
29
|
%td= reference.last_notified_at&.strftime('%F') || 'Never'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
= render_datatable(@datatable, buttons: false)
|
|
@@ -32,7 +32,7 @@ EffectiveMemberships.setup do |config|
|
|
|
32
32
|
# config.deliver_method = :deliver_later
|
|
33
33
|
|
|
34
34
|
# Default layout
|
|
35
|
-
config.mailer_layout = 'effective_memberships_mailer_layout'
|
|
35
|
+
# config.mailer_layout = 'effective_memberships_mailer_layout'
|
|
36
36
|
|
|
37
37
|
# Default From
|
|
38
38
|
config.mailer_sender = "no-reply@example.com"
|
data/config/routes.rb
CHANGED
|
@@ -16,10 +16,17 @@ EffectiveMemberships::Engine.routes.draw do
|
|
|
16
16
|
resources :fee_payments, only: [:new, :show] do
|
|
17
17
|
resources :build, controller: :fee_payments, only: [:show, :update]
|
|
18
18
|
end
|
|
19
|
+
|
|
20
|
+
get '/directory', to: 'memberships_directory#index'
|
|
19
21
|
end
|
|
20
22
|
|
|
21
23
|
namespace :admin do
|
|
22
24
|
resources :applicants, except: [:new, :create, :show]
|
|
25
|
+
|
|
26
|
+
resources :applicant_references, only: [:show] do
|
|
27
|
+
post :notify, on: :member
|
|
28
|
+
end
|
|
29
|
+
|
|
23
30
|
resources :fees
|
|
24
31
|
resources :categories, except: [:show]
|
|
25
32
|
|
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.
|
|
4
|
+
version: 0.2.3
|
|
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-01-
|
|
11
|
+
date: 2022-01-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -80,6 +80,20 @@ dependencies:
|
|
|
80
80
|
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '0'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: effective_roles
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - ">="
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '0'
|
|
90
|
+
type: :runtime
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - ">="
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '0'
|
|
83
97
|
- !ruby/object:Gem::Dependency
|
|
84
98
|
name: wicked
|
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -164,6 +178,20 @@ dependencies:
|
|
|
164
178
|
- - ">="
|
|
165
179
|
- !ruby/object:Gem::Version
|
|
166
180
|
version: '0'
|
|
181
|
+
- !ruby/object:Gem::Dependency
|
|
182
|
+
name: effective_organizations
|
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
|
184
|
+
requirements:
|
|
185
|
+
- - ">="
|
|
186
|
+
- !ruby/object:Gem::Version
|
|
187
|
+
version: '0'
|
|
188
|
+
type: :development
|
|
189
|
+
prerelease: false
|
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
191
|
+
requirements:
|
|
192
|
+
- - ">="
|
|
193
|
+
- !ruby/object:Gem::Version
|
|
194
|
+
version: '0'
|
|
167
195
|
- !ruby/object:Gem::Dependency
|
|
168
196
|
name: effective_developer
|
|
169
197
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -212,6 +240,7 @@ files:
|
|
|
212
240
|
- app/assets/stylesheets/effective_memberships/base.scss
|
|
213
241
|
- app/controllers/admin/applicant_course_areas_controller.rb
|
|
214
242
|
- app/controllers/admin/applicant_course_names_controller.rb
|
|
243
|
+
- app/controllers/admin/applicant_references_controller.rb
|
|
215
244
|
- app/controllers/admin/applicants_controller.rb
|
|
216
245
|
- app/controllers/admin/categories_controller.rb
|
|
217
246
|
- app/controllers/admin/fee_payments_controller.rb
|
|
@@ -221,8 +250,10 @@ files:
|
|
|
221
250
|
- app/controllers/effective/applicant_references_controller.rb
|
|
222
251
|
- app/controllers/effective/applicants_controller.rb
|
|
223
252
|
- app/controllers/effective/fee_payments_controller.rb
|
|
253
|
+
- app/controllers/effective/memberships_directory_controller.rb
|
|
224
254
|
- app/datatables/admin/effective_applicant_course_areas_datatable.rb
|
|
225
255
|
- app/datatables/admin/effective_applicant_course_names_datatable.rb
|
|
256
|
+
- app/datatables/admin/effective_applicant_references_datatable.rb
|
|
226
257
|
- app/datatables/admin/effective_applicants_datatable.rb
|
|
227
258
|
- app/datatables/admin/effective_categories_datatable.rb
|
|
228
259
|
- app/datatables/admin/effective_fee_payments_datatable.rb
|
|
@@ -235,6 +266,7 @@ files:
|
|
|
235
266
|
- app/datatables/effective_applicant_references_datatable.rb
|
|
236
267
|
- app/datatables/effective_applicants_datatable.rb
|
|
237
268
|
- app/datatables/effective_fee_payments_datatable.rb
|
|
269
|
+
- app/datatables/effective_memberships_directory_datatable.rb
|
|
238
270
|
- app/helpers/effective_memberships_helper.rb
|
|
239
271
|
- app/mailers/effective/memberships_mailer.rb
|
|
240
272
|
- app/models/concerns/effective_memberships_applicant.rb
|
|
@@ -263,6 +295,7 @@ files:
|
|
|
263
295
|
- app/views/admin/applicant_course_areas/_form_applicant_course_area.html.haml
|
|
264
296
|
- app/views/admin/applicant_course_areas/index.html.haml
|
|
265
297
|
- app/views/admin/applicant_course_name/_form.html.haml
|
|
298
|
+
- app/views/admin/applicant_references/_applicant_reference.html.haml
|
|
266
299
|
- app/views/admin/applicants/_form.html.haml
|
|
267
300
|
- app/views/admin/applicants/_form_approve.html.haml
|
|
268
301
|
- app/views/admin/applicants/_form_decline.html.haml
|
|
@@ -344,6 +377,7 @@ files:
|
|
|
344
377
|
- app/views/effective/fees/_fee.html.haml
|
|
345
378
|
- app/views/effective/memberships/_dashboard.html.haml
|
|
346
379
|
- app/views/effective/memberships/_membership.html.haml
|
|
380
|
+
- app/views/effective/memberships_directory/index.html.haml
|
|
347
381
|
- app/views/effective/memberships_mailer/applicant_approved.liquid
|
|
348
382
|
- app/views/effective/memberships_mailer/applicant_declined.liquid
|
|
349
383
|
- app/views/effective/memberships_mailer/applicant_reference_notification.liquid
|