effective_memberships 0.4.10 → 0.4.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/datatables/effective_applicant_endorsements_datatable.rb +1 -0
- data/app/datatables/effective_applicant_equivalences_datatable.rb +23 -0
- data/app/datatables/effective_applicant_experiences_datatable.rb +1 -0
- data/app/models/concerns/effective_memberships_applicant.rb +61 -10
- data/app/models/concerns/effective_memberships_category.rb +2 -0
- data/app/models/effective/applicant_endorsement.rb +1 -1
- data/app/models/effective/applicant_equivalence.rb +32 -0
- data/app/views/admin/applicants/_form.html.haml +4 -0
- data/app/views/admin/applicants/_form_transcripts.html.haml +12 -0
- data/app/views/admin/categories/_form_applicant_steps.html.haml +6 -0
- data/app/views/effective/applicant_endorsements/complete.html.haml +2 -3
- data/app/views/effective/applicant_endorsements/edit.html.haml +6 -7
- data/app/views/effective/applicant_references/complete.html.haml +2 -3
- data/app/views/effective/applicant_references/edit.html.haml +6 -7
- data/app/views/effective/applicants/_applicant.html.haml +2 -1
- data/app/views/effective/applicants/_course_amounts.html.haml +9 -17
- data/app/views/effective/applicants/_declarations.html.haml +9 -16
- data/app/views/effective/applicants/_demographics.html.haml +2 -9
- data/app/views/effective/applicants/_education.html.haml +6 -13
- data/app/views/effective/applicants/_endorsements.html.haml +6 -13
- data/app/views/effective/applicants/_equivalences.html.haml +3 -0
- data/app/views/effective/applicants/_experience.html.haml +18 -25
- data/app/views/effective/applicants/_files.html.haml +16 -23
- data/app/views/effective/applicants/_organization.html.haml +2 -9
- data/app/views/effective/applicants/_references.html.haml +6 -13
- data/app/views/effective/applicants/_stamp.html.haml +23 -30
- data/app/views/effective/applicants/_summary.html.haml +5 -0
- data/app/views/effective/applicants/_transcripts.html.haml +30 -0
- data/app/views/effective/applicants/_transcripts_requirements.html.haml +14 -0
- data/app/views/effective/applicants/billing.html.haml +6 -7
- data/app/views/effective/applicants/checkout.html.haml +2 -3
- data/app/views/effective/applicants/course_amounts.html.haml +48 -47
- data/app/views/effective/applicants/declarations.html.haml +10 -9
- data/app/views/effective/applicants/demographics.html.haml +6 -7
- data/app/views/effective/applicants/education.html.haml +16 -17
- data/app/views/effective/applicants/endorsements.html.haml +24 -16
- data/app/views/effective/applicants/equivalences.html.haml +24 -0
- data/app/views/effective/applicants/experience.html.haml +35 -36
- data/app/views/effective/applicants/files.html.haml +9 -8
- data/app/views/effective/applicants/organization.html.haml +10 -11
- data/app/views/effective/applicants/references.html.haml +17 -16
- data/app/views/effective/applicants/select.html.haml +25 -26
- data/app/views/effective/applicants/stamp.html.haml +16 -17
- data/app/views/effective/applicants/start.html.haml +4 -5
- data/app/views/effective/applicants/submitted.html.haml +9 -10
- data/app/views/effective/applicants/transcripts.html.haml +13 -0
- data/app/views/effective/fee_payments/_declarations.html.haml +9 -16
- data/app/views/effective/fee_payments/_demographics.html.haml +2 -9
- data/app/views/effective/fee_payments/_fee_payment.html.haml +2 -1
- data/app/views/effective/fee_payments/_organization.html.haml +2 -9
- data/app/views/effective/fee_payments/billing.html.haml +6 -7
- data/app/views/effective/fee_payments/checkout.html.haml +2 -3
- data/app/views/effective/fee_payments/declarations.html.haml +8 -9
- data/app/views/effective/fee_payments/demographics.html.haml +6 -7
- data/app/views/effective/fee_payments/organization.html.haml +10 -11
- data/app/views/effective/fee_payments/start.html.haml +23 -24
- data/app/views/effective/fee_payments/submitted.html.haml +2 -2
- data/db/migrate/01_create_effective_memberships.rb.erb +24 -0
- data/lib/effective_memberships/version.rb +1 -1
- metadata +10 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 013c543f704442649f57e61b6d381da7abd27a181b8cfb00eafcca8713eec4d0
|
4
|
+
data.tar.gz: 71d84f67fad2d7f5718fd6186eed8ee3877ccc32292dcd56456fe93bd73918fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6e975206c149832fc53de2db37b08405c21b22021e1fdae0f5cbd6d619747f9288b86f38f22a943fe27e69a963af44fb9b201fa43cc3bac20d90211ea8cb557
|
7
|
+
data.tar.gz: 3ba98f86d83f2afc099d57463495aa7fa643a72af6b230156538eeebc0bb6b306bd2bae12726e651fc59b38cf1c2db353db881c6149049370d34aae189370657
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class EffectiveApplicantEquivalencesDatatable < Effective::Datatable
|
2
|
+
datatable do
|
3
|
+
length :all
|
4
|
+
order :start_on
|
5
|
+
|
6
|
+
col :start_on
|
7
|
+
|
8
|
+
col :end_on do |applicant_equivalence|
|
9
|
+
applicant_equivalence.end_on&.strftime('%F') || '-'
|
10
|
+
end
|
11
|
+
|
12
|
+
col :name
|
13
|
+
col :notes
|
14
|
+
end
|
15
|
+
|
16
|
+
collection do
|
17
|
+
Effective::ApplicantEquivalence.deep.where(applicant: applicant)
|
18
|
+
end
|
19
|
+
|
20
|
+
def applicant
|
21
|
+
@applicant ||= EffectiveMemberships.Applicant.where(id: attributes[:applicant_id]).first!
|
22
|
+
end
|
23
|
+
end
|
@@ -24,6 +24,11 @@ module EffectiveMembershipsApplicant
|
|
24
24
|
def categories
|
25
25
|
['Apply to Join', 'Apply to Reclassify']
|
26
26
|
end
|
27
|
+
|
28
|
+
def transcripts_statuses
|
29
|
+
[]
|
30
|
+
end
|
31
|
+
|
27
32
|
end
|
28
33
|
|
29
34
|
included do
|
@@ -48,6 +53,7 @@ module EffectiveMembershipsApplicant
|
|
48
53
|
organization: 'Organization', # Organization only. Organization fields.
|
49
54
|
education: 'Education',
|
50
55
|
course_amounts: 'Courses',
|
56
|
+
transcripts: 'Transcripts',
|
51
57
|
experience: 'Work Experience',
|
52
58
|
references: 'References',
|
53
59
|
files: 'Attach Files',
|
@@ -64,6 +70,10 @@ module EffectiveMembershipsApplicant
|
|
64
70
|
log_changes(except: :wizard_steps) if respond_to?(:log_changes)
|
65
71
|
|
66
72
|
has_many_attached :applicant_files
|
73
|
+
has_many_attached :transcripts
|
74
|
+
|
75
|
+
# Transcripts Step
|
76
|
+
attr_accessor :declare_will_send_transcripts
|
67
77
|
|
68
78
|
# Declarations Step
|
69
79
|
attr_accessor :declare_code_of_ethics
|
@@ -96,6 +106,9 @@ module EffectiveMembershipsApplicant
|
|
96
106
|
has_many :applicant_endorsements, -> { order(:id) }, class_name: 'Effective::ApplicantEndorsement', as: :applicant, inverse_of: :applicant, dependent: :destroy
|
97
107
|
accepts_nested_attributes_for :applicant_endorsements, reject_if: :all_blank, allow_destroy: true
|
98
108
|
|
109
|
+
has_many :applicant_equivalences, -> { order(:id) }, class_name: 'Effective::ApplicantEquivalence', as: :applicant, inverse_of: :applicant, dependent: :destroy
|
110
|
+
accepts_nested_attributes_for :applicant_equivalences, reject_if: :all_blank, allow_destroy: true
|
111
|
+
|
99
112
|
has_many :applicant_experiences, -> { order(:id) }, class_name: 'Effective::ApplicantExperience', as: :applicant, inverse_of: :applicant, dependent: :destroy
|
100
113
|
accepts_nested_attributes_for :applicant_experiences, reject_if: :all_blank, allow_destroy: true
|
101
114
|
|
@@ -140,6 +153,11 @@ module EffectiveMembershipsApplicant
|
|
140
153
|
applicant_experiences_months :integer
|
141
154
|
applicant_experiences_details :text
|
142
155
|
|
156
|
+
# Transcripts
|
157
|
+
transcripts_received_on :date
|
158
|
+
transcripts_status :string
|
159
|
+
transcripts_details :text
|
160
|
+
|
143
161
|
# Additional Information
|
144
162
|
additional_information :text
|
145
163
|
|
@@ -251,6 +269,16 @@ module EffectiveMembershipsApplicant
|
|
251
269
|
end
|
252
270
|
end
|
253
271
|
|
272
|
+
# Applicant Equivalences Step
|
273
|
+
with_options(if: -> { current_step == :equivalences }) do
|
274
|
+
validate do
|
275
|
+
required = min_applicant_equivalences()
|
276
|
+
existing = applicant_equivalences().reject(&:marked_for_destruction?).length
|
277
|
+
|
278
|
+
self.errors.add(:applicant_equivalences, "please include #{required} or more equivalences") if existing < required
|
279
|
+
end
|
280
|
+
end
|
281
|
+
|
254
282
|
# Applicant References Step
|
255
283
|
with_options(if: -> { current_step == :references }) do
|
256
284
|
validate do
|
@@ -271,6 +299,11 @@ module EffectiveMembershipsApplicant
|
|
271
299
|
end
|
272
300
|
end
|
273
301
|
|
302
|
+
# Transcripts step
|
303
|
+
with_options(if: -> { current_step == :transcripts }) do
|
304
|
+
validates :declare_will_send_transcripts, acceptance: true
|
305
|
+
end
|
306
|
+
|
274
307
|
# Declarations Step
|
275
308
|
with_options(if: -> { current_step == :declarations }) do
|
276
309
|
validates :declare_code_of_ethics, acceptance: true
|
@@ -535,11 +568,33 @@ module EffectiveMembershipsApplicant
|
|
535
568
|
category&.min_applicant_references.to_i
|
536
569
|
end
|
537
570
|
|
571
|
+
def applicant_references_required?
|
572
|
+
min_applicant_references > 0
|
573
|
+
end
|
574
|
+
|
538
575
|
# Endorsements Step
|
539
576
|
def min_applicant_endorsements
|
540
577
|
category&.min_applicant_endorsements.to_i
|
541
578
|
end
|
542
579
|
|
580
|
+
def applicant_endorsements_required?
|
581
|
+
min_applicant_endorsements > 0
|
582
|
+
end
|
583
|
+
|
584
|
+
# Equivalences Step
|
585
|
+
def min_applicant_equivalences
|
586
|
+
category&.min_applicant_equivalences.to_i
|
587
|
+
end
|
588
|
+
|
589
|
+
# Transcripts Step
|
590
|
+
def transcripts_received?
|
591
|
+
transcripts_received_on_was.present?
|
592
|
+
end
|
593
|
+
|
594
|
+
def transcripts_required?
|
595
|
+
category.applicant_wizard_steps.include?(:transcripts)
|
596
|
+
end
|
597
|
+
|
543
598
|
# Files Step
|
544
599
|
def min_applicant_files
|
545
600
|
category&.min_applicant_files.to_i
|
@@ -555,26 +610,22 @@ module EffectiveMembershipsApplicant
|
|
555
610
|
)
|
556
611
|
end
|
557
612
|
|
558
|
-
def applicant_endorsements_required?
|
559
|
-
min_applicant_endorsements > 0
|
560
|
-
end
|
561
|
-
|
562
|
-
def applicant_references_required?
|
563
|
-
min_applicant_references > 0
|
564
|
-
end
|
565
|
-
|
566
613
|
# When an application is submitted, these must be done to go to completed.
|
567
614
|
# An Admin can override this and just set them to completed.
|
568
615
|
def completed_requirements
|
569
616
|
requirements = {}
|
570
617
|
return requirements unless category.present?
|
571
618
|
|
619
|
+
if category.applicant_wizard_steps.include?(:endorsements) || applicant_endorsements_required?
|
620
|
+
requirements['Applicant Endorsements'] = (!applicant_endorsements_required? || applicant_endorsements.count(&:completed?) >= min_applicant_endorsements)
|
621
|
+
end
|
622
|
+
|
572
623
|
if category.applicant_wizard_steps.include?(:references) || applicant_references_required?
|
573
624
|
requirements['Applicant References'] = (!applicant_references_required? || applicant_references.count(&:completed?) >= min_applicant_references)
|
574
625
|
end
|
575
626
|
|
576
|
-
if category.applicant_wizard_steps.include?(:
|
577
|
-
requirements['Applicant
|
627
|
+
if category.applicant_wizard_steps.include?(:transcripts) || transcripts_required?
|
628
|
+
requirements['Applicant Transcripts'] = (!transcripts_required? || transcripts_received?)
|
578
629
|
end
|
579
630
|
|
580
631
|
requirements
|
@@ -55,6 +55,8 @@ module EffectiveMembershipsCategory
|
|
55
55
|
applicant_wizard_steps :text
|
56
56
|
|
57
57
|
min_applicant_educations :integer
|
58
|
+
min_applicant_endorsements :integer
|
59
|
+
min_applicant_equivalences :integer
|
58
60
|
min_applicant_experiences_months :integer
|
59
61
|
min_applicant_references :integer
|
60
62
|
min_applicant_courses :integer
|
@@ -42,7 +42,7 @@ module Effective
|
|
42
42
|
|
43
43
|
# All step validations
|
44
44
|
validates :applicant, presence: true
|
45
|
-
validates :
|
45
|
+
validates :endorser_id, presence: true, unless: -> { unknown_member? }
|
46
46
|
|
47
47
|
with_options(if: -> { unknown_member? }) do
|
48
48
|
validates :endorser_email, presence: true, email: true
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Effective
|
2
|
+
class ApplicantEquivalence < ActiveRecord::Base
|
3
|
+
belongs_to :applicant, polymorphic: true
|
4
|
+
|
5
|
+
log_changes(to: :applicant) if respond_to?(:log_changes)
|
6
|
+
|
7
|
+
effective_resource do
|
8
|
+
name :string
|
9
|
+
|
10
|
+
start_on :date
|
11
|
+
end_on :date
|
12
|
+
|
13
|
+
notes :text
|
14
|
+
|
15
|
+
timestamps
|
16
|
+
end
|
17
|
+
|
18
|
+
scope :deep, -> { all }
|
19
|
+
|
20
|
+
validates :name, presence: true
|
21
|
+
validates :start_on, presence: true
|
22
|
+
|
23
|
+
validate(if: -> { start_on.present? && end_on.present? }) do
|
24
|
+
errors.add(:end_on, 'must be after start date') unless start_on < end_on
|
25
|
+
end
|
26
|
+
|
27
|
+
def to_s
|
28
|
+
name || 'equivalence'
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
@@ -29,6 +29,10 @@
|
|
29
29
|
= tab 'Endorsements' do
|
30
30
|
.mb-4= render_inline_datatable(Admin::EffectiveApplicantEndorsementsDatatable.new(applicant: applicant))
|
31
31
|
|
32
|
+
- if applicant.transcripts_required?
|
33
|
+
= tab 'Transcripts' do
|
34
|
+
= render 'admin/applicants/form_transcripts', applicant: applicant
|
35
|
+
|
32
36
|
- if applicant.fees.present? || applicant.orders.present?
|
33
37
|
= tab 'Fees' do
|
34
38
|
.mb-4
|
@@ -0,0 +1,12 @@
|
|
1
|
+
= effective_form_with(model: [:admin, applicant], engine: true) do |f|
|
2
|
+
= f.date_field :transcripts_received_on
|
3
|
+
|
4
|
+
- statuses = f.object.class.transcripts_statuses
|
5
|
+
|
6
|
+
- if statuses.present?
|
7
|
+
= f.select_field :transcripts_status, statuses
|
8
|
+
|
9
|
+
= f.file_field :transcripts
|
10
|
+
= f.text_area :transcripts_details, hint: 'These details will be displayed to the applicant'
|
11
|
+
|
12
|
+
= f.submit 'Save Transcripts', border: false, center: true
|
@@ -38,6 +38,12 @@
|
|
38
38
|
%td= f.number_field :min_applicant_endorsements, label: false
|
39
39
|
%td minimimum number of endorsements
|
40
40
|
|
41
|
+
- if applicant.wizard_step_keys.include?(:equivalences)
|
42
|
+
%tr
|
43
|
+
%td= applicant.wizard_step_title(:equivalences)
|
44
|
+
%td= f.number_field :min_applicant_equivalences, label: false
|
45
|
+
%td minimimum number of equivalent memberships
|
46
|
+
|
41
47
|
- if applicant.wizard_step_keys.include?(:references)
|
42
48
|
%tr
|
43
49
|
%td= applicant.wizard_step_title(:references)
|
@@ -1,3 +1,2 @@
|
|
1
|
-
|
2
|
-
.
|
3
|
-
%p Thank you! The confidential endorsement has been completed.
|
1
|
+
= card do
|
2
|
+
%p Thank you! The confidential endorsement has been completed.
|
@@ -1,8 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
=
|
6
|
-
%strong= @applicant_endorsement.applicant.owner
|
1
|
+
= card do
|
2
|
+
%p
|
3
|
+
Please provide a endorsement for the applicant
|
4
|
+
= succeed('.') do
|
5
|
+
%strong= @applicant_endorsement.applicant.owner
|
7
6
|
|
8
|
-
|
7
|
+
= render('form_declaration', applicant_endorsement: @applicant_endorsement)
|
@@ -1,3 +1,2 @@
|
|
1
|
-
|
2
|
-
.
|
3
|
-
%p Thank you! The confidential reference has been completed.
|
1
|
+
= card do
|
2
|
+
%p Thank you! The confidential reference has been completed.
|
@@ -1,8 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
=
|
6
|
-
%strong= @applicant_reference.applicant.owner
|
1
|
+
= card do
|
2
|
+
%p
|
3
|
+
Please provide a reference for the applicant
|
4
|
+
= succeed('.') do
|
5
|
+
%strong= @applicant_reference.applicant.owner
|
7
6
|
|
8
|
-
|
7
|
+
= render('form_declaration', applicant_reference: @applicant_reference)
|
@@ -1,19 +1,11 @@
|
|
1
|
-
|
2
|
-
.
|
3
|
-
.
|
4
|
-
.col-sm
|
5
|
-
%h5.card-title= applicant.wizard_step_title(:course_amounts)
|
6
|
-
.col-sm-auto.text-right
|
7
|
-
= link_to('Edit', wizard_path(:course_amounts)) if edit_effective_wizard?
|
1
|
+
= wizard_card(applicant) do
|
2
|
+
- applicant.applicant_course_areas_collection.each do |area|
|
3
|
+
- datatable = EffectiveApplicantCoursesDatatable.new(applicant: applicant, applicant_course_area_id: area.id)
|
8
4
|
|
5
|
+
.mb-4
|
6
|
+
%h6= area
|
7
|
+
= render_simple_datatable(datatable)
|
8
|
+
%p #{area} courses: #{applicant.applicant_course_area_sum(applicant_course_area: area)}
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
.mb-4
|
14
|
-
%h6= area
|
15
|
-
= render_simple_datatable(datatable)
|
16
|
-
%p #{area} courses: #{applicant.applicant_course_area_sum(applicant_course_area: area)}
|
17
|
-
|
18
|
-
%p
|
19
|
-
%strong All courses: #{pluralize(applicant.applicant_courses_sum, 'total course')}
|
10
|
+
%p
|
11
|
+
%strong All courses: #{pluralize(applicant.applicant_courses_sum, 'total course')}
|
@@ -1,16 +1,9 @@
|
|
1
|
-
|
2
|
-
.
|
3
|
-
|
4
|
-
|
5
|
-
%
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
%tbody
|
11
|
-
%tr
|
12
|
-
%td= icon('check')
|
13
|
-
%td Yes, I hereby certify that I have read and will adhere to the Code of Ethics
|
14
|
-
%tr
|
15
|
-
%td= icon('check')
|
16
|
-
%td Yes, I hereby certify that the statements and information contained herein are correct
|
1
|
+
= wizard_card(applicant) do
|
2
|
+
%table.table.table-sm
|
3
|
+
%tbody
|
4
|
+
%tr
|
5
|
+
%td= icon('check')
|
6
|
+
%td Yes, I hereby certify that I have read and will adhere to the Code of Ethics
|
7
|
+
%tr
|
8
|
+
%td= icon('check')
|
9
|
+
%td Yes, I hereby certify that the statements and information contained herein are correct
|
@@ -1,9 +1,2 @@
|
|
1
|
-
|
2
|
-
.
|
3
|
-
.row
|
4
|
-
.col-sm
|
5
|
-
%h5.card-title= applicant.wizard_step_title(:demographics)
|
6
|
-
.col-sm-auto.text-right
|
7
|
-
= link_to('Edit', wizard_path(:demographics)) if edit_effective_wizard?
|
8
|
-
|
9
|
-
= render 'users/demographics', parent: applicant, user: applicant.user
|
1
|
+
= wizard_card(applicant) do
|
2
|
+
= render 'users/demographics', parent: applicant, user: applicant.user
|
@@ -1,14 +1,7 @@
|
|
1
|
-
|
2
|
-
.
|
3
|
-
|
4
|
-
.col-sm
|
5
|
-
%h5.card-title= applicant.wizard_step_title(:education)
|
6
|
-
.col-sm-auto.text-right
|
7
|
-
= link_to('Edit', wizard_path(:education)) if edit_effective_wizard?
|
1
|
+
= wizard_card(applicant) do
|
2
|
+
- datatable = EffectiveApplicantEducationsDatatable.new(applicant: applicant)
|
3
|
+
.mb-4= render_simple_datatable(datatable)
|
8
4
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
- if applicant.applicant_educations_details.present?
|
13
|
-
%h6 Additional Education Details
|
14
|
-
= simple_format(applicant.applicant_educations_details)
|
5
|
+
- if applicant.applicant_educations_details.present?
|
6
|
+
%h6 Additional Education Details
|
7
|
+
= simple_format(applicant.applicant_educations_details)
|
@@ -1,15 +1,8 @@
|
|
1
|
-
|
2
|
-
.
|
3
|
-
|
4
|
-
.
|
5
|
-
%h5.card-title= applicant.wizard_step_title(:endorsements)
|
6
|
-
.col-sm-auto.text-right
|
7
|
-
= link_to('Edit', wizard_path(:endorsements)) if edit_effective_wizard?
|
1
|
+
= wizard_card(applicant) do
|
2
|
+
- applicant.applicant_endorsements.each_with_index do |applicant_endorsement, index|
|
3
|
+
- if index > 0
|
4
|
+
.mb-4
|
8
5
|
|
9
|
-
|
10
|
-
- if index > 0
|
11
|
-
.mb-4
|
6
|
+
%h6 Endorsement ##{index + 1}
|
12
7
|
|
13
|
-
|
14
|
-
|
15
|
-
= render('effective/applicant_endorsements/applicant_endorsement', applicant_endorsement: applicant_endorsement)
|
8
|
+
= render('effective/applicant_endorsements/applicant_endorsement', applicant_endorsement: applicant_endorsement)
|
@@ -1,28 +1,21 @@
|
|
1
|
-
|
2
|
-
.
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
= wizard_card(applicant) do
|
2
|
+
%table.table
|
3
|
+
%tbody
|
4
|
+
-# %tr
|
5
|
+
-# %th CV / Resume Upload
|
6
|
+
-# %td
|
7
|
+
-# - if applicant.cv.attached?
|
8
|
+
-# = link_to(applicant.cv.filename, url_for(applicant.cv), target: '_blank')
|
9
|
+
-# - else
|
10
|
+
-# None
|
8
11
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
-# %th CV / Resume Upload
|
13
|
-
-# %td
|
14
|
-
-# - if applicant.cv.attached?
|
15
|
-
-# = link_to(applicant.cv.filename, url_for(applicant.cv), target: '_blank')
|
16
|
-
-# - else
|
17
|
-
-# None
|
12
|
+
%tr
|
13
|
+
%th Total Months
|
14
|
+
%td= applicant.applicant_experiences_months
|
18
15
|
|
19
|
-
|
20
|
-
|
21
|
-
%td= applicant.applicant_experiences_months
|
16
|
+
- datatable = EffectiveApplicantExperiencesDatatable.new(applicant: applicant)
|
17
|
+
.mb-4= render_simple_datatable(datatable)
|
22
18
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
- if applicant.applicant_experiences_details.present?
|
27
|
-
%h6 Additional Experiences Details
|
28
|
-
= simple_format(applicant.applicant_experiences_details)
|
19
|
+
- if applicant.applicant_experiences_details.present?
|
20
|
+
%h6 Additional Experiences Details
|
21
|
+
= simple_format(applicant.applicant_experiences_details)
|
@@ -1,27 +1,20 @@
|
|
1
|
-
|
2
|
-
.
|
3
|
-
|
4
|
-
.
|
5
|
-
%h5.card-title= applicant.wizard_step_title(:files)
|
6
|
-
.col-sm-auto.text-right
|
7
|
-
= link_to('Edit', wizard_path(:files)) if edit_effective_wizard?
|
1
|
+
= wizard_card(applicant) do
|
2
|
+
%table.table.table-sm
|
3
|
+
%tbody
|
4
|
+
- applicant.applicant_files.each do |file|
|
8
5
|
|
9
|
-
|
10
|
-
|
11
|
-
- applicant.applicant_files.each do |file|
|
6
|
+
- url = url_for(file)
|
7
|
+
- title = file.filename.to_s
|
12
8
|
|
13
|
-
|
14
|
-
|
9
|
+
- image_tag = content_tag(:img, '', class: '', src: url, alt: title) if file.image?
|
10
|
+
- link_tag = link_to('Download', url, target: '_blank')
|
11
|
+
- size_tag = (file.content_type + '<br>' + number_to_human_size(file.byte_size)).html_safe
|
15
12
|
|
16
|
-
|
17
|
-
|
18
|
-
|
13
|
+
%tr
|
14
|
+
%td= image_tag
|
15
|
+
%td= title
|
16
|
+
%td= size_tag
|
17
|
+
%td= link_tag
|
19
18
|
|
20
|
-
|
21
|
-
|
22
|
-
%td= title
|
23
|
-
%td= size_tag
|
24
|
-
%td= link_tag
|
25
|
-
|
26
|
-
- if applicant.applicant_files.blank?
|
27
|
-
%p No files attached
|
19
|
+
- if applicant.applicant_files.blank?
|
20
|
+
%p No files attached
|
@@ -1,9 +1,2 @@
|
|
1
|
-
|
2
|
-
.
|
3
|
-
.row
|
4
|
-
.col-sm
|
5
|
-
%h5.card-title= applicant.wizard_step_title(:organization)
|
6
|
-
.col-sm-auto.text-right
|
7
|
-
= link_to('Edit', wizard_path(:organization)) if edit_effective_wizard?
|
8
|
-
|
9
|
-
= render 'organizations/demographics', parent: applicant, organization: applicant.organization
|
1
|
+
= wizard_card(applicant) do
|
2
|
+
= render 'organizations/demographics', parent: applicant, organization: applicant.organization
|
@@ -1,15 +1,8 @@
|
|
1
|
-
|
2
|
-
.
|
3
|
-
|
4
|
-
.
|
5
|
-
%h5.card-title= applicant.wizard_step_title(:references)
|
6
|
-
.col-sm-auto.text-right
|
7
|
-
= link_to('Edit', wizard_path(:references)) if edit_effective_wizard?
|
1
|
+
= wizard_card(applicant) do
|
2
|
+
- applicant.applicant_references.each_with_index do |applicant_reference, index|
|
3
|
+
- if index > 0
|
4
|
+
.mb-4
|
8
5
|
|
9
|
-
|
10
|
-
- if index > 0
|
11
|
-
.mb-4
|
6
|
+
%h6 Reference ##{index + 1}
|
12
7
|
|
13
|
-
|
14
|
-
|
15
|
-
= render('effective/applicant_references/applicant_reference', applicant_reference: applicant_reference)
|
8
|
+
= render('effective/applicant_references/applicant_reference', applicant_reference: applicant_reference)
|
@@ -1,36 +1,29 @@
|
|
1
|
-
|
2
|
-
.
|
3
|
-
.
|
4
|
-
|
5
|
-
%
|
6
|
-
|
7
|
-
|
1
|
+
= wizard_card(applicant) do
|
2
|
+
- applicant.stamps.each do |stamp|
|
3
|
+
%table.table.table-sm
|
4
|
+
%tbody
|
5
|
+
%tr
|
6
|
+
%th Name
|
7
|
+
%td= stamp.name
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
%tr
|
13
|
-
%th Name
|
14
|
-
%td= stamp.name
|
9
|
+
%tr
|
10
|
+
%th Name Confirmation
|
11
|
+
%td= stamp.name_confirmation
|
15
12
|
|
16
|
-
|
17
|
-
|
18
|
-
|
13
|
+
%tr
|
14
|
+
%th Category
|
15
|
+
%td= stamp.category
|
19
16
|
|
17
|
+
- if stamp.shipping_address.present?
|
20
18
|
%tr
|
21
|
-
%th
|
22
|
-
%td= stamp.
|
23
|
-
|
24
|
-
- if stamp.shipping_address.present?
|
25
|
-
%tr
|
26
|
-
%th Shipping Address
|
27
|
-
%td= stamp.shipping_address.to_html
|
19
|
+
%th Shipping Address
|
20
|
+
%td= stamp.shipping_address.to_html
|
28
21
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
22
|
+
- if applicant.was_approved?
|
23
|
+
%tr
|
24
|
+
%th Submitted
|
25
|
+
%td= stamp.submitted_at&.strftime('%F') || '-'
|
33
26
|
|
34
|
-
|
35
|
-
|
36
|
-
|
27
|
+
%tr
|
28
|
+
%th Issued
|
29
|
+
%td= stamp.issued_at&.strftime('%F') || 'Not Issued'
|