kuality-coeus 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -1
- data/Gemfile.lock +16 -18
- data/chromedriver.log +46 -0
- data/features/grants_gov/grants_gov_forms/code_and_form_mapping.feature +26 -0
- data/features/grants_gov/grants_gov_forms/forms_validation.feature +1 -0
- data/features/grants_gov/grants_gov_forms/s2s_questionnaire.feature +19 -0
- data/features/grants_gov/s2s_submission.feature +30 -0
- data/features/grants_gov/s2s_validation.feature +36 -0
- data/features/proposal_development/create_budget_versions.feature +31 -0
- data/features/proposal_development/create_proposal.feature +25 -0
- data/features/proposal_development/key_personnel_validations.feature +41 -0
- data/features/proposal_development/proposal_actions_validations.feature +46 -0
- data/features/proposal_development/proposal_permissions.feature +73 -0
- data/features/proposal_development/proposal_workflow.feature +105 -0
- data/features/proposal_development/special_review_validations.feature +12 -0
- data/features/step_definitions/action_list.rb +12 -0
- data/features/step_definitions/awards/create_award.rb +3 -0
- data/features/step_definitions/grants_gov/forms.rb +34 -0
- data/features/step_definitions/grants_gov/s2s_submission.rb +51 -0
- data/features/step_definitions/institutional_proposals/create_institutional_proposal.rb +3 -0
- data/features/step_definitions/proposal_development/budget_versions.rb +102 -0
- data/features/step_definitions/proposal_development/create_proposal.rb +157 -0
- data/features/step_definitions/proposal_development/edit_proposal.rb +79 -0
- data/features/step_definitions/proposal_development/institute_rates.rb +21 -0
- data/features/step_definitions/proposal_development/key_personnel_validations.rb +74 -0
- data/features/step_definitions/proposal_development/proposal_actions_validations.rb +73 -0
- data/features/step_definitions/proposal_development/proposal_permissions.rb +141 -0
- data/features/step_definitions/proposal_development/proposal_workflow.rb +81 -0
- data/features/step_definitions/proposal_development/s2s_validation.rb +30 -0
- data/features/step_definitions/proposal_development/special_review_validations.rb +7 -0
- data/features/step_definitions/test.rb +3 -0
- data/features/step_definitions/users.rb +65 -0
- data/features/support/env.rb +35 -0
- data/features/test.feature +13 -0
- data/kuality-coeus.gemspec +1 -1
- data/lib/chromedriver.log +4483 -0
- data/lib/kuality-coeus.rb +5 -2
- data/lib/kuality-coeus/core_extensions.rb +10 -0
- data/lib/kuality-coeus/data_objects/award/award.rb +126 -0
- data/lib/kuality-coeus/data_objects/award/award_transaction.rb +57 -0
- data/lib/kuality-coeus/data_objects/budget/budget_periods.rb +114 -0
- data/lib/kuality-coeus/data_objects/budget/budget_versions.rb +221 -0
- data/lib/kuality-coeus/data_objects/budget/subaward_budget.rb +65 -0
- data/lib/kuality-coeus/data_objects/committee_document/committee_document.rb +65 -0
- data/lib/kuality-coeus/data_objects/committee_document/committee_members.rb +30 -0
- data/lib/kuality-coeus/data_objects/committee_document/committee_schedule.rb +27 -0
- data/lib/kuality-coeus/data_objects/committee_document/member_roles.rb +28 -0
- data/lib/kuality-coeus/data_objects/conflict_of_interest/financial_entity.rb +48 -0
- data/lib/kuality-coeus/data_objects/grants_gov/phs_fellowship_questionnaire.rb +90 -0
- data/lib/kuality-coeus/data_objects/grants_gov/phs_training_budget_questionnaire.rb +5 -0
- data/lib/kuality-coeus/data_objects/institutional_proposal/institutional_proposal.rb +20 -0
- data/lib/kuality-coeus/data_objects/institutional_proposal/intellectual_property_review.rb +62 -0
- data/lib/kuality-coeus/data_objects/navigation.rb +64 -0
- data/lib/kuality-coeus/data_objects/proposal_development/compliance_questions.rb +47 -0
- data/lib/kuality-coeus/data_objects/proposal_development/custom_data.rb +41 -0
- data/lib/kuality-coeus/data_objects/proposal_development/degrees.rb +40 -0
- data/lib/kuality-coeus/data_objects/proposal_development/key_personnel.rb +299 -0
- data/lib/kuality-coeus/data_objects/proposal_development/kuali_university_questions.rb +58 -0
- data/lib/kuality-coeus/data_objects/proposal_development/permissions.rb +107 -0
- data/lib/kuality-coeus/data_objects/proposal_development/personnel_attachments.rb +46 -0
- data/lib/kuality-coeus/data_objects/proposal_development/proposal_attachments.rb +41 -0
- data/lib/kuality-coeus/data_objects/proposal_development/proposal_development.rb +301 -0
- data/lib/kuality-coeus/data_objects/proposal_development/proposal_questions.rb +52 -0
- data/lib/kuality-coeus/data_objects/proposal_development/s2s_questionnaire.rb +129 -0
- data/lib/kuality-coeus/data_objects/proposal_development/special_review.rb +79 -0
- data/lib/kuality-coeus/data_objects/rates/institute_rate.rb +209 -0
- data/lib/kuality-coeus/data_objects/user.rb +303 -33
- data/lib/kuality-coeus/gem_extensions.rb +26 -0
- data/lib/kuality-coeus/page_objects/000_base_page.rb +196 -14
- data/lib/kuality-coeus/page_objects/action_list.rb +32 -0
- data/lib/kuality-coeus/page_objects/award/award.rb +25 -0
- data/lib/kuality-coeus/page_objects/award/award_actions.rb +7 -0
- data/lib/kuality-coeus/page_objects/award/award_budget_versions.rb +9 -0
- data/lib/kuality-coeus/page_objects/award/commitments.rb +27 -0
- data/lib/kuality-coeus/page_objects/award/contacts.rb +19 -0
- data/lib/kuality-coeus/page_objects/award/custom_data.rb +6 -0
- data/lib/kuality-coeus/page_objects/award/payment_reports_terms.rb +26 -0
- data/lib/kuality-coeus/page_objects/award/special_review.rb +7 -0
- data/lib/kuality-coeus/page_objects/award/time_and_money.rb +36 -0
- data/lib/kuality-coeus/page_objects/budget/budget_actions.rb +31 -0
- data/lib/kuality-coeus/page_objects/budget/budget_versions.rb +13 -0
- data/lib/kuality-coeus/page_objects/budget/modular_budget.rb +16 -0
- data/lib/kuality-coeus/page_objects/budget/non-personnel.rb +11 -0
- data/lib/kuality-coeus/page_objects/budget/parameters.rb +65 -0
- data/lib/kuality-coeus/page_objects/budget/personnel.rb +56 -0
- data/lib/kuality-coeus/page_objects/budget/rates.rb +7 -0
- data/lib/kuality-coeus/page_objects/budget/summary.rb +5 -0
- data/lib/kuality-coeus/page_objects/budget_document.rb +19 -0
- data/lib/kuality-coeus/page_objects/central_admin.rb +4 -2
- data/lib/kuality-coeus/page_objects/committee/committee.rb +10 -10
- data/lib/kuality-coeus/page_objects/committee/members.rb +4 -4
- data/lib/kuality-coeus/page_objects/committee_document.rb +1 -6
- data/lib/kuality-coeus/page_objects/confirmation.rb +16 -0
- data/lib/kuality-coeus/page_objects/disclosure/disclosure.rb +56 -0
- data/lib/kuality-coeus/page_objects/disclosure/disclosure_actions.rb +9 -0
- data/lib/kuality-coeus/page_objects/document_header.rb +5 -0
- data/lib/kuality-coeus/page_objects/financial_entities.rb +1 -4
- data/lib/kuality-coeus/page_objects/financial_entities/my_financial_entities.rb +6 -0
- data/lib/kuality-coeus/page_objects/financial_entities/new_financial_entity.rb +11 -0
- data/lib/kuality-coeus/page_objects/financial_entities/reporter.rb +5 -3
- data/lib/kuality-coeus/page_objects/identity/person.rb +57 -0
- data/lib/kuality-coeus/page_objects/institute_rates_maintenance.rb +18 -0
- data/lib/kuality-coeus/page_objects/institutional_proposal.rb +18 -0
- data/lib/kuality-coeus/page_objects/institutional_proposal/contacts.rb +32 -0
- data/lib/kuality-coeus/page_objects/institutional_proposal/custom_data.rb +6 -0
- data/lib/kuality-coeus/page_objects/institutional_proposal/distribution.rb +20 -0
- data/lib/kuality-coeus/page_objects/institutional_proposal/institutional_proposal.rb +27 -0
- data/lib/kuality-coeus/page_objects/institutional_proposal/institutional_proposal_actions.rb +7 -0
- data/lib/kuality-coeus/page_objects/institutional_proposal/intellectual_property_review.rb +20 -0
- data/lib/kuality-coeus/page_objects/institutional_proposal/special_review.rb +6 -0
- data/lib/kuality-coeus/page_objects/kc_awards.rb +48 -0
- data/lib/kuality-coeus/page_objects/kc_protocol.rb +15 -0
- data/lib/kuality-coeus/page_objects/login.rb +4 -5
- data/lib/kuality-coeus/page_objects/lookup_pages/000_lookups.rb +10 -0
- data/lib/kuality-coeus/page_objects/lookup_pages/action_list_filter.rb +6 -0
- data/lib/kuality-coeus/page_objects/lookup_pages/address_book_lookup.rb +4 -0
- data/lib/kuality-coeus/page_objects/lookup_pages/development_proposal_lookup.rb +3 -0
- data/lib/kuality-coeus/page_objects/lookup_pages/document_search.rb +10 -0
- data/lib/kuality-coeus/page_objects/lookup_pages/group_lookup.rb +3 -0
- data/lib/kuality-coeus/page_objects/lookup_pages/institute_rates_lookup.rb +12 -0
- data/lib/kuality-coeus/page_objects/lookup_pages/opportunity_lookup.rb +6 -0
- data/lib/kuality-coeus/page_objects/lookup_pages/organization_lookup.rb +5 -0
- data/lib/kuality-coeus/page_objects/lookup_pages/person_extended_attributes.rb +5 -0
- data/lib/kuality-coeus/page_objects/lookup_pages/person_lookup.rb +10 -0
- data/lib/kuality-coeus/page_objects/lookup_pages/role_lookup.rb +6 -0
- data/lib/kuality-coeus/page_objects/lookup_pages/sponsor_lookup.rb +9 -0
- data/lib/kuality-coeus/page_objects/lookup_pages/unit_admin_lookup.rb +3 -0
- data/lib/kuality-coeus/page_objects/lookup_pages/unit_lookup.rb +3 -0
- data/lib/kuality-coeus/page_objects/maintenance.rb +7 -0
- data/lib/kuality-coeus/page_objects/notification_editor.rb +6 -0
- data/lib/kuality-coeus/page_objects/proposal_development.rb +7 -2
- data/lib/kuality-coeus/page_objects/proposal_development/abstracts_and_attachments.rb +54 -0
- data/lib/kuality-coeus/page_objects/proposal_development/key_personnel.rb +126 -0
- data/lib/kuality-coeus/page_objects/proposal_development/pd_custom_data.rb +6 -0
- data/lib/kuality-coeus/page_objects/proposal_development/permissions.rb +44 -0
- data/lib/kuality-coeus/page_objects/proposal_development/phs_fellowship_questionnaire.rb +44 -0
- data/lib/kuality-coeus/page_objects/proposal_development/phs_training_budget_questionnaire.rb +50 -0
- data/lib/kuality-coeus/page_objects/proposal_development/proposal.rb +47 -8
- data/lib/kuality-coeus/page_objects/proposal_development/proposal_actions.rb +62 -0
- data/lib/kuality-coeus/page_objects/proposal_development/proposal_summary.rb +9 -0
- data/lib/kuality-coeus/page_objects/proposal_development/questions.rb +111 -0
- data/lib/kuality-coeus/page_objects/proposal_development/s2s.rb +35 -0
- data/lib/kuality-coeus/page_objects/proposal_development/special_review.rb +6 -0
- data/lib/kuality-coeus/page_objects/protocol/custom_data.rb +6 -0
- data/lib/kuality-coeus/page_objects/protocol/permissions.rb +5 -0
- data/lib/kuality-coeus/page_objects/protocol/personnel.rb +5 -0
- data/lib/kuality-coeus/page_objects/protocol/protocol.rb +11 -0
- data/lib/kuality-coeus/page_objects/protocol/questionnaire.rb +5 -0
- data/lib/kuality-coeus/page_objects/protocol/special_review.rb +6 -0
- data/lib/kuality-coeus/page_objects/rejection_confirmation.rb +5 -0
- data/lib/kuality-coeus/page_objects/researcher.rb +4 -2
- data/lib/kuality-coeus/page_objects/shared/unit_administrator.rb +13 -0
- data/lib/kuality-coeus/page_objects/system/person_extended_attributes.rb +18 -0
- data/lib/kuality-coeus/page_objects/system_admin.rb +7 -0
- data/lib/kuality-coeus/page_objects/unit.rb +2 -4
- data/lib/kuality-coeus/utilities.rb +39 -0
- data/libpeerconnection.log +0 -0
- metadata +140 -5
- data/lib/kuality-coeus/data_objects/committee_document.rb +0 -65
- data/lib/kuality-coeus/data_objects/proposal_development.rb +0 -53
- data/lib/kuality-coeus/navigation.rb +0 -3
@@ -1,7 +1,9 @@
|
|
1
1
|
class CentralAdmin < BasePage
|
2
2
|
|
3
|
-
page_url "#{$base_url}selectedTab=portalCentralAdminBody"
|
3
|
+
page_url "#{$base_url}portal.do?selectedTab=portalCentralAdminBody"
|
4
4
|
|
5
|
-
|
5
|
+
links 'Create Committee'
|
6
|
+
|
7
|
+
action(:create_award) { |b| b.frm.link(title: 'Award').click; b.loading }
|
6
8
|
|
7
9
|
end
|
@@ -2,20 +2,20 @@ class Committee < CommitteeDocument
|
|
2
2
|
|
3
3
|
document_header_elements
|
4
4
|
committee_header_elements
|
5
|
+
description_field
|
5
6
|
|
6
|
-
element(:
|
7
|
-
element(:
|
8
|
-
element(:
|
9
|
-
element(:
|
10
|
-
element(:
|
11
|
-
element(:
|
12
|
-
element(:
|
13
|
-
|
14
|
-
value(:last_updated) { |p| p.com_table.row(text: /Last Updated:/).cell(index: -1).text }
|
7
|
+
element(:committee_id_field) { |b| b.frm.text_field(id: 'document.committeeList[0].committeeId') }
|
8
|
+
element(:committee_name_field) { |b| b.frm.text_field(id: 'document.committeeList[0].committeeName') }
|
9
|
+
element(:home_unit) { |b| b.frm.text_field(id: 'document.committeeList[0].homeUnitNumber') }
|
10
|
+
element(:min_members_for_quorum) { |b| b.frm.text_field(id: 'document.committeeList[0].minimumMembersRequired') }
|
11
|
+
element(:maximum_protocols) { |b| b.frm.text_field(id: 'document.committeeList[0].maxProtocols') }
|
12
|
+
element(:adv_submission_days) { |b| b.frm.text_field(id: 'document.committeeList[0].advancedSubmissionDaysRequired') }
|
13
|
+
element(:review_type) { |b| b.frm.select(id: 'document.committeeList[0].reviewTypeCode') }
|
14
|
+
#value(:last_updated) { |p| p.com_table.row(text: /Last Updated:/).cell(index: -1).text }
|
15
15
|
value(:updated_user) { |p| p.com_table.row(text: /Updated User:/).cell(index: -1).text }
|
16
16
|
|
17
17
|
private
|
18
18
|
|
19
|
-
element(:com_table) { |b| b.frm.div(id:
|
19
|
+
element(:com_table) { |b| b.frm.div(id: 'tab-Committee-div').table }
|
20
20
|
|
21
21
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
class Members < CommitteeDocument
|
2
2
|
|
3
|
-
action(:employee_search) { |b| b.frm.image(name:
|
4
|
-
action(:non_employee_search) { |b| b.frm.image(name:
|
5
|
-
action(:clear) { |b| b.frm.image(name:
|
6
|
-
action(:add_member) { |b| b.frm.image(name:
|
3
|
+
action(:employee_search) { |b| b.frm.image(name: 'methodToCall.performLookup.(!!org.kuali.kra.bo.KcPerson!!).(((personId:committeeHelper.newCommitteeMembership.personId,fullName:committeeHelper.newCommitteeMembership.personName))).((``)).((<>)).(([])).((**)).((^^)).((&&)).((//)).((~~)).(::::;;::::).anchor').click }
|
4
|
+
action(:non_employee_search) { |b| b.frm.image(name: 'methodToCall.performLookup.(!!org.kuali.kra.bo.NonOrganizationalRolodex!!).(((rolodexId:committeeHelper.newCommitteeMembership.rolodexId,fullName:committeeHelper.newCommitteeMembership.personName))).((``)).((<>)).(([])).((**)).((^^)).((&&)).((//)).((~~)).(::::;;::::).anchor').click }
|
5
|
+
action(:clear) { |b| b.frm.image(name: 'methodToCall.clearCommitteeMembership').click }
|
6
|
+
action(:add_member) { |b| b.frm.image(name: 'methodToCall.addCommitteeMembership').click }
|
7
7
|
|
8
8
|
end
|
@@ -1,14 +1,9 @@
|
|
1
1
|
class CommitteeDocument < BasePage
|
2
2
|
|
3
|
-
frame_element
|
4
|
-
global_buttons
|
5
|
-
|
6
3
|
class << self
|
7
4
|
|
8
5
|
def committee_header_elements
|
9
|
-
|
10
|
-
element(:members) { |b| b.frm.button(value: "Members") }
|
11
|
-
element(:schedule) { |b| b.frm.button(value: "Schedule") }
|
6
|
+
buttons 'Committee', 'Members', 'Schedule'
|
12
7
|
end
|
13
8
|
|
14
9
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class Confirmation < BasePage
|
2
|
+
|
3
|
+
global_buttons
|
4
|
+
|
5
|
+
element(:yes_button) { |b| b.frm.button(name: 'methodToCall.processAnswer.button0', class: 'confirm') }
|
6
|
+
element(:reason) { |b| b.frm.text_field(name: 'reason') }
|
7
|
+
alias_method :recall_reason, :reason
|
8
|
+
action(:yes) { |b| b.yes_button.click; b.loading }
|
9
|
+
action(:no) { |b| b.frm.button(class: 'confirm', name: 'methodToCall.processAnswer.button1').click; b.loading }
|
10
|
+
action(:return_to_document) { |b| b.frm.button(class: 'confirm', name: 'methodToCall.processAnswer.button2').click; b.loading }
|
11
|
+
alias_method :copy_all_periods, :yes
|
12
|
+
alias_method :copy_one_period_only, :no
|
13
|
+
alias_method :recall_to_action_list, :yes
|
14
|
+
alias_method :recall_and_cancel, :no
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
class Disclosure < BasePage
|
2
|
+
|
3
|
+
document_header_elements
|
4
|
+
error_messages
|
5
|
+
tab_buttons
|
6
|
+
description_field
|
7
|
+
|
8
|
+
action(:disclosure_actions) { |b| b.frm.button(value: 'Disclosure Actions').click }
|
9
|
+
|
10
|
+
element(:unit_number) { |b| b.frm.text_field(name: 'disclosureHelper.newDisclosurePersonUnit.unitNumber') }
|
11
|
+
element(:lead_unit) { |b| b.frm.checkbox(name: 'disclosureHelper.newDisclosurePersonUnit.leadUnitFlag') }
|
12
|
+
action(:add_unit) { |b| b.frm.button(name: 'methodToCall.addDisclosurePersonUnit.line').click; b.loading }
|
13
|
+
|
14
|
+
element(:acknowledgement) { |b| b.frm.checkbox(id: 'certCheckbox') }
|
15
|
+
action(:submit) { |b| b.frm.button(name: 'methodToCall.submitDisclosureCertification').click; b.loading }
|
16
|
+
|
17
|
+
element(:event_type) { |b| b.frm.select(name: 'disclosureHelper.newCoiDisclProject.disclosureEventType') }
|
18
|
+
element(:award_number) { |b| b.frm.text_field(name: 'disclosureHelper.newCoiDisclProject.coiProjectId') }
|
19
|
+
alias_method :project_id, :award_number
|
20
|
+
alias_method :protocol_number, :award_number
|
21
|
+
alias_method :event_id, :award_number
|
22
|
+
|
23
|
+
element(:award_title) { |b| b.frm.text_field(name: 'disclosureHelper.newCoiDisclProject.coiProjectTitle') }
|
24
|
+
alias_method :project_title, :award_title
|
25
|
+
alias_method :protocol_name, :award_title
|
26
|
+
alias_method :event_title, :award_title
|
27
|
+
|
28
|
+
element(:sponsor) { |b| b.frm.text_field(name: 'disclosureHelper.newCoiDisclProject.longTextField1') }
|
29
|
+
alias_method :entity_name, :sponsor
|
30
|
+
|
31
|
+
element(:project_role) { |b| b.frm.text_field(name: 'disclosureHelper.newCoiDisclProject.shortTextField1') }
|
32
|
+
alias_method :destination, :project_role
|
33
|
+
|
34
|
+
element(:travel_sponsor) { |b| b.frm.text_field(name: 'disclosureHelper.newCoiDisclProject.longTextField2') }
|
35
|
+
|
36
|
+
element(:project_funding_amount) { |b| b.frm.text_field(name: 'disclosureHelper.newCoiDisclProject.numberField1') }
|
37
|
+
alias_method :reimbursement, :project_funding_amount
|
38
|
+
|
39
|
+
element(:purpose_of_travel) { |b| b.frm.text_field(name: 'disclosureHelper.newCoiDisclProject.longTextField3') }
|
40
|
+
|
41
|
+
element(:award_date) { |b| b.frm.text_field(name: 'disclosureHelper.newCoiDisclProject.dateField1') }
|
42
|
+
alias_method :project_start_date, :award_date
|
43
|
+
alias_method :start_date, :project_start_date
|
44
|
+
|
45
|
+
element(:project_end_date) { |b| b.frm.text_field(name: 'disclosureHelper.newCoiDisclProject.dateField2') }
|
46
|
+
alias_method :end_date, :project_end_date
|
47
|
+
|
48
|
+
element(:project_type) { |b| b.frm.select(name: 'selectBox1-placeholder') }
|
49
|
+
alias_method :protocol_type, :project_type
|
50
|
+
|
51
|
+
action(:add_event) { |b| b.frm.button(name: 'methodToCall.addManualProject.anchorManualEventandFinancialEntities').click; b.loading }
|
52
|
+
|
53
|
+
action(:save) { |b| b.frm.button(class: 'globalbuttons', title: 'save').click; b.loading }
|
54
|
+
action(:close) { |b| b.frm.button(class: 'globalbuttons', title: 'close').click; b.loading }
|
55
|
+
|
56
|
+
end
|
@@ -1,14 +1,11 @@
|
|
1
1
|
class FinancialEntities < BasePage
|
2
2
|
|
3
|
-
frame_element
|
4
3
|
global_buttons
|
5
4
|
|
6
5
|
class << self
|
7
6
|
|
8
7
|
def financial_entities_tabs
|
9
|
-
|
10
|
-
action(:new_financial_entity) { |b| b.frm.button(value: "New Financial Entity").click }
|
11
|
-
action(:my_financial_entities) { |b| b.frm.button(value: "My Financial Entities").click }
|
8
|
+
buttons 'Reporter', 'New Financial Entity', 'My Financial Entities'
|
12
9
|
end
|
13
10
|
|
14
11
|
end
|
@@ -2,4 +2,15 @@ class NewFinancialEntity < FinancialEntities
|
|
2
2
|
|
3
3
|
financial_entities_tabs
|
4
4
|
|
5
|
+
element(:entity_name) { |b| b.frm.text_field(id: 'financialEntityHelper.newPersonFinancialEntity.entityName') }
|
6
|
+
element(:address_line_1) { |b| b.frm.text_field(id: 'financialEntityHelper.newPersonFinancialEntity.finEntityContactInfos[0].addressLine1') }
|
7
|
+
element(:city) { |b| b.frm.text_field(id: 'financialEntityHelper.newPersonFinancialEntity.finEntityContactInfos[0].city') }
|
8
|
+
element(:country_code) { |b| b.frm.select(id: 'financialEntityHelper.newPersonFinancialEntity.finEntityContactInfos[0].countryCode') }
|
9
|
+
element(:postal_code) { |b| b.frm.text_field(id: 'financialEntityHelper.newPersonFinancialEntity.finEntityContactInfos[0].postalCode') }
|
10
|
+
element(:type) { |b| b.frm.select(id: 'financialEntityHelper.newPersonFinancialEntity.entityTypeCode') }
|
11
|
+
element(:status_code) { |b| b.frm.select(id: 'financialEntityHelper.newPersonFinancialEntity.statusCode') }
|
12
|
+
element(:held) { |b| b.frm.select(id: 'financialEntityHelper.newPersonFinancialEntity.entityOwnershipType') }
|
13
|
+
element(:principal_activity) { |b| b.frm.text_field(name: 'financialEntityHelper.newPersonFinancialEntity.principalBusinessActivity') }
|
14
|
+
action(:sponsor_research) { |answer, b| b.frm.radio(name: 'financialEntityHelper.newPersonFinancialEntity.entitySponsorsResearch', value: answer) }
|
15
|
+
|
5
16
|
end
|
@@ -1,11 +1,13 @@
|
|
1
1
|
class Reporter < FinancialEntities
|
2
2
|
|
3
3
|
financial_entities_tabs
|
4
|
+
tab_buttons
|
4
5
|
|
5
|
-
element(:contact_info) { |b| b.frm.table(id:
|
6
|
+
element(:contact_info) { |b| b.frm.table(id: 'response-table').table(class: 'tab') }
|
6
7
|
element(:full_name) { |p| p.contact_info[0][1].text }
|
7
8
|
|
8
|
-
element(:unit_number) { |b| b.frm.text_field(id:
|
9
|
-
|
9
|
+
element(:unit_number) { |b| b.frm.text_field(id: 'financialEntityHelper.newFinancialEntityReporterUnit.unitNumber') }
|
10
|
+
element(:lead_unit) { |b| b.frm.checkbox(name: 'financialEntityHelper.newFinancialEntityReporterUnit.leadUnitFlag') }
|
11
|
+
action(:add_unit) { |b| b.frm.button(name: 'methodToCall.addFinancialEntityReporterUnit.line').click; b.loading }
|
10
12
|
|
11
13
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
class Person < BasePage
|
2
|
+
|
3
|
+
document_header_elements
|
4
|
+
global_buttons
|
5
|
+
tab_buttons
|
6
|
+
description_field
|
7
|
+
|
8
|
+
element(:principal_name) { |b| b.frm.text_field(id: 'document.principalName') }
|
9
|
+
value(:principal_id) { |b| b.frm.div(id: 'tab-Overview-div').table[0][3].text }
|
10
|
+
element(:affiliation_type) { |b| b.frm.select(id: 'newAffln.affiliationTypeCode') }
|
11
|
+
element(:campus_code) { |b| b.frm.select(id: 'newAffln.campusCode') }
|
12
|
+
element(:affiliation_default) { |b| b.frm.checkbox(id: 'newAffln.dflt') }
|
13
|
+
element(:first_name) { |b| b.frm.text_field(id: 'newName.firstName') }
|
14
|
+
element(:last_name) { |b| b.frm.text_field(id: 'newName.lastName') }
|
15
|
+
element(:name_default) { |b| b.frm.checkbox(id: 'newName.dflt') }
|
16
|
+
action(:add_affiliation) { |b| b.frm.button(name: 'methodToCall.addAffln.anchor').click }
|
17
|
+
element(:employee_id) { |b| b.frm.text_field(id: 'document.affiliations[0].newEmpInfo.employeeId') }
|
18
|
+
element(:employee_status) { |b| b.frm.select(id: 'document.affiliations[0].newEmpInfo.employmentStatusCode') }
|
19
|
+
element(:employee_type) { |b| b.frm.select(id: 'document.affiliations[0].newEmpInfo.employmentTypeCode') }
|
20
|
+
element(:primary_employment) { |b| b.frm.checkbox(id: 'document.affiliations[0].newEmpInfo.primary') }
|
21
|
+
element(:base_salary) { |b| b.frm.text_field(id: 'document.affiliations[0].newEmpInfo.baseSalaryAmount') }
|
22
|
+
element(:primary_dept_code) { |b| b.frm.text_field(name: 'document.affiliations[0].newEmpInfo.primaryDepartmentCode') }
|
23
|
+
action(:add_employment_information) { |b| b.frm.button(name: 'methodToCall.addEmpInfo.line0.anchor').click; b.loading }
|
24
|
+
action(:add_name) { |b| b.frm.button(name: 'methodToCall.addName.anchor').click }
|
25
|
+
element(:address_type) { |b| b.frm.select(id: 'newAddress.addressTypeCode') }
|
26
|
+
element(:line_1) { |b| b.frm.text_field(id: 'newAddress.line1') }
|
27
|
+
element(:line_2) { |b| b.frm.text_field(id: 'newAddress.line2') }
|
28
|
+
element(:line_3) { |b| b.frm.text_field(id: 'newAddress.line3') }
|
29
|
+
element(:city) { |b| b.frm.text_field(id: 'newAddress.city') }
|
30
|
+
element(:state) { |b| b.frm.select(id: 'newAddress.stateProvinceCode') }
|
31
|
+
element(:zip) { |b| b.frm.text_field(id: 'newAddress.postalCode') }
|
32
|
+
element(:country) { |b| b.frm.select(id: 'newAddress.countryCode') }
|
33
|
+
element(:address_default) { |b| b.frm.checkbox(id: 'newAddress.dflt') }
|
34
|
+
action(:add_address) { |b| b.frm.button(name: 'methodToCall.addAddress.anchor').click; b.loading }
|
35
|
+
element(:phone_type) { |b| b.frm.select(id: 'newPhone.phoneTypeCode') }
|
36
|
+
element(:phone_number) { |b| b.frm.text_field(id: 'newPhone.phoneNumber') }
|
37
|
+
element(:phone_default) { |b| b.frm.checkbox(id: 'newPhone.dflt') }
|
38
|
+
action(:add_phone) { |b| b.frm.button(name: 'methodToCall.addPhone.anchor').click; b.loading }
|
39
|
+
element(:email) { |b| b.frm.text_field(name: 'newEmail.emailAddress') }
|
40
|
+
element(:email_type) { |b| b.frm.select(name: 'newEmail.emailTypeCode') }
|
41
|
+
element(:email_default) { |b| b.frm.checkbox(name: 'newEmail.dflt') }
|
42
|
+
action(:add_email) { |b| b.frm.button(name: 'methodToCall.addEmail.anchor').click; b.loading }
|
43
|
+
element(:role_id) { |b| b.frm.text_field(id: 'newRole.roleId') }
|
44
|
+
action(:add_role) { |b| b.frm.button(name: 'methodToCall.addRole.anchor').click; b.loading }
|
45
|
+
element(:group_id) { |b| b.frm.text_field(id: 'newGroup.groupId') }
|
46
|
+
action(:add_group) { |b| b.frm.button(name: 'methodToCall.addGroup.anchor').click; b.loading }
|
47
|
+
|
48
|
+
action(:unit_number) { |role, b| b.frm.div(id: 'tab-Roles-div').table(index: 0).rows[b.role_row(role)+1].text_field(title: '* Unit Number') }
|
49
|
+
action(:add_role_qualifier) { |role, b| b.frm.div(id: 'tab-Roles-div').table(index: 0).rows[b.role_row(role)+1].button(name: /methodToCall.addRoleQualifier.line\d+.anchor/).click; b.loading }
|
50
|
+
|
51
|
+
# =========
|
52
|
+
private
|
53
|
+
# =========
|
54
|
+
|
55
|
+
action(:role_row) { |role, b| b.frm.div(id: 'tab-Roles-div').table(index: 0).rows.find_index{ |row| row.text.include?(role.to_s) } }
|
56
|
+
|
57
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class InstituteRatesMaintenance < BasePage
|
2
|
+
|
3
|
+
global_buttons
|
4
|
+
document_header_elements
|
5
|
+
error_messages
|
6
|
+
description_field
|
7
|
+
|
8
|
+
element(:activity_type_code) { |b| b.frm.text_field(name: 'document.newMaintainableObject.activityTypeCode') }
|
9
|
+
element(:fiscal_year) { |b| b.frm.text_field(name: 'document.newMaintainableObject.fiscalYear') }
|
10
|
+
element(:on_off_campus_flag) { |b| b.frm.checkbox(name: 'document.newMaintainableObject.onOffCampusFlag') }
|
11
|
+
element(:rate_class_code) { |b| b.frm.text_field(name: 'document.newMaintainableObject.rateClassCode') }
|
12
|
+
element(:rate_type_code) { |b| b.frm.text_field(name: 'document.newMaintainableObject.rateTypeCode') }
|
13
|
+
element(:start_date) { |b| b.frm.text_field(name: 'document.newMaintainableObject.startDate') }
|
14
|
+
element(:unit_number) { |b| b.frm.text_field(name: 'document.newMaintainableObject.unitNumber') }
|
15
|
+
element(:rate) { |b| b.frm.text_field(name: 'document.newMaintainableObject.instituteRate') }
|
16
|
+
element(:active) { |b| b.frm.checkbox(name: 'document.newMaintainableObject.active') }
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class KCInstitutionalProposal < BasePage
|
2
|
+
|
3
|
+
document_header_elements
|
4
|
+
tab_buttons
|
5
|
+
global_buttons
|
6
|
+
error_messages
|
7
|
+
|
8
|
+
class << self
|
9
|
+
|
10
|
+
def inst_prop_header_elements
|
11
|
+
buttons 'Institutional Proposal', 'Contacts', 'Custom Data', 'Special Review',
|
12
|
+
'Intellectual Property Review', 'Distribution', 'Medusa',
|
13
|
+
'Institutional Proposal Actions'
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
class IPContacts < KCInstitutionalProposal
|
2
|
+
|
3
|
+
inst_prop_header_elements
|
4
|
+
|
5
|
+
# Combined Credit Split
|
6
|
+
{
|
7
|
+
'recognition'=>1,
|
8
|
+
'responsibility'=>2,
|
9
|
+
'space'=>3,
|
10
|
+
'financial'=>4
|
11
|
+
}.each do |key, value|
|
12
|
+
# Makes methods for the person's 3 credit splits (doesn't have to take the full name of the person to work)
|
13
|
+
# Example: page.responsibility('Joe Schmoe').set '100.00'
|
14
|
+
action(key.to_sym) { |name, b| b.credit_split_div_table.row(text: /#{name}/)[value].text_field }
|
15
|
+
# Makes methods for the person's units' credit splits
|
16
|
+
# Example: page.unit_financial('Jane Schmoe', 'Unit').set '50.0'
|
17
|
+
action("unit_#{key}".to_sym) { |full_name, unit_name, p| p.target_unit_row(full_name, unit_name)[value].text_field }
|
18
|
+
end
|
19
|
+
|
20
|
+
# =======
|
21
|
+
private
|
22
|
+
# =======
|
23
|
+
|
24
|
+
element(:credit_split_div_table) { |b| b.frm.h3(text: 'Combined Credit Split').parent.table }
|
25
|
+
|
26
|
+
action(:target_unit_row) do |full_name, unit_number, p|
|
27
|
+
trows = p.credit_split_div_table.rows
|
28
|
+
index = trows.find_index { |row| row.text=~/#{full_name}/ }
|
29
|
+
trows[index..-1].find { |row| row.text=~/#{unit_number}/ }
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class Distribution < KCInstitutionalProposal
|
2
|
+
|
3
|
+
inst_prop_header_elements
|
4
|
+
|
5
|
+
element(:add_cost_share_project_period) { |b| b.frm.text_field(name: 'institutionalProposalCostShareBean.newInstitutionalProposalCostShare.projectPeriod') }
|
6
|
+
element(:add_cost_share_type) { |b| b.frm.select(name: 'institutionalProposalCostShareBean.newInstitutionalProposalCostShare.costShareTypeCode') }
|
7
|
+
element(:add_cost_share_percentage) { |b| b.frm.text_field(name: 'institutionalProposalCostShareBean.newInstitutionalProposalCostShare.costSharePercentage') }
|
8
|
+
element(:add_cost_share_source_account) { |b| b.frm.text_field(name: 'institutionalProposalCostShareBean.newInstitutionalProposalCostShare.sourceAccount') }
|
9
|
+
element(:add_cost_share_amount) { |b| b.frm.text_field(name: 'institutionalProposalCostShareBean.newInstitutionalProposalCostShare.amount') }
|
10
|
+
action(:add_cost_share) { |b| b.frm.button(name: 'methodToCall.addCostShare.anchorCostSharing').click; b.loading }
|
11
|
+
|
12
|
+
element(:add_unrec_f_a_fiscal_year) { |b| b.frm.text_field(name: 'institutionalProposalUnrecoveredFandABean.newInstitutionalProposalUnrecoveredFandA.fiscalYear') }
|
13
|
+
element(:add_rate_type) { |b| b.frm.select(name: 'institutionalProposalUnrecoveredFandABean.newInstitutionalProposalUnrecoveredFandA.indirectcostRateTypeCode') }
|
14
|
+
element(:add_fa_applicable_rate) { |b| b.frm.text_field(name: 'institutionalProposalUnrecoveredFandABean.newInstitutionalProposalUnrecoveredFandA.applicableIndirectcostRate') }
|
15
|
+
element(:add_fa_campus_flag) { |b| b.frm.checkbox(name: 'institutionalProposalUnrecoveredFandABean.newInstitutionalProposalUnrecoveredFandA.onCampusFlag') }
|
16
|
+
element(:add_fa_source_account) { |b| b.frm.text_field(name: 'institutionalProposalUnrecoveredFandABean.newInstitutionalProposalUnrecoveredFandA.sourceAccount') }
|
17
|
+
element(:add_fa_amount) { |b| b.frm.text_field(name: 'institutionalProposalUnrecoveredFandABean.newInstitutionalProposalUnrecoveredFandA.underrecoveryOfIndirectcost') }
|
18
|
+
action(:add_unrecovered_f_a) { |b| b.frm.button(name: 'methodToCall.addUnrecoveredFandA.anchorUnrecoveredFA').click; b.loading }
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class InstitutionalProposal < KCInstitutionalProposal
|
2
|
+
|
3
|
+
inst_prop_header_elements
|
4
|
+
description_field
|
5
|
+
|
6
|
+
value(:institutional_proposal_number) { |b| b.institutional_proposal_tab.table[0][1].text }
|
7
|
+
value(:status_ro) { |b| b.institutional_proposal_tab.table[2][3].text }
|
8
|
+
element(:status) { |b| b.frm.select(name: 'document.institutionalProposal.statusCode') }
|
9
|
+
element(:proposal_type) { |b| b.frm.select(name: 'document.institutionalProposalList[0].proposalTypeCode') }
|
10
|
+
element(:activity_type) { |b| b.frm.select(name: 'document.institutionalProposalList[0].activityTypeCode') }
|
11
|
+
element(:project_title) { |b| b.frm.text_field(name: 'document.institutionalProposalList[0].title') }
|
12
|
+
element(:sponsor_id) { |b| b.frm.text_field(name: 'document.institutionalProposalList[0].sponsorCode') }
|
13
|
+
|
14
|
+
# ===========
|
15
|
+
private
|
16
|
+
# ===========
|
17
|
+
|
18
|
+
element(:document_overview_tab) { |b| b.frm.div(id: 'tab-DocumentOverview-div') }
|
19
|
+
element(:institutional_proposal_tab) { |b| b.frm.div(id: 'tab-InstitutionalProposal-div') }
|
20
|
+
element(:sponsor_program_info_tab) { |b| b.frm.div(id: 'tab-SponsorProgramInformation-div') }
|
21
|
+
element(:financial_tab) { |b| b.frm.div(id: 'tab-Financial-div') }
|
22
|
+
element(:graduate_students_tab) { |b| b.frm.div(id: 'tab-GraduateStudents-div') }
|
23
|
+
element(:notes_and_attachments_tab) { |b| b.frm.div(id: 'tab-NotesandAttachments-div') }
|
24
|
+
element(:delivery_info_tab) { |b| b.frm.div(id: 'tab-DeliveryInfo-div') }
|
25
|
+
element(:keywords_tab) { |b| b.frm.div(id: 'tab-Keywords-div') }
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class IPReview < KCInstitutionalProposal
|
2
|
+
|
3
|
+
inst_prop_header_elements
|
4
|
+
route_log
|
5
|
+
description_field
|
6
|
+
|
7
|
+
glbl 'Edit IP Review'
|
8
|
+
|
9
|
+
# TODO: Determine if this is the right structure for this class, given that to edit the page
|
10
|
+
# results in taking the user out of the context of the Institutional Proposal
|
11
|
+
|
12
|
+
element(:submitted_for_review) { |b| b.frm.text_field(name: 'document.newMaintainableObject.reviewSubmissionDate') }
|
13
|
+
element(:reviewer) { |b| b.frm.text_field(name: 'document.newMaintainableObject.person.userName') }
|
14
|
+
action(:find_reviewer) { |b| b.frm.button(name: 'methodToCall.performLookup.(!!org.kuali.rice.kim.api.identity.Person!!).((())).((``)).((<>)).(([])).((**)).((^^)).((&&)).((//)).((~~)).(::::;;::::).anchor4').click }
|
15
|
+
|
16
|
+
element(:activity_number) { |b| b.frm.text_field(name: 'document.newMaintainableObject.add.ipReviewActivities.activityNumber') }
|
17
|
+
element(:ip_review_activity_type_code) { |b| b.frm.select(name: 'document.newMaintainableObject.add.ipReviewActivities.ipReviewActivityTypeCode') }
|
18
|
+
action(:add_activity) { |b| b.frm.button(id: 'methodToCall.addLine.ipReviewActivities.(!!org.kuali.kra.institutionalproposal.ipreview.IntellectualPropertyReviewActivity!!)').click; b.loading }
|
19
|
+
|
20
|
+
end
|