fe 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +36 -1
- data/Rakefile +22 -13
- data/app/assets/javascripts/application.js.erb +1 -0
- data/app/assets/javascripts/fe/admin.js +1 -4
- data/app/assets/javascripts/fe/{qe.admin.js → fe.admin.js} +15 -0
- data/app/assets/javascripts/fe/{qe.common.js → fe.common.js} +0 -0
- data/app/assets/javascripts/fe/{qe.public.js → fe.public.js} +115 -27
- data/app/assets/javascripts/fe/rails.extra.js +6 -0
- data/app/assets/stylesheets/fe/{qe.screen.css.scss.erb → fe.screen.css.scss.erb} +12 -18
- data/app/controllers/fe/admin/elements_controller.rb +4 -4
- data/app/controllers/fe/admin/email_templates_controller.rb +10 -4
- data/app/controllers/fe/admin/question_pages_controller.rb +3 -3
- data/app/controllers/fe/admin/question_sheets_controller.rb +6 -5
- data/app/controllers/fe/applications_controller.rb +183 -0
- data/app/controllers/fe/concerns/answer_pages_controller_concern.rb +5 -2
- data/app/controllers/fe/concerns/answer_sheets_controller_concern.rb +10 -6
- data/app/controllers/fe/concerns/application_controller_concern.rb +34 -0
- data/app/controllers/fe/payments_controller.rb +184 -0
- data/app/controllers/fe/reference_pages_controller.rb +41 -0
- data/app/controllers/fe/reference_sheets_controller.rb +1 -1
- data/app/controllers/fe/references_controller.rb +74 -0
- data/app/controllers/fe/submit_pages_controller.rb +22 -0
- data/app/helpers/fe/application_helper.rb +14 -5
- data/app/mailers/fe/notifier.rb +1 -1
- data/app/models/fe/address.rb +3 -0
- data/app/models/fe/answer_pages_presenter.rb +1 -1
- data/app/models/fe/answer_sheet.rb +6 -2
- data/app/models/fe/answer_sheet_question_sheet.rb +1 -1
- data/app/models/fe/application.rb +58 -0
- data/app/models/fe/choice_field.rb +1 -1
- data/app/models/fe/concerns/answer_concern.rb +10 -11
- data/app/models/fe/concerns/answer_pages_presenter_concern.rb +16 -7
- data/app/models/fe/concerns/answer_sheet_concern.rb +10 -16
- data/app/models/fe/concerns/choice_field_concern.rb +21 -10
- data/app/models/fe/condition.rb +1 -1
- data/app/models/fe/current_address.rb +12 -0
- data/app/models/fe/date_field.rb +3 -3
- data/app/models/fe/element.rb +66 -9
- data/app/models/fe/email_address.rb +7 -0
- data/app/models/fe/email_template.rb +1 -1
- data/app/models/fe/option.rb +1 -1
- data/app/models/fe/option_group.rb +1 -1
- data/app/models/fe/page.rb +13 -4
- data/app/models/fe/page_element.rb +13 -1
- data/app/models/fe/page_link.rb +1 -1
- data/app/models/fe/paragraph.rb +1 -1
- data/app/models/fe/payment.rb +32 -7
- data/app/models/fe/payment_question.rb +1 -1
- data/app/models/fe/person.rb +33 -0
- data/app/models/fe/phone_number.rb +5 -0
- data/app/models/fe/presenter.rb +3 -2
- data/app/models/fe/question.rb +7 -7
- data/app/models/fe/question_grid.rb +1 -2
- data/app/models/fe/question_set.rb +1 -1
- data/app/models/fe/question_sheet.rb +9 -3
- data/app/models/fe/reference_question.rb +2 -2
- data/app/models/fe/reference_sheet.rb +28 -4
- data/app/models/fe/section.rb +1 -1
- data/app/models/fe/state_chooser.rb +1 -1
- data/app/models/fe/text_field.rb +3 -3
- data/app/models/fe/user.rb +3 -0
- data/app/models/staff.rb +120 -0
- data/app/views/fe/admin/elements/_errors.html.erb +11 -1
- data/app/views/fe/admin/elements/create.js.erb +3 -3
- data/app/views/fe/admin/elements/destroy.js.erb +2 -2
- data/app/views/fe/admin/elements/drop.js.erb +1 -1
- data/app/views/fe/admin/elements/duplicate.js.erb +1 -1
- data/app/views/fe/admin/elements/edit.js.erb +1 -1
- data/app/views/fe/admin/elements/error.js.erb +1 -1
- data/app/views/fe/admin/elements/new.js.erb +3 -3
- data/app/views/fe/admin/elements/update.js.erb +2 -2
- data/app/views/fe/admin/email_templates/edit.html.erb +9 -9
- data/app/views/fe/admin/email_templates/index.html.erb +3 -3
- data/app/views/fe/admin/email_templates/new.html.erb +2 -2
- data/app/views/fe/admin/panels/_advanced_options.html.erb +28 -1
- data/app/views/fe/admin/panels/_common_fields.html.erb +1 -1
- data/app/views/fe/admin/panels/_condition.html.erb +1 -1
- data/app/views/fe/admin/panels/_insert.html.erb +13 -13
- data/app/views/fe/admin/panels/_nav_controls.html.erb +4 -4
- data/app/views/fe/admin/panels/_page.html.erb +2 -2
- data/app/views/fe/admin/panels/_pages_list.html.erb +4 -4
- data/app/views/fe/admin/panels/_prop_attachment_field.html.erb +1 -1
- data/app/views/fe/admin/panels/_prop_choice_field.html.erb +10 -10
- data/app/views/fe/admin/panels/_prop_date_field.html.erb +1 -1
- data/app/views/fe/admin/panels/_prop_element.html.erb +7 -7
- data/app/views/fe/admin/panels/_prop_page.html.erb +2 -2
- data/app/views/fe/admin/panels/_prop_paragraph.html.erb +1 -1
- data/app/views/fe/admin/panels/_prop_payment_question.html.erb +1 -0
- data/app/views/fe/admin/panels/_prop_question_grid.html.erb +2 -2
- data/app/views/fe/admin/panels/_prop_question_grid_with_total.html.erb +1 -1
- data/app/views/fe/admin/panels/_prop_reference_question.html.erb +2 -2
- data/app/views/fe/admin/panels/_prop_section.html.erb +1 -1
- data/app/views/fe/admin/panels/_prop_sheet.html.erb +9 -9
- data/app/views/fe/admin/panels/_prop_text_field.html.erb +10 -10
- data/app/views/fe/admin/question_pages/_element.html.erb +5 -5
- data/app/views/fe/admin/question_pages/_element_show.html.erb +1 -1
- data/app/views/fe/admin/question_pages/_errors.html.erb +10 -1
- data/app/views/fe/admin/question_pages/_question_page.html.erb +3 -3
- data/app/views/fe/admin/question_pages/create.js.erb +3 -3
- data/app/views/fe/admin/question_pages/destroy.js.erb +3 -3
- data/app/views/fe/admin/question_pages/edit.js.erb +1 -1
- data/app/views/fe/admin/question_pages/show.js.erb +3 -2
- data/app/views/fe/admin/question_pages/show_panel.js.erb +1 -1
- data/app/views/fe/admin/question_sheets/_errors.html.erb +11 -1
- data/app/views/fe/admin/question_sheets/edit.js.erb +1 -1
- data/app/views/fe/admin/question_sheets/error.js.erb +1 -1
- data/app/views/fe/admin/question_sheets/index.html.erb +8 -8
- data/app/views/fe/admin/question_sheets/new.html.erb +1 -1
- data/app/views/fe/admin/question_sheets/show.html.erb +18 -18
- data/app/views/fe/admin/question_sheets/update.js.erb +1 -1
- data/app/views/fe/answer_pages/_answer_page.html.erb +27 -30
- data/app/views/fe/answer_pages/_element.html.erb +5 -1
- data/app/views/fe/answer_pages/update.js.erb +1 -1
- data/app/views/fe/answer_sheets/_answer_sheet.html.erb +16 -14
- data/app/views/fe/answer_sheets/_element.html.erb +1 -1
- data/app/views/fe/answer_sheets/_incomplete.html.erb +8 -8
- data/app/views/fe/answer_sheets/_page_link.html.erb +2 -2
- data/app/views/fe/answer_sheets/_pages_list.html.erb +4 -4
- data/app/views/fe/answer_sheets/_title.html.erb +1 -1
- data/app/views/fe/answer_sheets/edit.html.erb +59 -53
- data/app/views/fe/answer_sheets/incomplete.js.erb +2 -2
- data/app/views/fe/answer_sheets/send_reference_invite.js.erb +1 -1
- data/app/views/fe/application/_logout.html.erb +1 -0
- data/app/views/fe/payment_pages/_credit.html.erb +47 -0
- data/app/views/fe/payment_pages/_mail.html.erb +27 -0
- data/app/views/fe/payment_pages/_payment.html.erb +6 -0
- data/app/views/fe/payment_pages/_staff.html.erb +25 -0
- data/app/views/fe/payment_pages/_staff_results.html.erb +17 -0
- data/app/views/fe/payment_pages/edit.html.erb +75 -0
- data/app/views/fe/payment_pages/staff_search.js.erb +2 -0
- data/app/views/fe/payments/_credit.html.erb +47 -0
- data/app/views/fe/payments/_errors.html.erb +1 -0
- data/app/views/fe/payments/_payment.html.erb +13 -0
- data/app/views/fe/payments/_staff.html.erb +21 -0
- data/app/views/fe/payments/_staff_results.html.erb +18 -0
- data/app/views/fe/payments/approve.js.erb +3 -0
- data/app/views/fe/payments/create.js.erb +19 -0
- data/app/views/fe/payments/destroy.js.erb +7 -0
- data/app/views/fe/payments/edit.html.erb +56 -0
- data/app/views/fe/payments/error.js.erb +3 -0
- data/app/views/fe/payments/no_access.html.erb +7 -0
- data/app/views/fe/payments/staff_search.js.erb +1 -0
- data/app/views/fe/payments/update.html.erb +24 -0
- data/app/views/fe/questions/{_acceptance.html.erb → fe/_acceptance.html.erb} +0 -0
- data/app/views/fe/questions/{_attachment_field.html.erb → fe/_attachment_field.html.erb} +2 -2
- data/app/views/fe/questions/{_checkbox_field.html.erb → fe/_checkbox_field.html.erb} +1 -1
- data/app/views/fe/questions/{_country.html.erb → fe/_country.html.erb} +1 -1
- data/app/views/fe/questions/{_date_field.html.erb → fe/_date_field.html.erb} +0 -0
- data/app/views/fe/questions/{_date_field_mmyy.html.erb → fe/_date_field_mmyy.html.erb} +0 -0
- data/app/views/fe/questions/{_drop_down_field.html.erb → fe/_drop_down_field.html.erb} +1 -1
- data/app/views/fe/questions/fe/_paragraph.html.erb +1 -0
- data/app/views/fe/questions/fe/_payment_question.html.erb +70 -0
- data/app/views/fe/questions/{_question_grid.html.erb → fe/_question_grid.html.erb} +7 -7
- data/app/views/fe/questions/{_question_grid_with_total.html.erb → fe/_question_grid_with_total.html.erb} +1 -1
- data/app/views/fe/questions/{_questions.html.erb → fe/_questions.html.erb} +2 -2
- data/app/views/fe/questions/{_radio_button_field.html.erb → fe/_radio_button_field.html.erb} +13 -11
- data/app/views/fe/questions/{_rating.html.erb → fe/_rating.html.erb} +0 -0
- data/app/views/fe/questions/fe/_reference_discipler.html.erb +1 -0
- data/app/views/fe/questions/fe/_reference_friend.html.erb +1 -0
- data/app/views/fe/questions/fe/_reference_parent.html.erb +1 -0
- data/app/views/fe/questions/fe/_reference_peer.html.erb +1 -0
- data/app/views/fe/questions/fe/_reference_question.html.erb +38 -0
- data/app/views/fe/questions/fe/_reference_roommate.html.erb +1 -0
- data/app/views/fe/questions/fe/_reference_spiritual.html.erb +1 -0
- data/app/views/fe/questions/fe/_reference_staff.html.erb +1 -0
- data/app/views/fe/questions/fe/_section.html.erb +1 -0
- data/app/views/fe/questions/{_state_chooser.html.erb → fe/_state_chooser.html.erb} +0 -0
- data/app/views/fe/questions/{_text_area_field.html.erb → fe/_text_area_field.html.erb} +0 -0
- data/app/views/fe/questions/{_text_field.html.erb → fe/_text_field.html.erb} +0 -0
- data/app/views/fe/questions/{_yes_no.html.erb → fe/_yes_no.html.erb} +6 -6
- data/app/views/fe/questions/{_yes_no_field.erb → fe/_yes_no_field.erb} +1 -1
- data/app/views/fe/reference_pages/_reference.html.erb +31 -0
- data/app/views/fe/reference_pages/edit.html.erb +24 -0
- data/app/views/fe/reference_sheets/done.html.erb +2 -0
- data/app/views/fe/reference_sheets/submitted.js.erb +1 -0
- data/app/views/fe/references/edit.html.erb +8 -0
- data/app/views/fe/references/send_invite.js.erb +7 -0
- data/app/views/fe/references/show.html.erb +18 -0
- data/app/views/fe/references/submit.js.erb +3 -0
- data/app/views/fe/submit_pages/_errors.html.erb +1 -0
- data/app/views/fe/submit_pages/_thankyou.html.erb +2 -0
- data/app/views/fe/submit_pages/edit.html.erb +36 -0
- data/app/views/fe/submit_pages/error.js.erb +1 -0
- data/app/views/fe/submit_pages/submit.js.erb +3 -0
- data/app/views/layouts/fe/application.html.erb +30 -13
- data/app/views/layouts/fe/{qe.admin.html.erb → fe.admin.html.erb} +1 -1
- data/config/locales/en.yml +37 -0
- data/config/routes.rb +69 -27
- data/db/migrate/20131003041856_core.rb +4 -4
- data/db/migrate/20131003044518_create_email_templates.rb +1 -1
- data/db/migrate/20140623153424_create_fe_people.rb +12 -0
- data/db/migrate/20140624180246_create_fe_addresses.rb +20 -0
- data/db/migrate/20140624182216_create_create_fe_phone_numbers.rb +16 -0
- data/db/migrate/20140625160545_create_fe_users.rb +12 -0
- data/db/migrate/20140808202507_add_conditional_type_to_elements.rb +5 -0
- data/db/migrate/20140808203609_add_conditional_answer_to_elements.rb +5 -0
- data/db/migrate/20140828045339_create_payments.rb +13 -0
- data/db/migrate/20141103204704_remove_short_value_column.rb +5 -0
- data/db/migrate/20141109154522_move_conditional_ids_used_for_choice_field_to_their_own_column.rb +7 -0
- data/db/seeds.rb +7 -0
- data/lib/fe.rb +1 -1
- data/lib/fe/engine.rb +46 -1
- data/lib/fe/version.rb +1 -1
- data/lib/tasks/fe_tasks.rake +14 -0
- data/spec/controllers/fe/admin/elements_controller_spec.rb +1 -1
- data/spec/controllers/fe/admin/email_templates_controller_spec.rb +1 -1
- data/spec/controllers/fe/admin/question_pages_controller_spec.rb +1 -1
- data/spec/controllers/fe/admin/question_sheets_controller_spec.rb +1 -1
- data/spec/controllers/fe/answer_pages_controller_spec.rb +1 -1
- data/spec/controllers/fe/answer_sheets_controller_spec.rb +1 -1
- data/spec/controllers/fe/reference_sheets_controller_spec.rb +1 -1
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +29 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +37 -0
- data/spec/dummy/config/environments/production.rb +82 -0
- data/spec/dummy/config/environments/test.rb +39 -0
- data/spec/dummy/config/initializers/assets.rb +8 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +56 -0
- data/spec/dummy/config/secrets.yml +22 -0
- data/spec/dummy/db/schema.rb +203 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/test.log +440 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/factories/answer_sheet_question_sheets.rb +4 -0
- data/spec/factories/answer_sheets.rb +1 -1
- data/spec/factories/applications.rb +7 -0
- data/spec/factories/elements.rb +19 -0
- data/spec/factories/fe_addresses.rb +14 -0
- data/spec/factories/fe_email_addresses.rb +7 -0
- data/spec/factories/fe_people.rb +10 -0
- data/spec/factories/fe_phone_numbers.rb +7 -0
- data/spec/factories/page.rb +9 -0
- data/spec/factories/page_elements.rb +5 -0
- data/spec/factories/payments.rb +7 -0
- data/spec/factories/question_sheet.rb +10 -0
- data/spec/models/fe/answer_sheet_question_sheet_spec.rb +3 -3
- data/spec/models/fe/answer_spec.rb +5 -5
- data/spec/models/fe/application_spec.rb +8 -0
- data/spec/models/fe/attachment_field_spec.rb +1 -1
- data/spec/models/fe/choice_field_spec.rb +29 -2
- data/spec/models/fe/condition_spec.rb +5 -5
- data/spec/models/fe/date_field_spec.rb +9 -9
- data/spec/models/fe/element_spec.rb +139 -9
- data/spec/models/fe/email_template_spec.rb +2 -2
- data/spec/models/fe/option_group_spec.rb +1 -1
- data/spec/models/fe/option_spec.rb +1 -1
- data/spec/models/fe/page_element_spec.rb +3 -3
- data/spec/models/fe/page_link_spec.rb +1 -1
- data/spec/models/fe/page_spec.rb +43 -11
- data/spec/models/fe/paragraph_spec.rb +4 -4
- data/spec/models/fe/payment_question_spec.rb +65 -0
- data/spec/models/fe/person_spec.rb +4 -0
- data/spec/models/fe/question_grid_spec.rb +1 -1
- data/spec/models/fe/question_grid_with_total_spec.rb +1 -1
- data/spec/models/fe/question_set_spec.rb +1 -1
- data/spec/models/fe/question_sheet_spec.rb +5 -5
- data/spec/models/fe/question_spec.rb +13 -12
- data/spec/models/fe/reference_question_spec.rb +4 -4
- data/spec/models/fe/reference_sheet_spec.rb +8 -8
- data/spec/models/fe/section_spec.rb +1 -1
- data/spec/models/fe/state_chooser_spec.rb +1 -1
- data/spec/models/fe/text_field_spec.rb +3 -3
- data/spec/{spec_helper.rb → rails_helper.rb} +3 -3
- data/spec/support/database.txt +3 -3
- metadata +261 -75
- data/app/views/fe/questions/_paragraph.html.erb +0 -1
- data/app/views/fe/questions/_reference_discipler.html.erb +0 -1
- data/app/views/fe/questions/_reference_friend.html.erb +0 -1
- data/app/views/fe/questions/_reference_parent.html.erb +0 -1
- data/app/views/fe/questions/_reference_peer.html.erb +0 -1
- data/app/views/fe/questions/_reference_question.html.erb +0 -38
- data/app/views/fe/questions/_reference_roommate.html.erb +0 -1
- data/app/views/fe/questions/_reference_spiritual.html.erb +0 -1
- data/app/views/fe/questions/_reference_staff.html.erb +0 -1
- data/app/views/fe/questions/_section.html.erb +0 -1
- data/lib/generators/fe/install_generator.rb +0 -132
- data/lib/tasks/qe_tasks.rake +0 -4
- data/spec/models/fe/answer_sheet_spec.rb +0 -8
@@ -42,7 +42,7 @@ module Fe
|
|
42
42
|
# Question elements get associated
|
43
43
|
# non-question elements get cloned
|
44
44
|
def duplicate
|
45
|
-
new_sheet = QuestionSheet.new(self.attributes)
|
45
|
+
new_sheet = QuestionSheet.new(self.attributes.merge(id: nil))
|
46
46
|
new_sheet.label = self.label + ' - COPY'
|
47
47
|
new_sheet.save(:validate => false)
|
48
48
|
self.pages.each do |page|
|
@@ -51,6 +51,12 @@ module Fe
|
|
51
51
|
new_sheet
|
52
52
|
end
|
53
53
|
|
54
|
+
# pages hidden by a conditional element
|
55
|
+
def hidden_pages(answer_sheet)
|
56
|
+
elements.find_all{ |e|
|
57
|
+
e.conditional.is_a?(Fe::Page) && !e.conditional_match(answer_sheet)
|
58
|
+
}.collect(&:conditional)
|
59
|
+
end
|
54
60
|
|
55
61
|
private
|
56
62
|
|
@@ -62,7 +68,7 @@ module Fe
|
|
62
68
|
# returns a list of existing Untitled forms
|
63
69
|
# (having a separate method makes it easy to mock in the spec)
|
64
70
|
def self.untitled_labels
|
65
|
-
QuestionSheet.
|
71
|
+
QuestionSheet.where("label LIKE ?", 'Untitled form%').map{|s| s.label }
|
66
72
|
end
|
67
73
|
|
68
74
|
def check_for_answers
|
@@ -70,4 +76,4 @@ module Fe
|
|
70
76
|
end
|
71
77
|
|
72
78
|
end
|
73
|
-
end
|
79
|
+
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'validates_email_format_of'
|
1
2
|
require 'aasm'
|
2
3
|
module Fe
|
3
4
|
class ReferenceSheet < ActiveRecord::Base
|
@@ -16,6 +17,7 @@ module Fe
|
|
16
17
|
:foreign_key => "applicant_answer_sheet_id"
|
17
18
|
|
18
19
|
validates_presence_of :first_name, :last_name, :phone, :email, :relationship, :on => :update, :message => "can't be blank"
|
20
|
+
validates :email, :email_format => { :message => "doesn't look right." }
|
19
21
|
|
20
22
|
delegate :style, :to => :question
|
21
23
|
|
@@ -32,7 +34,29 @@ module Fe
|
|
32
34
|
state :completed, :enter => Proc.new {|ref|
|
33
35
|
ref.submitted_at = Time.now
|
34
36
|
# SpReferenceMailer.deliver_completed(ref)
|
37
|
+
=begin
|
38
|
+
Fe::Notifier.notification(ref.email, # RECIPIENTS
|
39
|
+
Fe.from_email, # FROM
|
40
|
+
# TODO
|
41
|
+
"Reference Completed", # LIQUID TEMPLATE NAME
|
42
|
+
{'first_name' => person.nickname,
|
43
|
+
'site_url' => "#{APP_CONFIG['spgive_url']}/#{person.sp_gcx_site}/",
|
44
|
+
'username' => person.user.username,
|
45
|
+
'password' => person.user.password_plain}).deliver
|
46
|
+
=end
|
47
|
+
|
35
48
|
# SpReferenceMailer.deliver_completed_confirmation(ref)
|
49
|
+
=begin
|
50
|
+
Fe::Notifier.notification(ref.applicant_answer_sheet.person.email, # RECIPIENTS
|
51
|
+
Fe.from_email, # FROM
|
52
|
+
"Reference Completed To Applicant", # LIQUID TEMPLATE NAME
|
53
|
+
# TODO
|
54
|
+
{'first_name' => person.nickname,
|
55
|
+
'site_url' => "#{APP_CONFIG['spgive_url']}/#{person.sp_gcx_site}/",
|
56
|
+
'username' => person.user.username,
|
57
|
+
'password' => person.user.password_plain}).deliver
|
58
|
+
=end
|
59
|
+
|
36
60
|
ref.applicant_answer_sheet.complete(ref)
|
37
61
|
}
|
38
62
|
|
@@ -68,13 +92,13 @@ module Fe
|
|
68
92
|
application = self.applicant_answer_sheet
|
69
93
|
|
70
94
|
Notifier.notification(self.email,
|
71
|
-
|
95
|
+
Fe.from_email,
|
72
96
|
"Reference Invite",
|
73
97
|
{'reference_full_name' => self.name,
|
74
98
|
'applicant_full_name' => application.name,
|
75
99
|
'applicant_email' => application.email,
|
76
100
|
'applicant_home_phone' => application.phone,
|
77
|
-
'reference_url' =>
|
101
|
+
'reference_url' => edit_fe_reference_sheet_url(self, :a => self.access_key, :host => ActionMailer::Base.default_url_options[:host])}).deliver
|
78
102
|
# Send notification to applicant
|
79
103
|
Notifier.notification(applicant_answer_sheet.email, # RECIPIENTS
|
80
104
|
Fe.from_email, # FROM
|
@@ -82,7 +106,7 @@ module Fe
|
|
82
106
|
{'applicant_full_name' => applicant_answer_sheet.name,
|
83
107
|
'reference_full_name' => self.name,
|
84
108
|
'reference_email' => self.email,
|
85
|
-
'application_url' =>
|
109
|
+
'application_url' => edit_fe_answer_sheet_url(applicant_answer_sheet, :host => ActionMailer::Base.default_url_options[:host])}).deliver
|
86
110
|
|
87
111
|
self.email_sent_at = Time.now
|
88
112
|
self.save(:validate => false)
|
@@ -146,4 +170,4 @@ module Fe
|
|
146
170
|
end
|
147
171
|
end
|
148
172
|
end
|
149
|
-
end
|
173
|
+
end
|
data/app/models/fe/section.rb
CHANGED
data/app/models/fe/text_field.rb
CHANGED
@@ -7,9 +7,9 @@ module Fe
|
|
7
7
|
# which view to render this element?
|
8
8
|
def ptemplate
|
9
9
|
if self.style == 'essay'
|
10
|
-
'text_area_field'
|
10
|
+
'fe/text_area_field'
|
11
11
|
else
|
12
|
-
'text_field'
|
12
|
+
'fe/text_field'
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
@@ -26,4 +26,4 @@ module Fe
|
|
26
26
|
end
|
27
27
|
|
28
28
|
end
|
29
|
-
end
|
29
|
+
end
|
data/app/models/staff.rb
ADDED
@@ -0,0 +1,120 @@
|
|
1
|
+
class Staff < ActiveRecord::Base
|
2
|
+
self.table_name = "ministry_staff"
|
3
|
+
belongs_to :person
|
4
|
+
|
5
|
+
belongs_to :primary_address, :class_name => "StaffAddress", :foreign_key => :fk_primaryAddress
|
6
|
+
belongs_to :secondary_address, :class_name => "StaffAddress", :foreign_key => :fk_secondaryAddress
|
7
|
+
|
8
|
+
def self.get_staff(ssm_id)
|
9
|
+
if ssm_id.nil? then raise "nil ssm_id!" end
|
10
|
+
ssm_user = User.find_by(userID: ssm_id)
|
11
|
+
if ssm_user.nil? then raise "ssm_id doesn't exist: #{ssm_id}" end
|
12
|
+
username = ssm_user.username
|
13
|
+
profile = StaffsiteProfile.find_by(userName: username)
|
14
|
+
account_no = profile.accountNo
|
15
|
+
staff = Staff.find_by(accountNo: account_no)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.field_roles
|
19
|
+
@@field_roles ||= ['Director (Direct Ministry)','Team Leader (Direct Ministry)','Team Member - Mom','Field Staff In Training','Raising Support Full Time','Seminary Staff','Field Staff','Local Leader']
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.strategy_order
|
23
|
+
@@strategy_order ||= ['National Director','Operations','HR','LD','Fund Dev','CFM','FLD','EFM','DES','EPI','ESS','NTN','BRD','WSN','GLM','R&D','SR','SV','SSS','JPO','LHS','']
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.strategies
|
27
|
+
@@strategies ||= {
|
28
|
+
'National Director' => 'National Director',
|
29
|
+
'Operations' => 'Operations',
|
30
|
+
'HR' => 'Leadership Development',
|
31
|
+
'LD' => 'Leadership Development',
|
32
|
+
'Fund Dev' => 'Fund Development',
|
33
|
+
'CFM' => 'Campus Field Ministry',
|
34
|
+
'FLD' => 'Campus Field Ministry',
|
35
|
+
'SV' => 'Cru High School',
|
36
|
+
'EFM' => 'Ethnic Field Ministry',
|
37
|
+
'DES' => 'Destino',
|
38
|
+
'EPI' => 'Epic',
|
39
|
+
'ESS' => 'Every Student Sent',
|
40
|
+
'NTN' => 'Nations',
|
41
|
+
'BRD' => 'Bridges',
|
42
|
+
'WSN' => 'Global Missions',
|
43
|
+
'GLM' => 'Global Missions',
|
44
|
+
'R&D' => 'Research and Development',
|
45
|
+
'LHS' => 'Lake Hart Stint'
|
46
|
+
}
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.staff_positions
|
50
|
+
@@staff_positions ||= [
|
51
|
+
"Associate Staff",
|
52
|
+
"Staff Full Time",
|
53
|
+
"Hourly Full Time",
|
54
|
+
"Hourly on Call",
|
55
|
+
"Salaried Exempt Full Time",
|
56
|
+
"Salaried w Desig #",
|
57
|
+
"Self-Supported Staff",
|
58
|
+
"Staff on Delayed Payroll",
|
59
|
+
"Staff on Paid Leave",
|
60
|
+
"Staff on Unpaid Leave",
|
61
|
+
"Staff Raising Init Supprt",
|
62
|
+
"Affiliate",
|
63
|
+
"Volunteer Full Time",
|
64
|
+
"Volunteer Part Time",
|
65
|
+
"Ministry Intern A",
|
66
|
+
"Ministry Intern A Part Time",
|
67
|
+
"Ministry Intern Hourly Part Tm",
|
68
|
+
"STINT Full Time",
|
69
|
+
"Staff Part Time"
|
70
|
+
]
|
71
|
+
end
|
72
|
+
|
73
|
+
scope :specialty_roles, -> { where(:jobStatus => "Staff Full Time").where(:ministry => "Campus Ministry").
|
74
|
+
where(:removedFromPeopleSoft => "N").where("jobTitle NOT IN (?)", field_roles).order(:jobTitle).order(:lastName) }
|
75
|
+
|
76
|
+
def self.get_roles(region)
|
77
|
+
result = {}
|
78
|
+
Staff.strategy_order.each do |strategy|
|
79
|
+
result[strategy] = specialty_roles.where(:strategy => strategy).where(:region => region)
|
80
|
+
end
|
81
|
+
result
|
82
|
+
end
|
83
|
+
|
84
|
+
def email
|
85
|
+
self[:email].present? ? self[:email] : self.person.try(:email)
|
86
|
+
end
|
87
|
+
|
88
|
+
# "first_name last_name"
|
89
|
+
def full_name
|
90
|
+
firstName.to_s + " " + lastName.to_s
|
91
|
+
end
|
92
|
+
|
93
|
+
def informal_full_name
|
94
|
+
nickname.to_s + " " + lastName.to_s
|
95
|
+
end
|
96
|
+
|
97
|
+
def nickname
|
98
|
+
(!preferred_name.to_s.strip.empty?) ? preferred_name : firstName
|
99
|
+
end
|
100
|
+
|
101
|
+
def is_active?
|
102
|
+
removedFromPeopleSoft != "Y"
|
103
|
+
end
|
104
|
+
|
105
|
+
def is_hr?
|
106
|
+
strategy == "HR" || strategy == "LD"
|
107
|
+
end
|
108
|
+
|
109
|
+
def is_director?
|
110
|
+
jobTitle && jobTitle.include?("Director")
|
111
|
+
end
|
112
|
+
|
113
|
+
def is_hr_director?
|
114
|
+
jobTitle && jobTitle.include?("Director (HR)")
|
115
|
+
end
|
116
|
+
|
117
|
+
def is_removed?
|
118
|
+
removedFromPeopleSoft == "Y" ? true : false
|
119
|
+
end
|
120
|
+
end
|
@@ -1 +1,11 @@
|
|
1
|
-
|
1
|
+
<% if @element.errors.any? %>
|
2
|
+
<div class="errors">
|
3
|
+
<h2>There was a problem saving this element</h2>
|
4
|
+
<ul>
|
5
|
+
<% @element.errors.full_messages.each do |msg| %>
|
6
|
+
<li><%= msg %></li>
|
7
|
+
<% end %>
|
8
|
+
</ul>
|
9
|
+
</div>
|
10
|
+
<% end %>
|
11
|
+
|
@@ -1,11 +1,11 @@
|
|
1
1
|
<% if @page_element %>
|
2
2
|
$('#question_modal').dialog('close');
|
3
|
-
$('#page-preview').html('<%= escape_javascript(render('admin/question_pages/question_page')) %>');
|
3
|
+
$('#page-preview').html('<%= escape_javascript(render('fe/admin/question_pages/question_page')) %>');
|
4
4
|
$('#element_<%= dom_id(@element) %>').hide();
|
5
|
-
$('#element_form_<%= dom_id(@element) %>').html('<%= escape_javascript(render('admin/panels/prop_element',:element => @element)) %>');
|
5
|
+
$('#element_form_<%= dom_id(@element) %>').html('<%= escape_javascript(render('fe/admin/panels/prop_element',:element => @element)) %>');
|
6
6
|
$('#element_form_<%= dom_id(@element) %>').show();
|
7
7
|
selectElement("#element_<%= @element.id %>");
|
8
8
|
$.scrollTo("#element_<%= @element.id %>");
|
9
9
|
<% else %>
|
10
10
|
alert('That question already exists on this question sheet')
|
11
|
-
<% end %>
|
11
|
+
<% end %>
|
@@ -1,2 +1,2 @@
|
|
1
|
-
$('#page-preview').html('<%= escape_javascript(render('admin/question_pages/question_page', :page => @page)) %>')
|
1
|
+
$('#page-preview').html('<%= escape_javascript(render('fe/admin/question_pages/question_page', :page => @page)) %>')
|
2
2
|
$('#list-pages li').removeClass('active')
|
@@ -1,2 +1,2 @@
|
|
1
|
-
$('#page-preview').html('<%= escape_javascript(render('admin/question_pages/question_page')) %>')
|
1
|
+
$('#page-preview').html('<%= escape_javascript(render('fe/admin/question_pages/question_page')) %>')
|
2
2
|
selectElement("#element_<%= @element.id %>")
|
@@ -1,4 +1,4 @@
|
|
1
1
|
$('#element_<%= dom_id(@element) %>').hide()
|
2
|
-
$('#element_form_<%= dom_id(@element) %>').html('<%= escape_javascript(render('admin/panels/prop_element',:element => @element)) %>')
|
2
|
+
$('#element_form_<%= dom_id(@element) %>').html('<%= escape_javascript(render('fe/admin/panels/prop_element',:element => @element)) %>')
|
3
3
|
$('#element_form_<%= dom_id(@element) %>').show();
|
4
4
|
selectElement("#element_<%= @element.id %>")
|
@@ -1,10 +1,10 @@
|
|
1
1
|
if ($('#question_modal')[0] == null) {
|
2
2
|
$('body').append('<div id="question_modal"></div>');
|
3
3
|
}
|
4
|
-
$('#question_modal').html('<%= link_to("Add \"#{params[:human_type]}\"",
|
4
|
+
$('#question_modal').html('<%= link_to("Add \"#{params[:human_type]}\"", fe_admin_question_sheet_page_elements_path(:question_sheet_id => @page.question_sheet_id, :page_id => @page.id,
|
5
5
|
:element_type => params[:element_type], "element[style]" => @style, format: :js),
|
6
6
|
:remote => true,
|
7
7
|
:method => :post,
|
8
8
|
:class => "add_type") %><p>Or you can also use an existing <%= params[:human_type] %> element. If you are unsure, just <strong>Add <%= params[:human_type] %>.</strong></p><div id="questions_div" title=""></div>');
|
9
|
-
$('#questions_div').html("<%= escape_javascript(render('questions/questions', :questions => @questions)) %>")
|
10
|
-
$('#question_modal').dialog({width: 500, height: 400});
|
9
|
+
$('#questions_div').html("<%= escape_javascript(render('fe/questions/fe/questions', :questions => @questions)) %>")
|
10
|
+
$('#question_modal').dialog({width: 500, height: 400});
|
@@ -1,9 +1,9 @@
|
|
1
1
|
$('#element_form_<%= dom_id(@element) %>').hide();
|
2
|
-
$('#element_<%= dom_id(@element) %>').html('<%= escape_javascript(render('admin/question_pages/element_show', :element => @element)) %>')
|
2
|
+
$('#element_<%= dom_id(@element) %>').html('<%= escape_javascript(render('fe/admin/question_pages/element_show', :element => @element)) %>')
|
3
3
|
$('#element_<%= dom_id(@element) %>').show()
|
4
4
|
clearCurrentElement()
|
5
5
|
$('#questions_list').sortable('refresh');
|
6
6
|
|
7
7
|
<% @page.question_grids.each do |grid| %>
|
8
8
|
$('#questions_list_<%= grid.id %>').sortable('refresh');
|
9
|
-
<% end %>
|
9
|
+
<% end %>
|
@@ -1,13 +1,13 @@
|
|
1
1
|
<div id="content">
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
2
|
+
<h1>Edit Email Template</h1>
|
3
|
+
|
4
|
+
<%= error_messages_for :email_template %>
|
5
|
+
|
6
|
+
<%= form_for(:email_template, :url => fe_admin_email_template_path(@email_template), :html => { :method => :put } ) do |f| %>
|
7
|
+
<%= render 'form', f: f %>
|
8
|
+
|
9
|
+
<p><%= submit_tag "Update" %> or <%= link_to "Cancel", fe_admin_email_templates_path, :class => "cancel" %></p>
|
10
|
+
<% end %>
|
11
11
|
|
12
12
|
|
13
13
|
</div>
|
@@ -8,13 +8,13 @@
|
|
8
8
|
</tr>
|
9
9
|
<% for email_template in @email_templates %>
|
10
10
|
<tr class="<%= cycle("","alt") %>">
|
11
|
-
<td><%= link_to email_template.name,
|
12
|
-
<td class="actions"><%= link_to 'Destroy',
|
11
|
+
<td><%= link_to email_template.name, edit_fe_admin_email_template_path(email_template), :class => "email-template" %></td>
|
12
|
+
<td class="actions"><%= link_to 'Destroy', fe_admin_email_template_path(email_template), data: {confirm: 'Are you sure?'}, :method => :delete, :class => "destroy" %></td>
|
13
13
|
</tr>
|
14
14
|
<% end %>
|
15
15
|
</table>
|
16
16
|
|
17
17
|
<br />
|
18
18
|
|
19
|
-
<%= link_to 'New Template',
|
19
|
+
<%= link_to 'New Template', new_fe_admin_email_template_path, :method => :GET, :class => "add-link" %>
|
20
20
|
</div>
|
@@ -3,9 +3,9 @@
|
|
3
3
|
|
4
4
|
<%= error_messages_for :email_template %>
|
5
5
|
|
6
|
-
<%= form_for(:email_template, :url =>
|
6
|
+
<%= form_for(:email_template, :url => fe_admin_email_templates_path) do |f| %>
|
7
7
|
<%= render :partial => 'form', :locals => {:f => f}%>
|
8
8
|
|
9
|
-
<p><%= submit_tag "Create" %> or <%= link_to "Cancel",
|
9
|
+
<p><%= submit_tag "Create" %> or <%= link_to "Cancel", fe_admin_email_templates_path, :class => "cancel" %></p>
|
10
10
|
<% end %>
|
11
11
|
</div>
|
@@ -5,6 +5,33 @@
|
|
5
5
|
<h3>Advanced Options<br/>
|
6
6
|
<a style="font-size: 11px; font-weight: normal; " href="#" onclick="$('#<%= dom_id(element) %>-pnl-advanced').hide();$('#<%= dom_id(element) %>-h3-show-advanced-options').show();return false;">Hide Advanced Options</a></h3>
|
7
7
|
|
8
|
+
<div class='future_affect'>
|
9
|
+
<%= label_tag "Future questions/pages will be shown based on the answer to this question: " %>
|
10
|
+
<%= radio_button_tag :future_affect, "yes" %>
|
11
|
+
<%= label_tag :future_affect_yes, "Yes" %>
|
12
|
+
<%= radio_button_tag :future_affect, "no" %>
|
13
|
+
<%= label_tag :future_affect_no, "No" %>
|
14
|
+
<% if @element.conditional.present? %>
|
15
|
+
<script>$(function() { $("#future_affect_yes").click(); });</script>
|
16
|
+
<% end %>
|
17
|
+
<div class='future_answer' style='display:none'>
|
18
|
+
What answer should show the element or page? <%= f.text_field "conditional_answer" %>
|
19
|
+
<br/>
|
20
|
+
Enter multiple answers separated by commas to match using an OR condition. Ex: "Option A, Option B" will match either "Option A" or "Option B" answers
|
21
|
+
</div>
|
22
|
+
<div class='future_target' style='display:none'>
|
23
|
+
Should it show the next element or a page further down the application?
|
24
|
+
<%= f.radio_button :conditional_type, "Fe::Element" %>
|
25
|
+
<%= f.label :conditional_type_feelement, "Next Element" %>
|
26
|
+
<%= f.radio_button :conditional_type, "Fe::Page" %>
|
27
|
+
<%= f.label :conditional_type_fepage, "Page" %>
|
28
|
+
</div>
|
29
|
+
<div class='future_page' style='<%= 'display:none' unless @element.conditional.is_a?(Fe::Page) %>'>
|
30
|
+
Which page? <%= f.collection_select :conditional_id, @page.question_sheet.pages, :id, :label %>
|
31
|
+
</div>
|
32
|
+
</div>
|
33
|
+
<br/>
|
34
|
+
|
8
35
|
<p><label for="element_object" class="desc">Object Name</label>
|
9
36
|
<%= f.text_field :object_name %></p>
|
10
37
|
|
@@ -13,4 +40,4 @@
|
|
13
40
|
|
14
41
|
<p><label for="element_object" class="desc">Max Length</label>
|
15
42
|
<%= f.text_field :max_length %></p>
|
16
|
-
</div>
|
43
|
+
</div>
|