From a263447806f4b97f5dd9820f66ec7af2f69a74a0 Mon Sep 17 00:00:00 2001 From: NWalker4483 Date: Tue, 20 Jul 2021 13:57:32 -0400 Subject: [PATCH 1/9] Merges getStudyAssociates() endpoint --- .gitignore | 2 +- .sonarcloud.properties | 0 .travis.yml | 0 Dockerfile | 0 LICENSE.md | 0 Pipfile | 0 Pipfile.lock | 0 README.md | 0 config/default.py | 0 config/logging_example.py | 0 config/testing.py | 0 crc/__init__.py | 0 crc/api.yml | 0 crc/api/__init__.py | 0 crc/api/admin.py | 0 crc/api/common.py | 0 crc/api/data_store.py | 0 crc/api/document.py | 0 crc/api/file.py | 0 crc/api/study.py | 0 crc/api/tools.py | 0 crc/api/user.py | 0 crc/api/workflow.py | 0 crc/api/workflow_sync.py | 0 crc/models/__init__.py | 0 crc/models/api_models.py | 0 crc/models/data_store.py | 0 crc/models/email.py | 0 crc/models/file.py | 0 crc/models/ldap.py | 0 crc/models/protocol_builder.py | 0 crc/models/study.py | 1 + crc/models/task_event.py | 0 crc/models/user.py | 0 crc/models/workflow.py | 0 crc/scripts/__init__.py | 0 crc/scripts/check_study.py | 0 crc/scripts/complete_template.py | 0 crc/scripts/delete_file.py | 0 crc/scripts/email.py | 0 crc/scripts/fact_service.py | 0 crc/scripts/failing_script.py | 0 crc/scripts/file_data_get.py | 0 crc/scripts/file_data_set.py | 0 crc/scripts/get_dashboard_url.py | 0 crc/scripts/get_irb_info.py | 0 crc/scripts/get_study_associate.py | 0 crc/scripts/get_study_associates.py | 0 crc/scripts/is_file_uploaded.py | 0 crc/scripts/ldap.py | 0 crc/scripts/reset_workflow.py | 0 crc/scripts/script.py | 0 crc/scripts/study_data_get.py | 0 crc/scripts/study_data_set.py | 0 crc/scripts/study_info.py | 0 crc/scripts/update_study.py | 0 crc/scripts/update_study_associate.py | 0 crc/scripts/update_study_associates.py | 0 crc/scripts/user_data_get.py | 0 crc/scripts/user_data_set.py | 0 crc/services/__init__.py | 0 crc/services/cache_service.py | 0 crc/services/data_store_service.py | 0 crc/services/document_service.py | 0 crc/services/email_service.py | 0 crc/services/error_service.py | 0 crc/services/failing_service.py | 0 crc/services/file_service.py | 0 crc/services/ldap_service.py | 0 crc/services/lookup_service.py | 0 crc/services/protocol_builder.py | 0 crc/services/study_service.py | 14 ++++++++++++-- crc/services/user_service.py | 0 crc/services/workflow_processor.py | 0 crc/services/workflow_service.py | 4 ++-- crc/services/workflow_sync.py | 0 crc/static/bpmn/abandoned/abandoned.bpmn | 0 crc/static/bpmn/core_info/SponsorList.xls | Bin crc/static/bpmn/core_info/core_info.bpmn | 0 .../decision_core_info_multi_site_q12.dmn | 0 .../decision_core_info_multi_site_q14.dmn | 0 .../decision_core_info_multi_site_q28.dmn | 0 crc/static/bpmn/data_security_plan/HIPAA_Ids.xls | Bin .../bpmn/data_security_plan/NEW_DSP_template.docx | Bin .../UVA_ServersWebsitesList.xls | Bin .../data_security_plan/data_security_plan.bpmn | 0 .../decision_dept_chair.dmn | 0 .../dept_chair_approval.bpmn | 0 .../documents_approvals/documents_approvals.bpmn | 0 .../bpmn/enrollment_date/enrollment_date.bpmn | 0 crc/static/bpmn/finance/finance.bpmn | 0 crc/static/bpmn/hold/hold.bpmn | 0 crc/static/bpmn/ide_supplement/SponsorList.xls | Bin .../bpmn/ide_supplement/decision_ide_check.dmn | 0 crc/static/bpmn/ide_supplement/ide_update.bpmn | 0 .../ids_full_submission/ids_full_submission.bpmn | 0 .../investigators_brochure.dmn | 0 .../bpmn/ids_full_submission/ivrs_iwrs_ixrs.dmn | 0 .../bpmn/ids_full_submission/pharmacy_manual.dmn | 0 crc/static/bpmn/ids_waiver/ids_waiver.bpmn | 0 crc/static/bpmn/ind_update/SponsorList.xls | Bin crc/static/bpmn/ind_update/decision_ind_check.dmn | 0 .../bpmn/ind_update/decision_ind_uva_check.dmn | 0 crc/static/bpmn/ind_update/ind_update.bpmn | 0 .../bpmn/irb_api_details/irb_api_details.bpmn | 0 .../DepartmentList-ArtsSciences.xlsx | Bin .../DepartmentList-Education.xlsx | Bin .../DepartmentList-Medicine.xlsx | Bin crc/static/bpmn/irb_api_personnel/SchoolList.xls | Bin .../bpmn/irb_api_personnel/check_for_pi.dmn | 0 .../irb_api_personnel/decision_dept_chair.dmn | 0 .../bpmn/irb_api_personnel/decision_pi_dept.dmn | 0 .../bpmn/irb_api_personnel/decision_pi_school.dmn | 0 crc/static/bpmn/irb_api_personnel/decision_ro.dmn | 0 .../bpmn/irb_api_personnel/decision_ro_chair.dmn | 0 .../bpmn/irb_api_personnel/decision_ro_dept.dmn | 0 .../bpmn/irb_api_personnel/irb_api_personnel.bpmn | 0 .../bpmn/non_uva_approval/non_uva_approval.bpmn | 0 crc/static/bpmn/notifications/notifications.bpmn | 0 crc/static/bpmn/protocol/protocol.bpmn | 0 crc/static/bpmn/research_rampup/BuildingList.xls | Bin .../DepartmentList-Architecture.xlsx | Bin .../DepartmentList-ArtsSciences.xlsx | Bin .../research_rampup/DepartmentList-Education.xlsx | Bin .../DepartmentList-Engineering.xlsx | Bin .../research_rampup/DepartmentList-Medicine.xlsx | Bin .../DepartmentList-ProvostOffice.xlsx | Bin .../bpmn/research_rampup/DepartmentList.xlsx | Bin crc/static/bpmn/research_rampup/LabSpaces.xlsx | Bin crc/static/bpmn/research_rampup/RTT_Approvers.dmn | 0 .../bpmn/research_rampup/ResearchRampUpPlan.docx | Bin crc/static/bpmn/research_rampup/SchoolList.xls | Bin .../research_rampup/exclusive_area_monitors.dmn | 0 .../bpmn/research_rampup/research_rampup.bpmn | 0 .../bpmn/research_rampup/shared_area_monitors.dmn | 0 .../rrt_top_level_workflow.bpmn | 0 .../rsc_hire_committee/decision_support_lang.dmn | 0 .../rsc_hire_committee/rsc_hire_committee.bpmn | 0 .../rsc_hire_submission/rsc_hire_submission.bpmn | 0 .../bpmn/sponsor_funding_source/SponsorList.xls | Bin .../sponsor_funding_source.bpmn | 0 .../top_level_workflow/data_security_plan.dmn | 0 .../bpmn/top_level_workflow/enter_core_info.dmn | 0 .../bpmn/top_level_workflow/ide_supplement.dmn | 0 .../top_level_workflow/ids_full_submission.dmn | 0 crc/static/bpmn/top_level_workflow/ids_waiver.dmn | 0 crc/static/bpmn/top_level_workflow/ind_update.dmn | 0 crc/static/bpmn/top_level_workflow/personnel.dmn | 0 .../top_level_workflow/sponsor_funding_source.dmn | 0 .../top_level_workflow/top_level_workflow.bpmn | 0 crc/static/jinja_extensions.py | 0 crc/static/reference/investigators.xlsx | Bin crc/static/reference/irb_documents.xlsx | Bin crc/static/reference/rrt_documents.xlsx | Bin crc/static/templates/placeholder.docx | Bin crc/static/templates/placeholder.png | Bin crc/static/uva_rotunda.svg | 0 crc/templates/mail_content_template.html | 0 crc/templates/mail_main_template.html | 0 crconnect.wsgi | 0 deploy/requirements.txt | 0 docs/Makefile | 0 docs/conf.py | 0 docs/index.rst | 0 docs/make.bat | 0 docs/protocol_builder.html | 0 example_data.py | 0 fact_runner.py | 0 migrations/README | 0 migrations/alembic.ini | 0 migrations/env.py | 0 migrations/script.py.mako | 0 migrations/versions/0718ad13e5f3_.py | 0 migrations/versions/0f38d7a36f21_.py | 0 migrations/versions/13424d5a6de8_.py | 0 migrations/versions/1685be1cc232_.py | 0 migrations/versions/17597692d0b0_.py | 0 migrations/versions/1c3f88dbccc3_.py | 0 migrations/versions/1fdd1bdb600e_.py | 0 migrations/versions/23c62c933848_.py | 0 migrations/versions/2e7b377cbc7b_.py | 0 migrations/versions/30e017a03948_.py | 0 migrations/versions/476f8a4933ba_.py | 0 migrations/versions/5064b72284b7_.py | 0 migrations/versions/55c6cd407d89_.py | 0 migrations/versions/5acd138e969c_.py | 0 migrations/versions/5e0709e172fa_.py | 0 migrations/versions/5f06108116ae_.py | 0 migrations/versions/62910318009f_.py | 0 migrations/versions/65f3fce6031a_.py | 0 migrations/versions/665624ac29f1_.py | 0 migrations/versions/69081f1ff387_.py | 0 migrations/versions/7be7cecbeea8_.py | 0 migrations/versions/7c0de7621a1f_.py | 0 migrations/versions/87af86338630_.py | 0 migrations/versions/8856126b6658_.py | 0 migrations/versions/8b976945a54e_.py | 0 migrations/versions/90dd63672e0a_.py | 0 migrations/versions/9b43e725f39c_.py | 0 migrations/versions/ab06a94e5d4c_.py | 0 ...effe547305_update_type_on_task_events_table.py | 0 migrations/versions/afecb64d2e66_.py | 0 migrations/versions/bbf064082623_.py | 0 migrations/versions/bec71f7dc652_.py | 0 migrations/versions/c1449d1d1681_.py | 0 migrations/versions/c16d3047abbe_.py | 0 migrations/versions/c4ddb69e7ef4_.py | 0 migrations/versions/c6261ac7a7bc_.py | 0 migrations/versions/c872232ebdcb_.py | 0 migrations/versions/cb892916166a_.py | 0 migrations/versions/cc4bccc5e5a8_.py | 0 ...8f6571c_merge_30e017a03948_and_c16d3047abbe.py | 0 migrations/versions/ddd5fc9ea75b_.py | 0 migrations/versions/de30304ff5e6_.py | 0 migrations/versions/e0dfdbfd6f69_add_columns.py | 0 migrations/versions/f186725c1ad3_.py | 0 migrations/versions/f28ee3722c49_.py | 0 migrations/versions/ff29528a9909_.py | 0 migrations/versions/ffef4661a37d_.py | 0 package-lock.json | 0 postgres/docker-compose.yml | 0 postgres/docker-windows-compose.yml | 0 postgres/package-lock.json | 0 postgres/pg-init-scripts/initdb.sh | 0 readme_images/new_project.png | Bin readme_images/run.png | Bin readme_images/run_config.png | Bin readme_images/settings.png | Bin run.py | 0 schema/__init__.py | 0 setup.cfg | 0 setup.py | 0 tests/__init__.py | 0 tests/base_test.py | 0 .../add_delete_irb_document.bpmn | 0 tests/data/associated_email/associated_email.bpmn | 0 .../boolean_default_value.bpmn | 0 .../check_study_script/check_study_script.bpmn | 0 tests/data/decision_table/decision_table.bpmn | 0 tests/data/decision_table/message_to_ginger.dmn | 0 .../decision_table_dictionary_output.bpmn | 0 .../decision_table_dictionary_output.dmn | 0 tests/data/decision_table_invalid/bad_dmn.dmn | 0 .../decision_table_invalid.bpmn | 0 tests/data/docx/Letter.docx | Bin tests/data/docx/docx.bpmn | 0 tests/data/email/email.bpmn | 0 .../email_dashboard_url/email_dashboard_url.bpmn | 0 tests/data/email_script/email_script.bpmn | 0 tests/data/empty_workflow/empty_workflow.bpmn | 0 tests/data/enum_empty_list/empty_spreadsheet.xlsx | Bin tests/data/enum_empty_list/enum_empty_list.bpmn | 0 .../enum_options_competing_files/animals.xlsx | Bin .../enum_options_competing_files.bpmn | 0 .../data/enum_options_competing_files/fruits.xlsx | Bin .../enum_options_from_file/customer_list.xlsx | Bin .../enum_options_from_file.bpmn | 0 .../enum_options_from_task_data.bpmn | 0 .../enum_options_with_search.bpmn | 0 tests/data/enum_options_with_search/sponsors.xlsx | Bin .../sponsors_modified.xlsx | Bin tests/data/enum_results/enum_results.bpmn | 0 .../Decision_Value_Expression.dmn | 0 .../enum_value_expression.bpmn | 0 .../Decision_Value_Expression.dmn | 0 .../enum_value_expression_fail.bpmn | 0 .../data/exclusive_gateway/exclusive_gateway.bpmn | 0 .../exclusive_gateway_2/exclusive_gateway_2.bpmn | 0 tests/data/extension_error/extension_error.bpmn | 0 .../failing_gateway_workflow.bpmn | 0 tests/data/failing_workflow/failing_workflow.bpmn | 0 tests/data/file_data_store/file_data_store.bpmn | 0 tests/data/file_upload_form/file_upload_form.bpmn | 0 .../file_upload_form_single.bpmn | 0 tests/data/form_expressions/form_expressions.bpmn | 0 .../get_study_associate/get_study_associate.bpmn | 0 tests/data/hello_world/hello_world.bpmn | 0 .../hidden_required_field.bpmn | 0 .../hidden_required_field_pass.bpmn | 0 .../hidden_required_field_pass_expression.bpmn | 0 tests/data/infinite_loop/infinite_loop.bpmn | 0 .../invalid_expression/invalid_expression.bpmn | 0 tests/data/invalid_roles/invalid_roles.bpmn | 0 tests/data/invalid_script/invalid_script.bpmn | 0 tests/data/invalid_script2/invalid_script2.bpmn | 0 tests/data/invalid_script3/invalid_script3.bpmn | 0 tests/data/invalid_spec/invalid_spec.bpmn | 0 .../data/irb_api_personnel/irb_api_personnel.bpmn | 0 tests/data/irb_info_script/irb_info_script.bpmn | 0 tests/data/ldap_lookup/ldap_lookup.bpmn | 0 tests/data/ldap_response.json | 0 tests/data/ldap_script/ldap_script.bpmn | 0 tests/data/looping_task/looping_task.bpmn | 0 .../Task_Manual_One.md | 0 .../manual_task_with_external_documentation.bpmn | 0 tests/data/message_event/message_event.bpmn | 0 tests/data/missing_form_key/missing_form_key.bpmn | 0 tests/data/multi_instance/multi_instance.bpmn | 0 .../multi_instance_parallel.bpmn | 0 tests/data/nav_order/nav_order.bpmn | 0 tests/data/parallel_tasks/parallel_tasks.bpmn | 0 tests/data/pb_responses/check_study.json | 0 tests/data/pb_responses/investigators.json | 0 tests/data/pb_responses/irb_info.json | 0 tests/data/pb_responses/required_docs.json | 0 tests/data/pb_responses/sponsors.json | 0 tests/data/pb_responses/study_details.json | 0 .../study_details_bad_review_type.json | 0 tests/data/pb_responses/user_studies.json | 0 tests/data/random_fact/random_fact.bpmn | 0 tests/data/random_fact/random_fact2.bpmn | 0 tests/data/read_only_field/read_only_field.bpmn | 0 tests/data/repeat_form/repeat_form.bpmn | 0 tests/data/required_fields/required_fields.bpmn | 0 tests/data/reset_workflow/reset_workflow.bpmn | 0 tests/data/roles/roles.bpmn | 0 .../script_with_name_error.bpmn | 0 .../study_cancellations/study_cancellations.bpmn | 0 tests/data/study_details/study_details.bpmn | 0 .../data/study_info_script/study_info_script.bpmn | 0 tests/data/study_sponsors/study_sponsors.bpmn | 0 .../study_sponsors_associate.bpmn | 0 .../study_sponsors_associate_fail.bpmn | 0 .../study_sponsors_associate_switch_user.bpmn | 0 .../study_sponsors_associates_delete.bpmn | 0 .../study_sponsors_data_store.bpmn | 0 tests/data/subprocess/subprocess.bpmn | 0 tests/data/table.docx | Bin .../test_value_expression.bpmn | 0 tests/data/timer_event/timer_event.bpmn | 0 .../data/timer_event_error/timer_event_error.bpmn | 0 .../top_level_workflow/data_security_plan.dmn | 0 tests/data/top_level_workflow/enter_core_info.dmn | 0 .../top_level_workflow/sponsor_funding_source.dmn | 0 .../top_level_workflow/top_level_workflow.bpmn | 0 .../two_forms/modified/two_forms_struc_mod.bpmn | 0 .../two_forms/modified/two_forms_text_mod.bpmn | 0 tests/data/two_forms/two_forms.bpmn | 0 tests/data/two_user_tasks/two_user_tasks.bpmn | 0 tests/data/verify_end_event/verify_end_event.bpmn | 0 .../workflow_form_field_name.bpmn | 0 .../workflow_form_field_type.bpmn | 0 .../workflow_sync_responses/random_fact2.bpmn | 0 tests/data/workflow_sync_responses/test.txt | 0 tests/emails/__init__.py | 0 tests/emails/test_email_script.py | 0 tests/emails/test_email_service.py | 0 tests/files/__init__.py | 0 tests/files/test_file_service.py | 0 tests/files/test_files_api.py | 0 tests/ldap/__init__.py | 0 tests/ldap/test_ldap_lookup_script.py | 0 tests/scripts/__init__.py | 0 tests/scripts/test_check_study.py | 0 .../test_get_study_associate_validation.py | 0 tests/study/__init__.py | 0 tests/study/test_get_study_from_model.py | 0 tests/study/test_study_actions_status.py | 0 tests/study/test_study_api.py | 0 tests/study/test_study_associate_script.py | 0 tests/study/test_study_cancellations.py | 0 tests/study/test_study_data_store_script.py | 0 tests/study/test_study_details.py | 0 tests/study/test_study_details_documents.py | 0 tests/study/test_study_service.py | 0 tests/study/test_study_sponsors_script.py | 0 tests/study/test_study_status_message.py | 0 tests/study/test_update_study_script.py | 0 tests/test_authentication.py | 0 tests/test_auto_set_primary_bpmn.py | 0 tests/test_complete_template_script.py | 0 tests/test_datastore_api.py | 0 tests/test_decision_table_dictionary_output.py | 0 tests/test_document_directories.py | 0 tests/test_email_script.py | 0 tests/test_events.py | 0 tests/test_file_datastore.py | 0 tests/test_get_dashboard_url_script.py | 0 tests/test_irb_info_script.py | 0 tests/test_is_file_uploaded_script.py | 0 tests/test_launch_workflow_outside_study.py | 0 tests/test_ldap_service.py | 0 tests/test_lookup_service.py | 0 tests/test_looping_task.py | 0 tests/test_message_event.py | 0 tests/test_multi_instance_tasks_api.py | 0 tests/test_protocol_builder.py | 0 tests/test_study_info_script.py | 0 tests/test_tasks_api.py | 0 tests/test_tools_api.py | 0 tests/test_user_in_logs.py | 0 tests/test_user_roles.py | 0 tests/test_verify_end_event.py | 0 tests/test_wait_event.py | 0 tests/test_workflow_api.py | 0 tests/test_workflow_sync.py | 0 tests/workflow/__init__.py | 0 .../workflow/test_duplicate_workflow_spec_file.py | 0 tests/workflow/test_workflow_boolean_default.py | 0 tests/workflow/test_workflow_customer_error.py | 0 .../workflow/test_workflow_delete_irb_document.py | 0 ...test_workflow_enum_default_value_expression.py | 0 tests/workflow/test_workflow_enum_empty_list.py | 0 tests/workflow/test_workflow_form_field_name.py | 0 tests/workflow/test_workflow_form_field_type.py | 0 .../test_workflow_hidden_required_field.py | 0 tests/workflow/test_workflow_infinite_loop.py | 0 tests/workflow/test_workflow_missing_form_key.py | 0 tests/workflow/test_workflow_name_error_hint.py | 0 tests/workflow/test_workflow_processor.py | 0 .../test_workflow_processor_multi_instance.py | 0 tests/workflow/test_workflow_read_only_field.py | 0 tests/workflow/test_workflow_reset.py | 0 tests/workflow/test_workflow_restart.py | 0 tests/workflow/test_workflow_service.py | 0 tests/workflow/test_workflow_spec_api.py | 0 .../workflow/test_workflow_spec_validation_api.py | 0 tests/workflow/test_workflow_value_expression.py | 0 wsgi.py | 0 419 files changed, 16 insertions(+), 5 deletions(-) mode change 100644 => 100755 .gitignore mode change 100644 => 100755 .sonarcloud.properties mode change 100644 => 100755 .travis.yml mode change 100644 => 100755 Dockerfile mode change 100644 => 100755 LICENSE.md mode change 100644 => 100755 Pipfile mode change 100644 => 100755 Pipfile.lock mode change 100644 => 100755 README.md mode change 100644 => 100755 config/default.py mode change 100644 => 100755 config/logging_example.py mode change 100644 => 100755 config/testing.py mode change 100644 => 100755 crc/__init__.py mode change 100644 => 100755 crc/api.yml mode change 100644 => 100755 crc/api/__init__.py mode change 100644 => 100755 crc/api/admin.py mode change 100644 => 100755 crc/api/common.py mode change 100644 => 100755 crc/api/data_store.py mode change 100644 => 100755 crc/api/document.py mode change 100644 => 100755 crc/api/file.py mode change 100644 => 100755 crc/api/study.py mode change 100644 => 100755 crc/api/tools.py mode change 100644 => 100755 crc/api/user.py mode change 100644 => 100755 crc/api/workflow.py mode change 100644 => 100755 crc/api/workflow_sync.py mode change 100644 => 100755 crc/models/__init__.py mode change 100644 => 100755 crc/models/api_models.py mode change 100644 => 100755 crc/models/data_store.py mode change 100644 => 100755 crc/models/email.py mode change 100644 => 100755 crc/models/file.py mode change 100644 => 100755 crc/models/ldap.py mode change 100644 => 100755 crc/models/protocol_builder.py mode change 100644 => 100755 crc/models/study.py mode change 100644 => 100755 crc/models/task_event.py mode change 100644 => 100755 crc/models/user.py mode change 100644 => 100755 crc/models/workflow.py mode change 100644 => 100755 crc/scripts/__init__.py mode change 100644 => 100755 crc/scripts/check_study.py mode change 100644 => 100755 crc/scripts/complete_template.py mode change 100644 => 100755 crc/scripts/delete_file.py mode change 100644 => 100755 crc/scripts/email.py mode change 100644 => 100755 crc/scripts/fact_service.py mode change 100644 => 100755 crc/scripts/failing_script.py mode change 100644 => 100755 crc/scripts/file_data_get.py mode change 100644 => 100755 crc/scripts/file_data_set.py mode change 100644 => 100755 crc/scripts/get_dashboard_url.py mode change 100644 => 100755 crc/scripts/get_irb_info.py mode change 100644 => 100755 crc/scripts/get_study_associate.py mode change 100644 => 100755 crc/scripts/get_study_associates.py mode change 100644 => 100755 crc/scripts/is_file_uploaded.py mode change 100644 => 100755 crc/scripts/ldap.py mode change 100644 => 100755 crc/scripts/reset_workflow.py mode change 100644 => 100755 crc/scripts/script.py mode change 100644 => 100755 crc/scripts/study_data_get.py mode change 100644 => 100755 crc/scripts/study_data_set.py mode change 100644 => 100755 crc/scripts/study_info.py mode change 100644 => 100755 crc/scripts/update_study.py mode change 100644 => 100755 crc/scripts/update_study_associate.py mode change 100644 => 100755 crc/scripts/update_study_associates.py mode change 100644 => 100755 crc/scripts/user_data_get.py mode change 100644 => 100755 crc/scripts/user_data_set.py mode change 100644 => 100755 crc/services/__init__.py mode change 100644 => 100755 crc/services/cache_service.py mode change 100644 => 100755 crc/services/data_store_service.py mode change 100644 => 100755 crc/services/document_service.py mode change 100644 => 100755 crc/services/email_service.py mode change 100644 => 100755 crc/services/error_service.py mode change 100644 => 100755 crc/services/failing_service.py mode change 100644 => 100755 crc/services/file_service.py mode change 100644 => 100755 crc/services/ldap_service.py mode change 100644 => 100755 crc/services/lookup_service.py mode change 100644 => 100755 crc/services/protocol_builder.py mode change 100644 => 100755 crc/services/study_service.py mode change 100644 => 100755 crc/services/user_service.py mode change 100644 => 100755 crc/services/workflow_processor.py mode change 100644 => 100755 crc/services/workflow_service.py mode change 100644 => 100755 crc/services/workflow_sync.py mode change 100644 => 100755 crc/static/bpmn/abandoned/abandoned.bpmn mode change 100644 => 100755 crc/static/bpmn/core_info/SponsorList.xls mode change 100644 => 100755 crc/static/bpmn/core_info/core_info.bpmn mode change 100644 => 100755 crc/static/bpmn/core_info/decision_core_info_multi_site_q12.dmn mode change 100644 => 100755 crc/static/bpmn/core_info/decision_core_info_multi_site_q14.dmn mode change 100644 => 100755 crc/static/bpmn/core_info/decision_core_info_multi_site_q28.dmn mode change 100644 => 100755 crc/static/bpmn/data_security_plan/HIPAA_Ids.xls mode change 100644 => 100755 crc/static/bpmn/data_security_plan/NEW_DSP_template.docx mode change 100644 => 100755 crc/static/bpmn/data_security_plan/UVA_ServersWebsitesList.xls mode change 100644 => 100755 crc/static/bpmn/data_security_plan/data_security_plan.bpmn mode change 100644 => 100755 crc/static/bpmn/department_chair_approval/decision_dept_chair.dmn mode change 100644 => 100755 crc/static/bpmn/department_chair_approval/dept_chair_approval.bpmn mode change 100644 => 100755 crc/static/bpmn/documents_approvals/documents_approvals.bpmn mode change 100644 => 100755 crc/static/bpmn/enrollment_date/enrollment_date.bpmn mode change 100644 => 100755 crc/static/bpmn/finance/finance.bpmn mode change 100644 => 100755 crc/static/bpmn/hold/hold.bpmn mode change 100644 => 100755 crc/static/bpmn/ide_supplement/SponsorList.xls mode change 100644 => 100755 crc/static/bpmn/ide_supplement/decision_ide_check.dmn mode change 100644 => 100755 crc/static/bpmn/ide_supplement/ide_update.bpmn mode change 100644 => 100755 crc/static/bpmn/ids_full_submission/ids_full_submission.bpmn mode change 100644 => 100755 crc/static/bpmn/ids_full_submission/investigators_brochure.dmn mode change 100644 => 100755 crc/static/bpmn/ids_full_submission/ivrs_iwrs_ixrs.dmn mode change 100644 => 100755 crc/static/bpmn/ids_full_submission/pharmacy_manual.dmn mode change 100644 => 100755 crc/static/bpmn/ids_waiver/ids_waiver.bpmn mode change 100644 => 100755 crc/static/bpmn/ind_update/SponsorList.xls mode change 100644 => 100755 crc/static/bpmn/ind_update/decision_ind_check.dmn mode change 100644 => 100755 crc/static/bpmn/ind_update/decision_ind_uva_check.dmn mode change 100644 => 100755 crc/static/bpmn/ind_update/ind_update.bpmn mode change 100644 => 100755 crc/static/bpmn/irb_api_details/irb_api_details.bpmn mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/DepartmentList-ArtsSciences.xlsx mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/DepartmentList-Education.xlsx mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/DepartmentList-Medicine.xlsx mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/SchoolList.xls mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/check_for_pi.dmn mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/decision_dept_chair.dmn mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/decision_pi_dept.dmn mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/decision_pi_school.dmn mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/decision_ro.dmn mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/decision_ro_chair.dmn mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/decision_ro_dept.dmn mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/irb_api_personnel.bpmn mode change 100644 => 100755 crc/static/bpmn/non_uva_approval/non_uva_approval.bpmn mode change 100644 => 100755 crc/static/bpmn/notifications/notifications.bpmn mode change 100644 => 100755 crc/static/bpmn/protocol/protocol.bpmn mode change 100644 => 100755 crc/static/bpmn/research_rampup/BuildingList.xls mode change 100644 => 100755 crc/static/bpmn/research_rampup/DepartmentList-Architecture.xlsx mode change 100644 => 100755 crc/static/bpmn/research_rampup/DepartmentList-ArtsSciences.xlsx mode change 100644 => 100755 crc/static/bpmn/research_rampup/DepartmentList-Education.xlsx mode change 100644 => 100755 crc/static/bpmn/research_rampup/DepartmentList-Engineering.xlsx mode change 100644 => 100755 crc/static/bpmn/research_rampup/DepartmentList-Medicine.xlsx mode change 100644 => 100755 crc/static/bpmn/research_rampup/DepartmentList-ProvostOffice.xlsx mode change 100644 => 100755 crc/static/bpmn/research_rampup/DepartmentList.xlsx mode change 100644 => 100755 crc/static/bpmn/research_rampup/LabSpaces.xlsx mode change 100644 => 100755 crc/static/bpmn/research_rampup/RTT_Approvers.dmn mode change 100644 => 100755 crc/static/bpmn/research_rampup/ResearchRampUpPlan.docx mode change 100644 => 100755 crc/static/bpmn/research_rampup/SchoolList.xls mode change 100644 => 100755 crc/static/bpmn/research_rampup/exclusive_area_monitors.dmn mode change 100644 => 100755 crc/static/bpmn/research_rampup/research_rampup.bpmn mode change 100644 => 100755 crc/static/bpmn/research_rampup/shared_area_monitors.dmn mode change 100644 => 100755 crc/static/bpmn/rrt_top_level_workflow/rrt_top_level_workflow.bpmn mode change 100644 => 100755 crc/static/bpmn/rsc_hire_committee/decision_support_lang.dmn mode change 100644 => 100755 crc/static/bpmn/rsc_hire_committee/rsc_hire_committee.bpmn mode change 100644 => 100755 crc/static/bpmn/rsc_hire_submission/rsc_hire_submission.bpmn mode change 100644 => 100755 crc/static/bpmn/sponsor_funding_source/SponsorList.xls mode change 100644 => 100755 crc/static/bpmn/sponsor_funding_source/sponsor_funding_source.bpmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/data_security_plan.dmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/enter_core_info.dmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/ide_supplement.dmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/ids_full_submission.dmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/ids_waiver.dmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/ind_update.dmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/personnel.dmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/sponsor_funding_source.dmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/top_level_workflow.bpmn mode change 100644 => 100755 crc/static/jinja_extensions.py mode change 100644 => 100755 crc/static/reference/investigators.xlsx mode change 100644 => 100755 crc/static/reference/irb_documents.xlsx mode change 100644 => 100755 crc/static/reference/rrt_documents.xlsx mode change 100644 => 100755 crc/static/templates/placeholder.docx mode change 100644 => 100755 crc/static/templates/placeholder.png mode change 100644 => 100755 crc/static/uva_rotunda.svg mode change 100644 => 100755 crc/templates/mail_content_template.html mode change 100644 => 100755 crc/templates/mail_main_template.html mode change 100644 => 100755 crconnect.wsgi mode change 100644 => 100755 deploy/requirements.txt mode change 100644 => 100755 docs/Makefile mode change 100644 => 100755 docs/conf.py mode change 100644 => 100755 docs/index.rst mode change 100644 => 100755 docs/make.bat mode change 100644 => 100755 docs/protocol_builder.html mode change 100644 => 100755 example_data.py mode change 100644 => 100755 fact_runner.py mode change 100644 => 100755 migrations/README mode change 100644 => 100755 migrations/alembic.ini mode change 100644 => 100755 migrations/env.py mode change 100644 => 100755 migrations/script.py.mako mode change 100644 => 100755 migrations/versions/0718ad13e5f3_.py mode change 100644 => 100755 migrations/versions/0f38d7a36f21_.py mode change 100644 => 100755 migrations/versions/13424d5a6de8_.py mode change 100644 => 100755 migrations/versions/1685be1cc232_.py mode change 100644 => 100755 migrations/versions/17597692d0b0_.py mode change 100644 => 100755 migrations/versions/1c3f88dbccc3_.py mode change 100644 => 100755 migrations/versions/1fdd1bdb600e_.py mode change 100644 => 100755 migrations/versions/23c62c933848_.py mode change 100644 => 100755 migrations/versions/2e7b377cbc7b_.py mode change 100644 => 100755 migrations/versions/30e017a03948_.py mode change 100644 => 100755 migrations/versions/476f8a4933ba_.py mode change 100644 => 100755 migrations/versions/5064b72284b7_.py mode change 100644 => 100755 migrations/versions/55c6cd407d89_.py mode change 100644 => 100755 migrations/versions/5acd138e969c_.py mode change 100644 => 100755 migrations/versions/5e0709e172fa_.py mode change 100644 => 100755 migrations/versions/5f06108116ae_.py mode change 100644 => 100755 migrations/versions/62910318009f_.py mode change 100644 => 100755 migrations/versions/65f3fce6031a_.py mode change 100644 => 100755 migrations/versions/665624ac29f1_.py mode change 100644 => 100755 migrations/versions/69081f1ff387_.py mode change 100644 => 100755 migrations/versions/7be7cecbeea8_.py mode change 100644 => 100755 migrations/versions/7c0de7621a1f_.py mode change 100644 => 100755 migrations/versions/87af86338630_.py mode change 100644 => 100755 migrations/versions/8856126b6658_.py mode change 100644 => 100755 migrations/versions/8b976945a54e_.py mode change 100644 => 100755 migrations/versions/90dd63672e0a_.py mode change 100644 => 100755 migrations/versions/9b43e725f39c_.py mode change 100644 => 100755 migrations/versions/ab06a94e5d4c_.py mode change 100644 => 100755 migrations/versions/abeffe547305_update_type_on_task_events_table.py mode change 100644 => 100755 migrations/versions/afecb64d2e66_.py mode change 100644 => 100755 migrations/versions/bbf064082623_.py mode change 100644 => 100755 migrations/versions/bec71f7dc652_.py mode change 100644 => 100755 migrations/versions/c1449d1d1681_.py mode change 100644 => 100755 migrations/versions/c16d3047abbe_.py mode change 100644 => 100755 migrations/versions/c4ddb69e7ef4_.py mode change 100644 => 100755 migrations/versions/c6261ac7a7bc_.py mode change 100644 => 100755 migrations/versions/c872232ebdcb_.py mode change 100644 => 100755 migrations/versions/cb892916166a_.py mode change 100644 => 100755 migrations/versions/cc4bccc5e5a8_.py mode change 100644 => 100755 migrations/versions/dc30b8f6571c_merge_30e017a03948_and_c16d3047abbe.py mode change 100644 => 100755 migrations/versions/ddd5fc9ea75b_.py mode change 100644 => 100755 migrations/versions/de30304ff5e6_.py mode change 100644 => 100755 migrations/versions/e0dfdbfd6f69_add_columns.py mode change 100644 => 100755 migrations/versions/f186725c1ad3_.py mode change 100644 => 100755 migrations/versions/f28ee3722c49_.py mode change 100644 => 100755 migrations/versions/ff29528a9909_.py mode change 100644 => 100755 migrations/versions/ffef4661a37d_.py mode change 100644 => 100755 package-lock.json mode change 100644 => 100755 postgres/docker-compose.yml mode change 100644 => 100755 postgres/docker-windows-compose.yml mode change 100644 => 100755 postgres/package-lock.json mode change 100644 => 100755 postgres/pg-init-scripts/initdb.sh mode change 100644 => 100755 readme_images/new_project.png mode change 100644 => 100755 readme_images/run.png mode change 100644 => 100755 readme_images/run_config.png mode change 100644 => 100755 readme_images/settings.png mode change 100644 => 100755 run.py mode change 100644 => 100755 schema/__init__.py mode change 100644 => 100755 setup.cfg mode change 100644 => 100755 setup.py mode change 100644 => 100755 tests/__init__.py mode change 100644 => 100755 tests/base_test.py mode change 100644 => 100755 tests/data/add_delete_irb_document/add_delete_irb_document.bpmn mode change 100644 => 100755 tests/data/associated_email/associated_email.bpmn mode change 100644 => 100755 tests/data/boolean_default_value/boolean_default_value.bpmn mode change 100644 => 100755 tests/data/check_study_script/check_study_script.bpmn mode change 100644 => 100755 tests/data/decision_table/decision_table.bpmn mode change 100644 => 100755 tests/data/decision_table/message_to_ginger.dmn mode change 100644 => 100755 tests/data/decision_table_dictionary_output/decision_table_dictionary_output.bpmn mode change 100644 => 100755 tests/data/decision_table_dictionary_output/decision_table_dictionary_output.dmn mode change 100644 => 100755 tests/data/decision_table_invalid/bad_dmn.dmn mode change 100644 => 100755 tests/data/decision_table_invalid/decision_table_invalid.bpmn mode change 100644 => 100755 tests/data/docx/Letter.docx mode change 100644 => 100755 tests/data/docx/docx.bpmn mode change 100644 => 100755 tests/data/email/email.bpmn mode change 100644 => 100755 tests/data/email_dashboard_url/email_dashboard_url.bpmn mode change 100644 => 100755 tests/data/email_script/email_script.bpmn mode change 100644 => 100755 tests/data/empty_workflow/empty_workflow.bpmn mode change 100644 => 100755 tests/data/enum_empty_list/empty_spreadsheet.xlsx mode change 100644 => 100755 tests/data/enum_empty_list/enum_empty_list.bpmn mode change 100644 => 100755 tests/data/enum_options_competing_files/animals.xlsx mode change 100644 => 100755 tests/data/enum_options_competing_files/enum_options_competing_files.bpmn mode change 100644 => 100755 tests/data/enum_options_competing_files/fruits.xlsx mode change 100644 => 100755 tests/data/enum_options_from_file/customer_list.xlsx mode change 100644 => 100755 tests/data/enum_options_from_file/enum_options_from_file.bpmn mode change 100644 => 100755 tests/data/enum_options_from_task_data/enum_options_from_task_data.bpmn mode change 100644 => 100755 tests/data/enum_options_with_search/enum_options_with_search.bpmn mode change 100644 => 100755 tests/data/enum_options_with_search/sponsors.xlsx mode change 100644 => 100755 tests/data/enum_options_with_search/sponsors_modified.xlsx mode change 100644 => 100755 tests/data/enum_results/enum_results.bpmn mode change 100644 => 100755 tests/data/enum_value_expression/Decision_Value_Expression.dmn mode change 100644 => 100755 tests/data/enum_value_expression/enum_value_expression.bpmn mode change 100644 => 100755 tests/data/enum_value_expression_fail/Decision_Value_Expression.dmn mode change 100644 => 100755 tests/data/enum_value_expression_fail/enum_value_expression_fail.bpmn mode change 100644 => 100755 tests/data/exclusive_gateway/exclusive_gateway.bpmn mode change 100644 => 100755 tests/data/exclusive_gateway_2/exclusive_gateway_2.bpmn mode change 100644 => 100755 tests/data/extension_error/extension_error.bpmn mode change 100644 => 100755 tests/data/failing_gateway_workflow/failing_gateway_workflow.bpmn mode change 100644 => 100755 tests/data/failing_workflow/failing_workflow.bpmn mode change 100644 => 100755 tests/data/file_data_store/file_data_store.bpmn mode change 100644 => 100755 tests/data/file_upload_form/file_upload_form.bpmn mode change 100644 => 100755 tests/data/file_upload_form_single/file_upload_form_single.bpmn mode change 100644 => 100755 tests/data/form_expressions/form_expressions.bpmn mode change 100644 => 100755 tests/data/get_study_associate/get_study_associate.bpmn mode change 100644 => 100755 tests/data/hello_world/hello_world.bpmn mode change 100644 => 100755 tests/data/hidden_required_field/hidden_required_field.bpmn mode change 100644 => 100755 tests/data/hidden_required_field_pass/hidden_required_field_pass.bpmn mode change 100644 => 100755 tests/data/hidden_required_field_pass_expression/hidden_required_field_pass_expression.bpmn mode change 100644 => 100755 tests/data/infinite_loop/infinite_loop.bpmn mode change 100644 => 100755 tests/data/invalid_expression/invalid_expression.bpmn mode change 100644 => 100755 tests/data/invalid_roles/invalid_roles.bpmn mode change 100644 => 100755 tests/data/invalid_script/invalid_script.bpmn mode change 100644 => 100755 tests/data/invalid_script2/invalid_script2.bpmn mode change 100644 => 100755 tests/data/invalid_script3/invalid_script3.bpmn mode change 100644 => 100755 tests/data/invalid_spec/invalid_spec.bpmn mode change 100644 => 100755 tests/data/irb_api_personnel/irb_api_personnel.bpmn mode change 100644 => 100755 tests/data/irb_info_script/irb_info_script.bpmn mode change 100644 => 100755 tests/data/ldap_lookup/ldap_lookup.bpmn mode change 100644 => 100755 tests/data/ldap_response.json mode change 100644 => 100755 tests/data/ldap_script/ldap_script.bpmn mode change 100644 => 100755 tests/data/looping_task/looping_task.bpmn mode change 100644 => 100755 tests/data/manual_task_with_external_documentation/Task_Manual_One.md mode change 100644 => 100755 tests/data/manual_task_with_external_documentation/manual_task_with_external_documentation.bpmn mode change 100644 => 100755 tests/data/message_event/message_event.bpmn mode change 100644 => 100755 tests/data/missing_form_key/missing_form_key.bpmn mode change 100644 => 100755 tests/data/multi_instance/multi_instance.bpmn mode change 100644 => 100755 tests/data/multi_instance_parallel/multi_instance_parallel.bpmn mode change 100644 => 100755 tests/data/nav_order/nav_order.bpmn mode change 100644 => 100755 tests/data/parallel_tasks/parallel_tasks.bpmn mode change 100644 => 100755 tests/data/pb_responses/check_study.json mode change 100644 => 100755 tests/data/pb_responses/investigators.json mode change 100644 => 100755 tests/data/pb_responses/irb_info.json mode change 100644 => 100755 tests/data/pb_responses/required_docs.json mode change 100644 => 100755 tests/data/pb_responses/sponsors.json mode change 100644 => 100755 tests/data/pb_responses/study_details.json mode change 100644 => 100755 tests/data/pb_responses/study_details_bad_review_type.json mode change 100644 => 100755 tests/data/pb_responses/user_studies.json mode change 100644 => 100755 tests/data/random_fact/random_fact.bpmn mode change 100644 => 100755 tests/data/random_fact/random_fact2.bpmn mode change 100644 => 100755 tests/data/read_only_field/read_only_field.bpmn mode change 100644 => 100755 tests/data/repeat_form/repeat_form.bpmn mode change 100644 => 100755 tests/data/required_fields/required_fields.bpmn mode change 100644 => 100755 tests/data/reset_workflow/reset_workflow.bpmn mode change 100644 => 100755 tests/data/roles/roles.bpmn mode change 100644 => 100755 tests/data/script_with_name_error/script_with_name_error.bpmn mode change 100644 => 100755 tests/data/study_cancellations/study_cancellations.bpmn mode change 100644 => 100755 tests/data/study_details/study_details.bpmn mode change 100644 => 100755 tests/data/study_info_script/study_info_script.bpmn mode change 100644 => 100755 tests/data/study_sponsors/study_sponsors.bpmn mode change 100644 => 100755 tests/data/study_sponsors_associate/study_sponsors_associate.bpmn mode change 100644 => 100755 tests/data/study_sponsors_associate_fail/study_sponsors_associate_fail.bpmn mode change 100644 => 100755 tests/data/study_sponsors_associate_switch_user/study_sponsors_associate_switch_user.bpmn mode change 100644 => 100755 tests/data/study_sponsors_associates_delete/study_sponsors_associates_delete.bpmn mode change 100644 => 100755 tests/data/study_sponsors_data_store/study_sponsors_data_store.bpmn mode change 100644 => 100755 tests/data/subprocess/subprocess.bpmn mode change 100644 => 100755 tests/data/table.docx mode change 100644 => 100755 tests/data/test_value_expression/test_value_expression.bpmn mode change 100644 => 100755 tests/data/timer_event/timer_event.bpmn mode change 100644 => 100755 tests/data/timer_event_error/timer_event_error.bpmn mode change 100644 => 100755 tests/data/top_level_workflow/data_security_plan.dmn mode change 100644 => 100755 tests/data/top_level_workflow/enter_core_info.dmn mode change 100644 => 100755 tests/data/top_level_workflow/sponsor_funding_source.dmn mode change 100644 => 100755 tests/data/top_level_workflow/top_level_workflow.bpmn mode change 100644 => 100755 tests/data/two_forms/modified/two_forms_struc_mod.bpmn mode change 100644 => 100755 tests/data/two_forms/modified/two_forms_text_mod.bpmn mode change 100644 => 100755 tests/data/two_forms/two_forms.bpmn mode change 100644 => 100755 tests/data/two_user_tasks/two_user_tasks.bpmn mode change 100644 => 100755 tests/data/verify_end_event/verify_end_event.bpmn mode change 100644 => 100755 tests/data/workflow_form_field_name/workflow_form_field_name.bpmn mode change 100644 => 100755 tests/data/workflow_form_field_type/workflow_form_field_type.bpmn mode change 100644 => 100755 tests/data/workflow_sync_responses/random_fact2.bpmn mode change 100644 => 100755 tests/data/workflow_sync_responses/test.txt mode change 100644 => 100755 tests/emails/__init__.py mode change 100644 => 100755 tests/emails/test_email_script.py mode change 100644 => 100755 tests/emails/test_email_service.py mode change 100644 => 100755 tests/files/__init__.py mode change 100644 => 100755 tests/files/test_file_service.py mode change 100644 => 100755 tests/files/test_files_api.py mode change 100644 => 100755 tests/ldap/__init__.py mode change 100644 => 100755 tests/ldap/test_ldap_lookup_script.py mode change 100644 => 100755 tests/scripts/__init__.py mode change 100644 => 100755 tests/scripts/test_check_study.py mode change 100644 => 100755 tests/scripts/test_get_study_associate_validation.py mode change 100644 => 100755 tests/study/__init__.py mode change 100644 => 100755 tests/study/test_get_study_from_model.py mode change 100644 => 100755 tests/study/test_study_actions_status.py mode change 100644 => 100755 tests/study/test_study_api.py mode change 100644 => 100755 tests/study/test_study_associate_script.py mode change 100644 => 100755 tests/study/test_study_cancellations.py mode change 100644 => 100755 tests/study/test_study_data_store_script.py mode change 100644 => 100755 tests/study/test_study_details.py mode change 100644 => 100755 tests/study/test_study_details_documents.py mode change 100644 => 100755 tests/study/test_study_service.py mode change 100644 => 100755 tests/study/test_study_sponsors_script.py mode change 100644 => 100755 tests/study/test_study_status_message.py mode change 100644 => 100755 tests/study/test_update_study_script.py mode change 100644 => 100755 tests/test_authentication.py mode change 100644 => 100755 tests/test_auto_set_primary_bpmn.py mode change 100644 => 100755 tests/test_complete_template_script.py mode change 100644 => 100755 tests/test_datastore_api.py mode change 100644 => 100755 tests/test_decision_table_dictionary_output.py mode change 100644 => 100755 tests/test_document_directories.py mode change 100644 => 100755 tests/test_email_script.py mode change 100644 => 100755 tests/test_events.py mode change 100644 => 100755 tests/test_file_datastore.py mode change 100644 => 100755 tests/test_get_dashboard_url_script.py mode change 100644 => 100755 tests/test_irb_info_script.py mode change 100644 => 100755 tests/test_is_file_uploaded_script.py mode change 100644 => 100755 tests/test_launch_workflow_outside_study.py mode change 100644 => 100755 tests/test_ldap_service.py mode change 100644 => 100755 tests/test_lookup_service.py mode change 100644 => 100755 tests/test_looping_task.py mode change 100644 => 100755 tests/test_message_event.py mode change 100644 => 100755 tests/test_multi_instance_tasks_api.py mode change 100644 => 100755 tests/test_protocol_builder.py mode change 100644 => 100755 tests/test_study_info_script.py mode change 100644 => 100755 tests/test_tasks_api.py mode change 100644 => 100755 tests/test_tools_api.py mode change 100644 => 100755 tests/test_user_in_logs.py mode change 100644 => 100755 tests/test_user_roles.py mode change 100644 => 100755 tests/test_verify_end_event.py mode change 100644 => 100755 tests/test_wait_event.py mode change 100644 => 100755 tests/test_workflow_api.py mode change 100644 => 100755 tests/test_workflow_sync.py mode change 100644 => 100755 tests/workflow/__init__.py mode change 100644 => 100755 tests/workflow/test_duplicate_workflow_spec_file.py mode change 100644 => 100755 tests/workflow/test_workflow_boolean_default.py mode change 100644 => 100755 tests/workflow/test_workflow_customer_error.py mode change 100644 => 100755 tests/workflow/test_workflow_delete_irb_document.py mode change 100644 => 100755 tests/workflow/test_workflow_enum_default_value_expression.py mode change 100644 => 100755 tests/workflow/test_workflow_enum_empty_list.py mode change 100644 => 100755 tests/workflow/test_workflow_form_field_name.py mode change 100644 => 100755 tests/workflow/test_workflow_form_field_type.py mode change 100644 => 100755 tests/workflow/test_workflow_hidden_required_field.py mode change 100644 => 100755 tests/workflow/test_workflow_infinite_loop.py mode change 100644 => 100755 tests/workflow/test_workflow_missing_form_key.py mode change 100644 => 100755 tests/workflow/test_workflow_name_error_hint.py mode change 100644 => 100755 tests/workflow/test_workflow_processor.py mode change 100644 => 100755 tests/workflow/test_workflow_processor_multi_instance.py mode change 100644 => 100755 tests/workflow/test_workflow_read_only_field.py mode change 100644 => 100755 tests/workflow/test_workflow_reset.py mode change 100644 => 100755 tests/workflow/test_workflow_restart.py mode change 100644 => 100755 tests/workflow/test_workflow_service.py mode change 100644 => 100755 tests/workflow/test_workflow_spec_api.py mode change 100644 => 100755 tests/workflow/test_workflow_spec_validation_api.py mode change 100644 => 100755 tests/workflow/test_workflow_value_expression.py mode change 100644 => 100755 wsgi.py diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index ee558d50..92974e1a --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ local.properties .settings/ .loadpath .recommenders - +.vscode/ # External tool builders .externalToolBuilders/ diff --git a/.sonarcloud.properties b/.sonarcloud.properties old mode 100644 new mode 100755 diff --git a/.travis.yml b/.travis.yml old mode 100644 new mode 100755 diff --git a/Dockerfile b/Dockerfile old mode 100644 new mode 100755 diff --git a/LICENSE.md b/LICENSE.md old mode 100644 new mode 100755 diff --git a/Pipfile b/Pipfile old mode 100644 new mode 100755 diff --git a/Pipfile.lock b/Pipfile.lock old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/config/default.py b/config/default.py old mode 100644 new mode 100755 diff --git a/config/logging_example.py b/config/logging_example.py old mode 100644 new mode 100755 diff --git a/config/testing.py b/config/testing.py old mode 100644 new mode 100755 diff --git a/crc/__init__.py b/crc/__init__.py old mode 100644 new mode 100755 diff --git a/crc/api.yml b/crc/api.yml old mode 100644 new mode 100755 diff --git a/crc/api/__init__.py b/crc/api/__init__.py old mode 100644 new mode 100755 diff --git a/crc/api/admin.py b/crc/api/admin.py old mode 100644 new mode 100755 diff --git a/crc/api/common.py b/crc/api/common.py old mode 100644 new mode 100755 diff --git a/crc/api/data_store.py b/crc/api/data_store.py old mode 100644 new mode 100755 diff --git a/crc/api/document.py b/crc/api/document.py old mode 100644 new mode 100755 diff --git a/crc/api/file.py b/crc/api/file.py old mode 100644 new mode 100755 diff --git a/crc/api/study.py b/crc/api/study.py old mode 100644 new mode 100755 diff --git a/crc/api/tools.py b/crc/api/tools.py old mode 100644 new mode 100755 diff --git a/crc/api/user.py b/crc/api/user.py old mode 100644 new mode 100755 diff --git a/crc/api/workflow.py b/crc/api/workflow.py old mode 100644 new mode 100755 diff --git a/crc/api/workflow_sync.py b/crc/api/workflow_sync.py old mode 100644 new mode 100755 diff --git a/crc/models/__init__.py b/crc/models/__init__.py old mode 100644 new mode 100755 diff --git a/crc/models/api_models.py b/crc/models/api_models.py old mode 100644 new mode 100755 diff --git a/crc/models/data_store.py b/crc/models/data_store.py old mode 100644 new mode 100755 diff --git a/crc/models/email.py b/crc/models/email.py old mode 100644 new mode 100755 diff --git a/crc/models/file.py b/crc/models/file.py old mode 100644 new mode 100755 diff --git a/crc/models/ldap.py b/crc/models/ldap.py old mode 100644 new mode 100755 diff --git a/crc/models/protocol_builder.py b/crc/models/protocol_builder.py old mode 100644 new mode 100755 diff --git a/crc/models/study.py b/crc/models/study.py old mode 100644 new mode 100755 index 69da16fe..155ac7a4 --- a/crc/models/study.py +++ b/crc/models/study.py @@ -79,6 +79,7 @@ class StudyAssociated(db.Model): role = db.Column(db.String, nullable=True) send_email = db.Column(db.Boolean, nullable=True) access = db.Column(db.Boolean, nullable=True) + class StudyAssociatedSchema(ma.Schema): class Meta: model = StudyAssociated diff --git a/crc/models/task_event.py b/crc/models/task_event.py old mode 100644 new mode 100755 diff --git a/crc/models/user.py b/crc/models/user.py old mode 100644 new mode 100755 diff --git a/crc/models/workflow.py b/crc/models/workflow.py old mode 100644 new mode 100755 diff --git a/crc/scripts/__init__.py b/crc/scripts/__init__.py old mode 100644 new mode 100755 diff --git a/crc/scripts/check_study.py b/crc/scripts/check_study.py old mode 100644 new mode 100755 diff --git a/crc/scripts/complete_template.py b/crc/scripts/complete_template.py old mode 100644 new mode 100755 diff --git a/crc/scripts/delete_file.py b/crc/scripts/delete_file.py old mode 100644 new mode 100755 diff --git a/crc/scripts/email.py b/crc/scripts/email.py old mode 100644 new mode 100755 diff --git a/crc/scripts/fact_service.py b/crc/scripts/fact_service.py old mode 100644 new mode 100755 diff --git a/crc/scripts/failing_script.py b/crc/scripts/failing_script.py old mode 100644 new mode 100755 diff --git a/crc/scripts/file_data_get.py b/crc/scripts/file_data_get.py old mode 100644 new mode 100755 diff --git a/crc/scripts/file_data_set.py b/crc/scripts/file_data_set.py old mode 100644 new mode 100755 diff --git a/crc/scripts/get_dashboard_url.py b/crc/scripts/get_dashboard_url.py old mode 100644 new mode 100755 diff --git a/crc/scripts/get_irb_info.py b/crc/scripts/get_irb_info.py old mode 100644 new mode 100755 diff --git a/crc/scripts/get_study_associate.py b/crc/scripts/get_study_associate.py old mode 100644 new mode 100755 diff --git a/crc/scripts/get_study_associates.py b/crc/scripts/get_study_associates.py old mode 100644 new mode 100755 diff --git a/crc/scripts/is_file_uploaded.py b/crc/scripts/is_file_uploaded.py old mode 100644 new mode 100755 diff --git a/crc/scripts/ldap.py b/crc/scripts/ldap.py old mode 100644 new mode 100755 diff --git a/crc/scripts/reset_workflow.py b/crc/scripts/reset_workflow.py old mode 100644 new mode 100755 diff --git a/crc/scripts/script.py b/crc/scripts/script.py old mode 100644 new mode 100755 diff --git a/crc/scripts/study_data_get.py b/crc/scripts/study_data_get.py old mode 100644 new mode 100755 diff --git a/crc/scripts/study_data_set.py b/crc/scripts/study_data_set.py old mode 100644 new mode 100755 diff --git a/crc/scripts/study_info.py b/crc/scripts/study_info.py old mode 100644 new mode 100755 diff --git a/crc/scripts/update_study.py b/crc/scripts/update_study.py old mode 100644 new mode 100755 diff --git a/crc/scripts/update_study_associate.py b/crc/scripts/update_study_associate.py old mode 100644 new mode 100755 diff --git a/crc/scripts/update_study_associates.py b/crc/scripts/update_study_associates.py old mode 100644 new mode 100755 diff --git a/crc/scripts/user_data_get.py b/crc/scripts/user_data_get.py old mode 100644 new mode 100755 diff --git a/crc/scripts/user_data_set.py b/crc/scripts/user_data_set.py old mode 100644 new mode 100755 diff --git a/crc/services/__init__.py b/crc/services/__init__.py old mode 100644 new mode 100755 diff --git a/crc/services/cache_service.py b/crc/services/cache_service.py old mode 100644 new mode 100755 diff --git a/crc/services/data_store_service.py b/crc/services/data_store_service.py old mode 100644 new mode 100755 diff --git a/crc/services/document_service.py b/crc/services/document_service.py old mode 100644 new mode 100755 diff --git a/crc/services/email_service.py b/crc/services/email_service.py old mode 100644 new mode 100755 diff --git a/crc/services/error_service.py b/crc/services/error_service.py old mode 100644 new mode 100755 diff --git a/crc/services/failing_service.py b/crc/services/failing_service.py old mode 100644 new mode 100755 diff --git a/crc/services/file_service.py b/crc/services/file_service.py old mode 100644 new mode 100755 diff --git a/crc/services/ldap_service.py b/crc/services/ldap_service.py old mode 100644 new mode 100755 diff --git a/crc/services/lookup_service.py b/crc/services/lookup_service.py old mode 100644 new mode 100755 diff --git a/crc/services/protocol_builder.py b/crc/services/protocol_builder.py old mode 100644 new mode 100755 diff --git a/crc/services/study_service.py b/crc/services/study_service.py old mode 100644 new mode 100755 index 5b8d12ea..fff41b69 --- a/crc/services/study_service.py +++ b/crc/services/study_service.py @@ -24,6 +24,7 @@ from crc.models.task_event import TaskEventModel, TaskEvent from crc.models.workflow import WorkflowSpecCategoryModel, WorkflowModel, WorkflowSpecModel, WorkflowState, \ WorkflowStatus, WorkflowSpecDependencyFile from crc.services.document_service import DocumentService + from crc.services.file_service import FileService from crc.services.ldap_service import LdapService from crc.services.lookup_service import LookupService @@ -129,7 +130,11 @@ class StudyService(object): person = db.session.query(StudyAssociated).filter((StudyAssociated.study_id == study_id)&( StudyAssociated.uid == uid)).first() if person: - return StudyAssociatedSchema().dump(person) + newAssociate = {'uid': person.uid} + newAssociate['role'] = person.role + newAssociate['send_email'] = person.send_email + newAssociate['access'] = person.access + return newAssociate raise ApiError('uid_not_associated_with_study',"user id %s was not associated with study number %d"%(uid, study_id)) @@ -148,7 +153,12 @@ class StudyService(object): people = db.session.query(StudyAssociated).filter(StudyAssociated.study_id == study_id) people_list = [{'uid':ownerid,'role':'owner','send_email':True,'access':True}] - people_list += StudyAssociatedSchema().dump(people, many=True) + for person in people: + newAssociate = {'uid':person.uid} + newAssociate['role'] = person.role + newAssociate['send_email'] = person.send_email + newAssociate['access'] = person.access + people_list.append(newAssociate) return people_list diff --git a/crc/services/user_service.py b/crc/services/user_service.py old mode 100644 new mode 100755 diff --git a/crc/services/workflow_processor.py b/crc/services/workflow_processor.py old mode 100644 new mode 100755 diff --git a/crc/services/workflow_service.py b/crc/services/workflow_service.py old mode 100644 new mode 100755 index 31e26c28..44077fe7 --- a/crc/services/workflow_service.py +++ b/crc/services/workflow_service.py @@ -765,7 +765,7 @@ class WorkflowService(object): else: if not hasattr(spiff_task.task_spec, 'lane') or spiff_task.task_spec.lane is None: associated = StudyService.get_study_associates(processor.workflow_model.study.id) - return [user['uid'] for user in associated if user['access']] + return [user['uid'] for user in associated if user.get("access")] if spiff_task.task_spec.lane not in spiff_task.data: return [] # No users are assignable to the task at this moment lane_users = spiff_task.data[spiff_task.task_spec.lane] @@ -775,7 +775,7 @@ class WorkflowService(object): lane_uids = [] for user in lane_users: if isinstance(user, dict): - if 'value' in user and user['value'] is not None: + if user.get("value"): lane_uids.append(user['value']) else: raise ApiError.from_task(code="task_lane_user_error", message="Spiff Task %s lane user dict must have a key called 'value' with the user's uid in it." % diff --git a/crc/services/workflow_sync.py b/crc/services/workflow_sync.py old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/abandoned/abandoned.bpmn b/crc/static/bpmn/abandoned/abandoned.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/core_info/SponsorList.xls b/crc/static/bpmn/core_info/SponsorList.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/core_info/core_info.bpmn b/crc/static/bpmn/core_info/core_info.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/core_info/decision_core_info_multi_site_q12.dmn b/crc/static/bpmn/core_info/decision_core_info_multi_site_q12.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/core_info/decision_core_info_multi_site_q14.dmn b/crc/static/bpmn/core_info/decision_core_info_multi_site_q14.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/core_info/decision_core_info_multi_site_q28.dmn b/crc/static/bpmn/core_info/decision_core_info_multi_site_q28.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/data_security_plan/HIPAA_Ids.xls b/crc/static/bpmn/data_security_plan/HIPAA_Ids.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/data_security_plan/NEW_DSP_template.docx b/crc/static/bpmn/data_security_plan/NEW_DSP_template.docx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/data_security_plan/UVA_ServersWebsitesList.xls b/crc/static/bpmn/data_security_plan/UVA_ServersWebsitesList.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/data_security_plan/data_security_plan.bpmn b/crc/static/bpmn/data_security_plan/data_security_plan.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/department_chair_approval/decision_dept_chair.dmn b/crc/static/bpmn/department_chair_approval/decision_dept_chair.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/department_chair_approval/dept_chair_approval.bpmn b/crc/static/bpmn/department_chair_approval/dept_chair_approval.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/documents_approvals/documents_approvals.bpmn b/crc/static/bpmn/documents_approvals/documents_approvals.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/enrollment_date/enrollment_date.bpmn b/crc/static/bpmn/enrollment_date/enrollment_date.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/finance/finance.bpmn b/crc/static/bpmn/finance/finance.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/hold/hold.bpmn b/crc/static/bpmn/hold/hold.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ide_supplement/SponsorList.xls b/crc/static/bpmn/ide_supplement/SponsorList.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ide_supplement/decision_ide_check.dmn b/crc/static/bpmn/ide_supplement/decision_ide_check.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ide_supplement/ide_update.bpmn b/crc/static/bpmn/ide_supplement/ide_update.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ids_full_submission/ids_full_submission.bpmn b/crc/static/bpmn/ids_full_submission/ids_full_submission.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ids_full_submission/investigators_brochure.dmn b/crc/static/bpmn/ids_full_submission/investigators_brochure.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ids_full_submission/ivrs_iwrs_ixrs.dmn b/crc/static/bpmn/ids_full_submission/ivrs_iwrs_ixrs.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ids_full_submission/pharmacy_manual.dmn b/crc/static/bpmn/ids_full_submission/pharmacy_manual.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ids_waiver/ids_waiver.bpmn b/crc/static/bpmn/ids_waiver/ids_waiver.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ind_update/SponsorList.xls b/crc/static/bpmn/ind_update/SponsorList.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ind_update/decision_ind_check.dmn b/crc/static/bpmn/ind_update/decision_ind_check.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ind_update/decision_ind_uva_check.dmn b/crc/static/bpmn/ind_update/decision_ind_uva_check.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ind_update/ind_update.bpmn b/crc/static/bpmn/ind_update/ind_update.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_details/irb_api_details.bpmn b/crc/static/bpmn/irb_api_details/irb_api_details.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/DepartmentList-ArtsSciences.xlsx b/crc/static/bpmn/irb_api_personnel/DepartmentList-ArtsSciences.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/DepartmentList-Education.xlsx b/crc/static/bpmn/irb_api_personnel/DepartmentList-Education.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/DepartmentList-Medicine.xlsx b/crc/static/bpmn/irb_api_personnel/DepartmentList-Medicine.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/SchoolList.xls b/crc/static/bpmn/irb_api_personnel/SchoolList.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/check_for_pi.dmn b/crc/static/bpmn/irb_api_personnel/check_for_pi.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/decision_dept_chair.dmn b/crc/static/bpmn/irb_api_personnel/decision_dept_chair.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/decision_pi_dept.dmn b/crc/static/bpmn/irb_api_personnel/decision_pi_dept.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/decision_pi_school.dmn b/crc/static/bpmn/irb_api_personnel/decision_pi_school.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/decision_ro.dmn b/crc/static/bpmn/irb_api_personnel/decision_ro.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/decision_ro_chair.dmn b/crc/static/bpmn/irb_api_personnel/decision_ro_chair.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/decision_ro_dept.dmn b/crc/static/bpmn/irb_api_personnel/decision_ro_dept.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/irb_api_personnel.bpmn b/crc/static/bpmn/irb_api_personnel/irb_api_personnel.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/non_uva_approval/non_uva_approval.bpmn b/crc/static/bpmn/non_uva_approval/non_uva_approval.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/notifications/notifications.bpmn b/crc/static/bpmn/notifications/notifications.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/protocol/protocol.bpmn b/crc/static/bpmn/protocol/protocol.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/BuildingList.xls b/crc/static/bpmn/research_rampup/BuildingList.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/DepartmentList-Architecture.xlsx b/crc/static/bpmn/research_rampup/DepartmentList-Architecture.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/DepartmentList-ArtsSciences.xlsx b/crc/static/bpmn/research_rampup/DepartmentList-ArtsSciences.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/DepartmentList-Education.xlsx b/crc/static/bpmn/research_rampup/DepartmentList-Education.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/DepartmentList-Engineering.xlsx b/crc/static/bpmn/research_rampup/DepartmentList-Engineering.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/DepartmentList-Medicine.xlsx b/crc/static/bpmn/research_rampup/DepartmentList-Medicine.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/DepartmentList-ProvostOffice.xlsx b/crc/static/bpmn/research_rampup/DepartmentList-ProvostOffice.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/DepartmentList.xlsx b/crc/static/bpmn/research_rampup/DepartmentList.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/LabSpaces.xlsx b/crc/static/bpmn/research_rampup/LabSpaces.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/RTT_Approvers.dmn b/crc/static/bpmn/research_rampup/RTT_Approvers.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/ResearchRampUpPlan.docx b/crc/static/bpmn/research_rampup/ResearchRampUpPlan.docx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/SchoolList.xls b/crc/static/bpmn/research_rampup/SchoolList.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/exclusive_area_monitors.dmn b/crc/static/bpmn/research_rampup/exclusive_area_monitors.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/research_rampup.bpmn b/crc/static/bpmn/research_rampup/research_rampup.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/shared_area_monitors.dmn b/crc/static/bpmn/research_rampup/shared_area_monitors.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/rrt_top_level_workflow/rrt_top_level_workflow.bpmn b/crc/static/bpmn/rrt_top_level_workflow/rrt_top_level_workflow.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/rsc_hire_committee/decision_support_lang.dmn b/crc/static/bpmn/rsc_hire_committee/decision_support_lang.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/rsc_hire_committee/rsc_hire_committee.bpmn b/crc/static/bpmn/rsc_hire_committee/rsc_hire_committee.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/rsc_hire_submission/rsc_hire_submission.bpmn b/crc/static/bpmn/rsc_hire_submission/rsc_hire_submission.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/sponsor_funding_source/SponsorList.xls b/crc/static/bpmn/sponsor_funding_source/SponsorList.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/sponsor_funding_source/sponsor_funding_source.bpmn b/crc/static/bpmn/sponsor_funding_source/sponsor_funding_source.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/data_security_plan.dmn b/crc/static/bpmn/top_level_workflow/data_security_plan.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/enter_core_info.dmn b/crc/static/bpmn/top_level_workflow/enter_core_info.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/ide_supplement.dmn b/crc/static/bpmn/top_level_workflow/ide_supplement.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/ids_full_submission.dmn b/crc/static/bpmn/top_level_workflow/ids_full_submission.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/ids_waiver.dmn b/crc/static/bpmn/top_level_workflow/ids_waiver.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/ind_update.dmn b/crc/static/bpmn/top_level_workflow/ind_update.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/personnel.dmn b/crc/static/bpmn/top_level_workflow/personnel.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/sponsor_funding_source.dmn b/crc/static/bpmn/top_level_workflow/sponsor_funding_source.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/top_level_workflow.bpmn b/crc/static/bpmn/top_level_workflow/top_level_workflow.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/jinja_extensions.py b/crc/static/jinja_extensions.py old mode 100644 new mode 100755 diff --git a/crc/static/reference/investigators.xlsx b/crc/static/reference/investigators.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/reference/irb_documents.xlsx b/crc/static/reference/irb_documents.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/reference/rrt_documents.xlsx b/crc/static/reference/rrt_documents.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/templates/placeholder.docx b/crc/static/templates/placeholder.docx old mode 100644 new mode 100755 diff --git a/crc/static/templates/placeholder.png b/crc/static/templates/placeholder.png old mode 100644 new mode 100755 diff --git a/crc/static/uva_rotunda.svg b/crc/static/uva_rotunda.svg old mode 100644 new mode 100755 diff --git a/crc/templates/mail_content_template.html b/crc/templates/mail_content_template.html old mode 100644 new mode 100755 diff --git a/crc/templates/mail_main_template.html b/crc/templates/mail_main_template.html old mode 100644 new mode 100755 diff --git a/crconnect.wsgi b/crconnect.wsgi old mode 100644 new mode 100755 diff --git a/deploy/requirements.txt b/deploy/requirements.txt old mode 100644 new mode 100755 diff --git a/docs/Makefile b/docs/Makefile old mode 100644 new mode 100755 diff --git a/docs/conf.py b/docs/conf.py old mode 100644 new mode 100755 diff --git a/docs/index.rst b/docs/index.rst old mode 100644 new mode 100755 diff --git a/docs/make.bat b/docs/make.bat old mode 100644 new mode 100755 diff --git a/docs/protocol_builder.html b/docs/protocol_builder.html old mode 100644 new mode 100755 diff --git a/example_data.py b/example_data.py old mode 100644 new mode 100755 diff --git a/fact_runner.py b/fact_runner.py old mode 100644 new mode 100755 diff --git a/migrations/README b/migrations/README old mode 100644 new mode 100755 diff --git a/migrations/alembic.ini b/migrations/alembic.ini old mode 100644 new mode 100755 diff --git a/migrations/env.py b/migrations/env.py old mode 100644 new mode 100755 diff --git a/migrations/script.py.mako b/migrations/script.py.mako old mode 100644 new mode 100755 diff --git a/migrations/versions/0718ad13e5f3_.py b/migrations/versions/0718ad13e5f3_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/0f38d7a36f21_.py b/migrations/versions/0f38d7a36f21_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/13424d5a6de8_.py b/migrations/versions/13424d5a6de8_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/1685be1cc232_.py b/migrations/versions/1685be1cc232_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/17597692d0b0_.py b/migrations/versions/17597692d0b0_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/1c3f88dbccc3_.py b/migrations/versions/1c3f88dbccc3_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/1fdd1bdb600e_.py b/migrations/versions/1fdd1bdb600e_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/23c62c933848_.py b/migrations/versions/23c62c933848_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/2e7b377cbc7b_.py b/migrations/versions/2e7b377cbc7b_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/30e017a03948_.py b/migrations/versions/30e017a03948_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/476f8a4933ba_.py b/migrations/versions/476f8a4933ba_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/5064b72284b7_.py b/migrations/versions/5064b72284b7_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/55c6cd407d89_.py b/migrations/versions/55c6cd407d89_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/5acd138e969c_.py b/migrations/versions/5acd138e969c_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/5e0709e172fa_.py b/migrations/versions/5e0709e172fa_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/5f06108116ae_.py b/migrations/versions/5f06108116ae_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/62910318009f_.py b/migrations/versions/62910318009f_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/65f3fce6031a_.py b/migrations/versions/65f3fce6031a_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/665624ac29f1_.py b/migrations/versions/665624ac29f1_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/69081f1ff387_.py b/migrations/versions/69081f1ff387_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/7be7cecbeea8_.py b/migrations/versions/7be7cecbeea8_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/7c0de7621a1f_.py b/migrations/versions/7c0de7621a1f_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/87af86338630_.py b/migrations/versions/87af86338630_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/8856126b6658_.py b/migrations/versions/8856126b6658_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/8b976945a54e_.py b/migrations/versions/8b976945a54e_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/90dd63672e0a_.py b/migrations/versions/90dd63672e0a_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/9b43e725f39c_.py b/migrations/versions/9b43e725f39c_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/ab06a94e5d4c_.py b/migrations/versions/ab06a94e5d4c_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/abeffe547305_update_type_on_task_events_table.py b/migrations/versions/abeffe547305_update_type_on_task_events_table.py old mode 100644 new mode 100755 diff --git a/migrations/versions/afecb64d2e66_.py b/migrations/versions/afecb64d2e66_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/bbf064082623_.py b/migrations/versions/bbf064082623_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/bec71f7dc652_.py b/migrations/versions/bec71f7dc652_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/c1449d1d1681_.py b/migrations/versions/c1449d1d1681_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/c16d3047abbe_.py b/migrations/versions/c16d3047abbe_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/c4ddb69e7ef4_.py b/migrations/versions/c4ddb69e7ef4_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/c6261ac7a7bc_.py b/migrations/versions/c6261ac7a7bc_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/c872232ebdcb_.py b/migrations/versions/c872232ebdcb_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/cb892916166a_.py b/migrations/versions/cb892916166a_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/cc4bccc5e5a8_.py b/migrations/versions/cc4bccc5e5a8_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/dc30b8f6571c_merge_30e017a03948_and_c16d3047abbe.py b/migrations/versions/dc30b8f6571c_merge_30e017a03948_and_c16d3047abbe.py old mode 100644 new mode 100755 diff --git a/migrations/versions/ddd5fc9ea75b_.py b/migrations/versions/ddd5fc9ea75b_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/de30304ff5e6_.py b/migrations/versions/de30304ff5e6_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/e0dfdbfd6f69_add_columns.py b/migrations/versions/e0dfdbfd6f69_add_columns.py old mode 100644 new mode 100755 diff --git a/migrations/versions/f186725c1ad3_.py b/migrations/versions/f186725c1ad3_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/f28ee3722c49_.py b/migrations/versions/f28ee3722c49_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/ff29528a9909_.py b/migrations/versions/ff29528a9909_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/ffef4661a37d_.py b/migrations/versions/ffef4661a37d_.py old mode 100644 new mode 100755 diff --git a/package-lock.json b/package-lock.json old mode 100644 new mode 100755 diff --git a/postgres/docker-compose.yml b/postgres/docker-compose.yml old mode 100644 new mode 100755 diff --git a/postgres/docker-windows-compose.yml b/postgres/docker-windows-compose.yml old mode 100644 new mode 100755 diff --git a/postgres/package-lock.json b/postgres/package-lock.json old mode 100644 new mode 100755 diff --git a/postgres/pg-init-scripts/initdb.sh b/postgres/pg-init-scripts/initdb.sh old mode 100644 new mode 100755 diff --git a/readme_images/new_project.png b/readme_images/new_project.png old mode 100644 new mode 100755 diff --git a/readme_images/run.png b/readme_images/run.png old mode 100644 new mode 100755 diff --git a/readme_images/run_config.png b/readme_images/run_config.png old mode 100644 new mode 100755 diff --git a/readme_images/settings.png b/readme_images/settings.png old mode 100644 new mode 100755 diff --git a/run.py b/run.py old mode 100644 new mode 100755 diff --git a/schema/__init__.py b/schema/__init__.py old mode 100644 new mode 100755 diff --git a/setup.cfg b/setup.cfg old mode 100644 new mode 100755 diff --git a/setup.py b/setup.py old mode 100644 new mode 100755 diff --git a/tests/__init__.py b/tests/__init__.py old mode 100644 new mode 100755 diff --git a/tests/base_test.py b/tests/base_test.py old mode 100644 new mode 100755 diff --git a/tests/data/add_delete_irb_document/add_delete_irb_document.bpmn b/tests/data/add_delete_irb_document/add_delete_irb_document.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/associated_email/associated_email.bpmn b/tests/data/associated_email/associated_email.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/boolean_default_value/boolean_default_value.bpmn b/tests/data/boolean_default_value/boolean_default_value.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/check_study_script/check_study_script.bpmn b/tests/data/check_study_script/check_study_script.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/decision_table/decision_table.bpmn b/tests/data/decision_table/decision_table.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/decision_table/message_to_ginger.dmn b/tests/data/decision_table/message_to_ginger.dmn old mode 100644 new mode 100755 diff --git a/tests/data/decision_table_dictionary_output/decision_table_dictionary_output.bpmn b/tests/data/decision_table_dictionary_output/decision_table_dictionary_output.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/decision_table_dictionary_output/decision_table_dictionary_output.dmn b/tests/data/decision_table_dictionary_output/decision_table_dictionary_output.dmn old mode 100644 new mode 100755 diff --git a/tests/data/decision_table_invalid/bad_dmn.dmn b/tests/data/decision_table_invalid/bad_dmn.dmn old mode 100644 new mode 100755 diff --git a/tests/data/decision_table_invalid/decision_table_invalid.bpmn b/tests/data/decision_table_invalid/decision_table_invalid.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/docx/Letter.docx b/tests/data/docx/Letter.docx old mode 100644 new mode 100755 diff --git a/tests/data/docx/docx.bpmn b/tests/data/docx/docx.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/email/email.bpmn b/tests/data/email/email.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/email_dashboard_url/email_dashboard_url.bpmn b/tests/data/email_dashboard_url/email_dashboard_url.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/email_script/email_script.bpmn b/tests/data/email_script/email_script.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/empty_workflow/empty_workflow.bpmn b/tests/data/empty_workflow/empty_workflow.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_empty_list/empty_spreadsheet.xlsx b/tests/data/enum_empty_list/empty_spreadsheet.xlsx old mode 100644 new mode 100755 diff --git a/tests/data/enum_empty_list/enum_empty_list.bpmn b/tests/data/enum_empty_list/enum_empty_list.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_competing_files/animals.xlsx b/tests/data/enum_options_competing_files/animals.xlsx old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_competing_files/enum_options_competing_files.bpmn b/tests/data/enum_options_competing_files/enum_options_competing_files.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_competing_files/fruits.xlsx b/tests/data/enum_options_competing_files/fruits.xlsx old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_from_file/customer_list.xlsx b/tests/data/enum_options_from_file/customer_list.xlsx old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_from_file/enum_options_from_file.bpmn b/tests/data/enum_options_from_file/enum_options_from_file.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_from_task_data/enum_options_from_task_data.bpmn b/tests/data/enum_options_from_task_data/enum_options_from_task_data.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_with_search/enum_options_with_search.bpmn b/tests/data/enum_options_with_search/enum_options_with_search.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_with_search/sponsors.xlsx b/tests/data/enum_options_with_search/sponsors.xlsx old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_with_search/sponsors_modified.xlsx b/tests/data/enum_options_with_search/sponsors_modified.xlsx old mode 100644 new mode 100755 diff --git a/tests/data/enum_results/enum_results.bpmn b/tests/data/enum_results/enum_results.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_value_expression/Decision_Value_Expression.dmn b/tests/data/enum_value_expression/Decision_Value_Expression.dmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_value_expression/enum_value_expression.bpmn b/tests/data/enum_value_expression/enum_value_expression.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_value_expression_fail/Decision_Value_Expression.dmn b/tests/data/enum_value_expression_fail/Decision_Value_Expression.dmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_value_expression_fail/enum_value_expression_fail.bpmn b/tests/data/enum_value_expression_fail/enum_value_expression_fail.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/exclusive_gateway/exclusive_gateway.bpmn b/tests/data/exclusive_gateway/exclusive_gateway.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/exclusive_gateway_2/exclusive_gateway_2.bpmn b/tests/data/exclusive_gateway_2/exclusive_gateway_2.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/extension_error/extension_error.bpmn b/tests/data/extension_error/extension_error.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/failing_gateway_workflow/failing_gateway_workflow.bpmn b/tests/data/failing_gateway_workflow/failing_gateway_workflow.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/failing_workflow/failing_workflow.bpmn b/tests/data/failing_workflow/failing_workflow.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/file_data_store/file_data_store.bpmn b/tests/data/file_data_store/file_data_store.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/file_upload_form/file_upload_form.bpmn b/tests/data/file_upload_form/file_upload_form.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/file_upload_form_single/file_upload_form_single.bpmn b/tests/data/file_upload_form_single/file_upload_form_single.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/form_expressions/form_expressions.bpmn b/tests/data/form_expressions/form_expressions.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/get_study_associate/get_study_associate.bpmn b/tests/data/get_study_associate/get_study_associate.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/hello_world/hello_world.bpmn b/tests/data/hello_world/hello_world.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/hidden_required_field/hidden_required_field.bpmn b/tests/data/hidden_required_field/hidden_required_field.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/hidden_required_field_pass/hidden_required_field_pass.bpmn b/tests/data/hidden_required_field_pass/hidden_required_field_pass.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/hidden_required_field_pass_expression/hidden_required_field_pass_expression.bpmn b/tests/data/hidden_required_field_pass_expression/hidden_required_field_pass_expression.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/infinite_loop/infinite_loop.bpmn b/tests/data/infinite_loop/infinite_loop.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/invalid_expression/invalid_expression.bpmn b/tests/data/invalid_expression/invalid_expression.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/invalid_roles/invalid_roles.bpmn b/tests/data/invalid_roles/invalid_roles.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/invalid_script/invalid_script.bpmn b/tests/data/invalid_script/invalid_script.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/invalid_script2/invalid_script2.bpmn b/tests/data/invalid_script2/invalid_script2.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/invalid_script3/invalid_script3.bpmn b/tests/data/invalid_script3/invalid_script3.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/invalid_spec/invalid_spec.bpmn b/tests/data/invalid_spec/invalid_spec.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/irb_api_personnel/irb_api_personnel.bpmn b/tests/data/irb_api_personnel/irb_api_personnel.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/irb_info_script/irb_info_script.bpmn b/tests/data/irb_info_script/irb_info_script.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/ldap_lookup/ldap_lookup.bpmn b/tests/data/ldap_lookup/ldap_lookup.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/ldap_response.json b/tests/data/ldap_response.json old mode 100644 new mode 100755 diff --git a/tests/data/ldap_script/ldap_script.bpmn b/tests/data/ldap_script/ldap_script.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/looping_task/looping_task.bpmn b/tests/data/looping_task/looping_task.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/manual_task_with_external_documentation/Task_Manual_One.md b/tests/data/manual_task_with_external_documentation/Task_Manual_One.md old mode 100644 new mode 100755 diff --git a/tests/data/manual_task_with_external_documentation/manual_task_with_external_documentation.bpmn b/tests/data/manual_task_with_external_documentation/manual_task_with_external_documentation.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/message_event/message_event.bpmn b/tests/data/message_event/message_event.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/missing_form_key/missing_form_key.bpmn b/tests/data/missing_form_key/missing_form_key.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/multi_instance/multi_instance.bpmn b/tests/data/multi_instance/multi_instance.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/multi_instance_parallel/multi_instance_parallel.bpmn b/tests/data/multi_instance_parallel/multi_instance_parallel.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/nav_order/nav_order.bpmn b/tests/data/nav_order/nav_order.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/parallel_tasks/parallel_tasks.bpmn b/tests/data/parallel_tasks/parallel_tasks.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/pb_responses/check_study.json b/tests/data/pb_responses/check_study.json old mode 100644 new mode 100755 diff --git a/tests/data/pb_responses/investigators.json b/tests/data/pb_responses/investigators.json old mode 100644 new mode 100755 diff --git a/tests/data/pb_responses/irb_info.json b/tests/data/pb_responses/irb_info.json old mode 100644 new mode 100755 diff --git a/tests/data/pb_responses/required_docs.json b/tests/data/pb_responses/required_docs.json old mode 100644 new mode 100755 diff --git a/tests/data/pb_responses/sponsors.json b/tests/data/pb_responses/sponsors.json old mode 100644 new mode 100755 diff --git a/tests/data/pb_responses/study_details.json b/tests/data/pb_responses/study_details.json old mode 100644 new mode 100755 diff --git a/tests/data/pb_responses/study_details_bad_review_type.json b/tests/data/pb_responses/study_details_bad_review_type.json old mode 100644 new mode 100755 diff --git a/tests/data/pb_responses/user_studies.json b/tests/data/pb_responses/user_studies.json old mode 100644 new mode 100755 diff --git a/tests/data/random_fact/random_fact.bpmn b/tests/data/random_fact/random_fact.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/random_fact/random_fact2.bpmn b/tests/data/random_fact/random_fact2.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/read_only_field/read_only_field.bpmn b/tests/data/read_only_field/read_only_field.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/repeat_form/repeat_form.bpmn b/tests/data/repeat_form/repeat_form.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/required_fields/required_fields.bpmn b/tests/data/required_fields/required_fields.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/reset_workflow/reset_workflow.bpmn b/tests/data/reset_workflow/reset_workflow.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/roles/roles.bpmn b/tests/data/roles/roles.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/script_with_name_error/script_with_name_error.bpmn b/tests/data/script_with_name_error/script_with_name_error.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_cancellations/study_cancellations.bpmn b/tests/data/study_cancellations/study_cancellations.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_details/study_details.bpmn b/tests/data/study_details/study_details.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_info_script/study_info_script.bpmn b/tests/data/study_info_script/study_info_script.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_sponsors/study_sponsors.bpmn b/tests/data/study_sponsors/study_sponsors.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_sponsors_associate/study_sponsors_associate.bpmn b/tests/data/study_sponsors_associate/study_sponsors_associate.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_sponsors_associate_fail/study_sponsors_associate_fail.bpmn b/tests/data/study_sponsors_associate_fail/study_sponsors_associate_fail.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_sponsors_associate_switch_user/study_sponsors_associate_switch_user.bpmn b/tests/data/study_sponsors_associate_switch_user/study_sponsors_associate_switch_user.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_sponsors_associates_delete/study_sponsors_associates_delete.bpmn b/tests/data/study_sponsors_associates_delete/study_sponsors_associates_delete.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_sponsors_data_store/study_sponsors_data_store.bpmn b/tests/data/study_sponsors_data_store/study_sponsors_data_store.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/subprocess/subprocess.bpmn b/tests/data/subprocess/subprocess.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/table.docx b/tests/data/table.docx old mode 100644 new mode 100755 diff --git a/tests/data/test_value_expression/test_value_expression.bpmn b/tests/data/test_value_expression/test_value_expression.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/timer_event/timer_event.bpmn b/tests/data/timer_event/timer_event.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/timer_event_error/timer_event_error.bpmn b/tests/data/timer_event_error/timer_event_error.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/top_level_workflow/data_security_plan.dmn b/tests/data/top_level_workflow/data_security_plan.dmn old mode 100644 new mode 100755 diff --git a/tests/data/top_level_workflow/enter_core_info.dmn b/tests/data/top_level_workflow/enter_core_info.dmn old mode 100644 new mode 100755 diff --git a/tests/data/top_level_workflow/sponsor_funding_source.dmn b/tests/data/top_level_workflow/sponsor_funding_source.dmn old mode 100644 new mode 100755 diff --git a/tests/data/top_level_workflow/top_level_workflow.bpmn b/tests/data/top_level_workflow/top_level_workflow.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/two_forms/modified/two_forms_struc_mod.bpmn b/tests/data/two_forms/modified/two_forms_struc_mod.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/two_forms/modified/two_forms_text_mod.bpmn b/tests/data/two_forms/modified/two_forms_text_mod.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/two_forms/two_forms.bpmn b/tests/data/two_forms/two_forms.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/two_user_tasks/two_user_tasks.bpmn b/tests/data/two_user_tasks/two_user_tasks.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/verify_end_event/verify_end_event.bpmn b/tests/data/verify_end_event/verify_end_event.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/workflow_form_field_name/workflow_form_field_name.bpmn b/tests/data/workflow_form_field_name/workflow_form_field_name.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/workflow_form_field_type/workflow_form_field_type.bpmn b/tests/data/workflow_form_field_type/workflow_form_field_type.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/workflow_sync_responses/random_fact2.bpmn b/tests/data/workflow_sync_responses/random_fact2.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/workflow_sync_responses/test.txt b/tests/data/workflow_sync_responses/test.txt old mode 100644 new mode 100755 diff --git a/tests/emails/__init__.py b/tests/emails/__init__.py old mode 100644 new mode 100755 diff --git a/tests/emails/test_email_script.py b/tests/emails/test_email_script.py old mode 100644 new mode 100755 diff --git a/tests/emails/test_email_service.py b/tests/emails/test_email_service.py old mode 100644 new mode 100755 diff --git a/tests/files/__init__.py b/tests/files/__init__.py old mode 100644 new mode 100755 diff --git a/tests/files/test_file_service.py b/tests/files/test_file_service.py old mode 100644 new mode 100755 diff --git a/tests/files/test_files_api.py b/tests/files/test_files_api.py old mode 100644 new mode 100755 diff --git a/tests/ldap/__init__.py b/tests/ldap/__init__.py old mode 100644 new mode 100755 diff --git a/tests/ldap/test_ldap_lookup_script.py b/tests/ldap/test_ldap_lookup_script.py old mode 100644 new mode 100755 diff --git a/tests/scripts/__init__.py b/tests/scripts/__init__.py old mode 100644 new mode 100755 diff --git a/tests/scripts/test_check_study.py b/tests/scripts/test_check_study.py old mode 100644 new mode 100755 diff --git a/tests/scripts/test_get_study_associate_validation.py b/tests/scripts/test_get_study_associate_validation.py old mode 100644 new mode 100755 diff --git a/tests/study/__init__.py b/tests/study/__init__.py old mode 100644 new mode 100755 diff --git a/tests/study/test_get_study_from_model.py b/tests/study/test_get_study_from_model.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_actions_status.py b/tests/study/test_study_actions_status.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_api.py b/tests/study/test_study_api.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_associate_script.py b/tests/study/test_study_associate_script.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_cancellations.py b/tests/study/test_study_cancellations.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_data_store_script.py b/tests/study/test_study_data_store_script.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_details.py b/tests/study/test_study_details.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_details_documents.py b/tests/study/test_study_details_documents.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_service.py b/tests/study/test_study_service.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_sponsors_script.py b/tests/study/test_study_sponsors_script.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_status_message.py b/tests/study/test_study_status_message.py old mode 100644 new mode 100755 diff --git a/tests/study/test_update_study_script.py b/tests/study/test_update_study_script.py old mode 100644 new mode 100755 diff --git a/tests/test_authentication.py b/tests/test_authentication.py old mode 100644 new mode 100755 diff --git a/tests/test_auto_set_primary_bpmn.py b/tests/test_auto_set_primary_bpmn.py old mode 100644 new mode 100755 diff --git a/tests/test_complete_template_script.py b/tests/test_complete_template_script.py old mode 100644 new mode 100755 diff --git a/tests/test_datastore_api.py b/tests/test_datastore_api.py old mode 100644 new mode 100755 diff --git a/tests/test_decision_table_dictionary_output.py b/tests/test_decision_table_dictionary_output.py old mode 100644 new mode 100755 diff --git a/tests/test_document_directories.py b/tests/test_document_directories.py old mode 100644 new mode 100755 diff --git a/tests/test_email_script.py b/tests/test_email_script.py old mode 100644 new mode 100755 diff --git a/tests/test_events.py b/tests/test_events.py old mode 100644 new mode 100755 diff --git a/tests/test_file_datastore.py b/tests/test_file_datastore.py old mode 100644 new mode 100755 diff --git a/tests/test_get_dashboard_url_script.py b/tests/test_get_dashboard_url_script.py old mode 100644 new mode 100755 diff --git a/tests/test_irb_info_script.py b/tests/test_irb_info_script.py old mode 100644 new mode 100755 diff --git a/tests/test_is_file_uploaded_script.py b/tests/test_is_file_uploaded_script.py old mode 100644 new mode 100755 diff --git a/tests/test_launch_workflow_outside_study.py b/tests/test_launch_workflow_outside_study.py old mode 100644 new mode 100755 diff --git a/tests/test_ldap_service.py b/tests/test_ldap_service.py old mode 100644 new mode 100755 diff --git a/tests/test_lookup_service.py b/tests/test_lookup_service.py old mode 100644 new mode 100755 diff --git a/tests/test_looping_task.py b/tests/test_looping_task.py old mode 100644 new mode 100755 diff --git a/tests/test_message_event.py b/tests/test_message_event.py old mode 100644 new mode 100755 diff --git a/tests/test_multi_instance_tasks_api.py b/tests/test_multi_instance_tasks_api.py old mode 100644 new mode 100755 diff --git a/tests/test_protocol_builder.py b/tests/test_protocol_builder.py old mode 100644 new mode 100755 diff --git a/tests/test_study_info_script.py b/tests/test_study_info_script.py old mode 100644 new mode 100755 diff --git a/tests/test_tasks_api.py b/tests/test_tasks_api.py old mode 100644 new mode 100755 diff --git a/tests/test_tools_api.py b/tests/test_tools_api.py old mode 100644 new mode 100755 diff --git a/tests/test_user_in_logs.py b/tests/test_user_in_logs.py old mode 100644 new mode 100755 diff --git a/tests/test_user_roles.py b/tests/test_user_roles.py old mode 100644 new mode 100755 diff --git a/tests/test_verify_end_event.py b/tests/test_verify_end_event.py old mode 100644 new mode 100755 diff --git a/tests/test_wait_event.py b/tests/test_wait_event.py old mode 100644 new mode 100755 diff --git a/tests/test_workflow_api.py b/tests/test_workflow_api.py old mode 100644 new mode 100755 diff --git a/tests/test_workflow_sync.py b/tests/test_workflow_sync.py old mode 100644 new mode 100755 diff --git a/tests/workflow/__init__.py b/tests/workflow/__init__.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_duplicate_workflow_spec_file.py b/tests/workflow/test_duplicate_workflow_spec_file.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_boolean_default.py b/tests/workflow/test_workflow_boolean_default.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_customer_error.py b/tests/workflow/test_workflow_customer_error.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_delete_irb_document.py b/tests/workflow/test_workflow_delete_irb_document.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_enum_default_value_expression.py b/tests/workflow/test_workflow_enum_default_value_expression.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_enum_empty_list.py b/tests/workflow/test_workflow_enum_empty_list.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_form_field_name.py b/tests/workflow/test_workflow_form_field_name.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_form_field_type.py b/tests/workflow/test_workflow_form_field_type.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_hidden_required_field.py b/tests/workflow/test_workflow_hidden_required_field.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_infinite_loop.py b/tests/workflow/test_workflow_infinite_loop.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_missing_form_key.py b/tests/workflow/test_workflow_missing_form_key.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_name_error_hint.py b/tests/workflow/test_workflow_name_error_hint.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_processor.py b/tests/workflow/test_workflow_processor.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_processor_multi_instance.py b/tests/workflow/test_workflow_processor_multi_instance.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_read_only_field.py b/tests/workflow/test_workflow_read_only_field.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_reset.py b/tests/workflow/test_workflow_reset.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_restart.py b/tests/workflow/test_workflow_restart.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_service.py b/tests/workflow/test_workflow_service.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_spec_api.py b/tests/workflow/test_workflow_spec_api.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_spec_validation_api.py b/tests/workflow/test_workflow_spec_validation_api.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_value_expression.py b/tests/workflow/test_workflow_value_expression.py old mode 100644 new mode 100755 diff --git a/wsgi.py b/wsgi.py old mode 100644 new mode 100755 From 390658060451ab9c7e43d2d68cf739a93afe886b Mon Sep 17 00:00:00 2001 From: NWalker4483 Date: Tue, 20 Jul 2021 14:25:01 -0400 Subject: [PATCH 2/9] Merges getStudyAssociates() endpoint --- crc/api.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crc/api.yml b/crc/api.yml index 24fb0cda..6944598e 100755 --- a/crc/api.yml +++ b/crc/api.yml @@ -394,7 +394,7 @@ paths: application/json: schema: $ref: "#/components/schemas/Study" - /study/{study_id}/associates': + /study/{study_id}/associates: parameters: - name: study_id in: path From 1cfb7f96fa575c5100b75cb573e55a4b11928cf0 Mon Sep 17 00:00:00 2001 From: NWalker4483 Date: Thu, 22 Jul 2021 11:28:11 -0400 Subject: [PATCH 3/9] Missing uid declaration in study service corrected --- crc/api.yml | 48 ++++++++++------------------------- crc/services/study_service.py | 2 +- 2 files changed, 14 insertions(+), 36 deletions(-) diff --git a/crc/api.yml b/crc/api.yml index 6944598e..4a995b23 100755 --- a/crc/api.yml +++ b/crc/api.yml @@ -399,22 +399,24 @@ paths: - name: study_id in: path required: true - description: The id of the study for which workflows should be returned. + description: The id of the study for which associates should be returned. schema: type: integer format: int32 get: operationId: crc.api.study.get_study_associates - summary: Provides a single study + summary: Provides a list of associates for a particular study tags: - Studies responses: '200': - description: An Study Associate Object + description: list of Study Associate Objects content: application/json: schema: - $ref: "#/components/schemas/StudyAssociate" + type: array + items: + $ref: "#/components/schemas/StudyAssociate" /workflow-specification: get: @@ -1589,39 +1591,15 @@ components: example: "27b-6-1212" StudyAssociate: properties: - id: - type: integer - example: 1234 - title: + uid: type: string - example: The impact of fried pickles on beer consumption in bipedal software developers. - last_updated: + example: "dhf8r" + access: + type: boolean + example: False + role: type: string - format: date_time - example: "2019-12-25T09:12:33.001Z" - primary_investigator_id: - type: string - x-nullable: true - example: dhf8r - user_uid: - type: string - example: dhf8r - status: - type: string - enum: ['in_progress', 'hold', 'open_for_enrollment', 'abandoned'] - example: done - sponsor: - type: string - x-nullable: true - example: "Sartography Pharmaceuticals" - ind_number: - type: string - x-nullable: true - example: "27b-6-42" - hsr_number: - type: string - x-nullable: true - example: "27b-6-1212" + example: "TODO" DocumentDirectory: properties: level: diff --git a/crc/services/study_service.py b/crc/services/study_service.py index fff41b69..bc1cafa3 100755 --- a/crc/services/study_service.py +++ b/crc/services/study_service.py @@ -123,7 +123,7 @@ class StudyService(object): raise ApiError('uid not specified','A valid uva uid is required for this function') if uid == study.user_uid: - return {'uid': ownerid, 'role': 'owner', 'send_email': True, 'access': True} + return {'uid': uid, 'role': 'owner', 'send_email': True, 'access': True} From a73d1794ebc30e85c84888424e9a2782addfee06 Mon Sep 17 00:00:00 2001 From: NWalker4483 Date: Tue, 20 Jul 2021 13:57:32 -0400 Subject: [PATCH 4/9] Fixed Associate API Endpoint description --- .gitignore | 2 +- .sonarcloud.properties | 0 .travis.yml | 0 Dockerfile | 0 LICENSE.md | 0 Pipfile | 0 Pipfile.lock | 0 README.md | 0 config/default.py | 0 config/logging_example.py | 0 config/testing.py | 0 crc/__init__.py | 0 crc/api.yml | 48 +++++------------- crc/api/__init__.py | 0 crc/api/admin.py | 0 crc/api/common.py | 0 crc/api/data_store.py | 0 crc/api/document.py | 0 crc/api/file.py | 0 crc/api/study.py | 0 crc/api/tools.py | 0 crc/api/user.py | 0 crc/api/workflow.py | 0 crc/api/workflow_sync.py | 0 crc/models/__init__.py | 0 crc/models/api_models.py | 0 crc/models/data_store.py | 0 crc/models/email.py | 0 crc/models/file.py | 0 crc/models/ldap.py | 0 crc/models/protocol_builder.py | 0 crc/models/study.py | 1 + crc/models/task_event.py | 0 crc/models/user.py | 0 crc/models/workflow.py | 0 crc/scripts/__init__.py | 0 crc/scripts/check_study.py | 0 crc/scripts/complete_template.py | 0 crc/scripts/delete_file.py | 0 crc/scripts/email.py | 0 crc/scripts/fact_service.py | 0 crc/scripts/failing_script.py | 0 crc/scripts/file_data_get.py | 0 crc/scripts/file_data_set.py | 0 crc/scripts/get_dashboard_url.py | 0 crc/scripts/get_irb_info.py | 0 crc/scripts/get_study_associate.py | 0 crc/scripts/get_study_associates.py | 0 crc/scripts/is_file_uploaded.py | 0 crc/scripts/ldap.py | 0 crc/scripts/reset_workflow.py | 0 crc/scripts/script.py | 0 crc/scripts/study_data_get.py | 0 crc/scripts/study_data_set.py | 0 crc/scripts/study_info.py | 0 crc/scripts/update_study.py | 0 crc/scripts/update_study_associate.py | 0 crc/scripts/update_study_associates.py | 0 crc/scripts/user_data_get.py | 0 crc/scripts/user_data_set.py | 0 crc/services/__init__.py | 0 crc/services/cache_service.py | 0 crc/services/data_store_service.py | 0 crc/services/document_service.py | 0 crc/services/email_service.py | 0 crc/services/error_service.py | 0 crc/services/failing_service.py | 0 crc/services/file_service.py | 0 crc/services/ldap_service.py | 0 crc/services/lookup_service.py | 0 crc/services/protocol_builder.py | 0 crc/services/study_service.py | 21 ++++++-- crc/services/user_service.py | 0 crc/services/workflow_processor.py | 0 crc/services/workflow_service.py | 4 +- crc/services/workflow_sync.py | 0 crc/static/bpmn/abandoned/abandoned.bpmn | 0 crc/static/bpmn/core_info/SponsorList.xls | Bin crc/static/bpmn/core_info/core_info.bpmn | 0 .../decision_core_info_multi_site_q12.dmn | 0 .../decision_core_info_multi_site_q14.dmn | 0 .../decision_core_info_multi_site_q28.dmn | 0 .../bpmn/data_security_plan/HIPAA_Ids.xls | Bin .../data_security_plan/NEW_DSP_template.docx | Bin .../UVA_ServersWebsitesList.xls | Bin .../data_security_plan.bpmn | 0 .../decision_dept_chair.dmn | 0 .../dept_chair_approval.bpmn | 0 .../documents_approvals.bpmn | 0 .../bpmn/enrollment_date/enrollment_date.bpmn | 0 crc/static/bpmn/finance/finance.bpmn | 0 crc/static/bpmn/hold/hold.bpmn | 0 .../bpmn/ide_supplement/SponsorList.xls | Bin .../ide_supplement/decision_ide_check.dmn | 0 .../bpmn/ide_supplement/ide_update.bpmn | 0 .../ids_full_submission.bpmn | 0 .../investigators_brochure.dmn | 0 .../ids_full_submission/ivrs_iwrs_ixrs.dmn | 0 .../ids_full_submission/pharmacy_manual.dmn | 0 crc/static/bpmn/ids_waiver/ids_waiver.bpmn | 0 crc/static/bpmn/ind_update/SponsorList.xls | Bin .../bpmn/ind_update/decision_ind_check.dmn | 0 .../ind_update/decision_ind_uva_check.dmn | 0 crc/static/bpmn/ind_update/ind_update.bpmn | 0 .../bpmn/irb_api_details/irb_api_details.bpmn | 0 .../DepartmentList-ArtsSciences.xlsx | Bin .../DepartmentList-Education.xlsx | Bin .../DepartmentList-Medicine.xlsx | Bin .../bpmn/irb_api_personnel/SchoolList.xls | Bin .../bpmn/irb_api_personnel/check_for_pi.dmn | 0 .../irb_api_personnel/decision_dept_chair.dmn | 0 .../irb_api_personnel/decision_pi_dept.dmn | 0 .../irb_api_personnel/decision_pi_school.dmn | 0 .../bpmn/irb_api_personnel/decision_ro.dmn | 0 .../irb_api_personnel/decision_ro_chair.dmn | 0 .../irb_api_personnel/decision_ro_dept.dmn | 0 .../irb_api_personnel/irb_api_personnel.bpmn | 0 .../non_uva_approval/non_uva_approval.bpmn | 0 .../bpmn/notifications/notifications.bpmn | 0 crc/static/bpmn/protocol/protocol.bpmn | 0 .../bpmn/research_rampup/BuildingList.xls | Bin .../DepartmentList-Architecture.xlsx | Bin .../DepartmentList-ArtsSciences.xlsx | Bin .../DepartmentList-Education.xlsx | Bin .../DepartmentList-Engineering.xlsx | Bin .../DepartmentList-Medicine.xlsx | Bin .../DepartmentList-ProvostOffice.xlsx | Bin .../bpmn/research_rampup/DepartmentList.xlsx | Bin .../bpmn/research_rampup/LabSpaces.xlsx | Bin .../bpmn/research_rampup/RTT_Approvers.dmn | 0 .../research_rampup/ResearchRampUpPlan.docx | Bin .../bpmn/research_rampup/SchoolList.xls | Bin .../exclusive_area_monitors.dmn | 0 .../bpmn/research_rampup/research_rampup.bpmn | 0 .../research_rampup/shared_area_monitors.dmn | 0 .../rrt_top_level_workflow.bpmn | 0 .../decision_support_lang.dmn | 0 .../rsc_hire_committee.bpmn | 0 .../rsc_hire_submission.bpmn | 0 .../sponsor_funding_source/SponsorList.xls | Bin .../sponsor_funding_source.bpmn | 0 .../top_level_workflow/data_security_plan.dmn | 0 .../top_level_workflow/enter_core_info.dmn | 0 .../top_level_workflow/ide_supplement.dmn | 0 .../ids_full_submission.dmn | 0 .../bpmn/top_level_workflow/ids_waiver.dmn | 0 .../bpmn/top_level_workflow/ind_update.dmn | 0 .../bpmn/top_level_workflow/personnel.dmn | 0 .../sponsor_funding_source.dmn | 0 .../top_level_workflow.bpmn | 0 crc/static/jinja_extensions.py | 0 crc/static/reference/investigators.xlsx | Bin crc/static/reference/irb_documents.xlsx | Bin crc/static/reference/rrt_documents.xlsx | Bin crc/static/templates/placeholder.docx | Bin crc/static/templates/placeholder.png | Bin crc/static/uva_rotunda.svg | 0 crc/templates/mail_content_template.html | 0 crc/templates/mail_main_template.html | 0 crconnect.wsgi | 0 deploy/requirements.txt | 0 docs/Makefile | 0 docs/conf.py | 0 docs/index.rst | 0 docs/make.bat | 0 docs/protocol_builder.html | 0 example_data.py | 0 fact_runner.py | 0 migrations/README | 0 migrations/alembic.ini | 0 migrations/env.py | 0 migrations/script.py.mako | 0 migrations/versions/0718ad13e5f3_.py | 0 migrations/versions/0f38d7a36f21_.py | 0 migrations/versions/13424d5a6de8_.py | 0 migrations/versions/1685be1cc232_.py | 0 migrations/versions/17597692d0b0_.py | 0 migrations/versions/1c3f88dbccc3_.py | 0 migrations/versions/1fdd1bdb600e_.py | 0 migrations/versions/23c62c933848_.py | 0 migrations/versions/2e7b377cbc7b_.py | 0 migrations/versions/30e017a03948_.py | 0 migrations/versions/476f8a4933ba_.py | 0 migrations/versions/5064b72284b7_.py | 0 migrations/versions/55c6cd407d89_.py | 0 migrations/versions/5acd138e969c_.py | 0 migrations/versions/5e0709e172fa_.py | 0 migrations/versions/5f06108116ae_.py | 0 migrations/versions/62910318009f_.py | 0 migrations/versions/65f3fce6031a_.py | 0 migrations/versions/665624ac29f1_.py | 0 migrations/versions/69081f1ff387_.py | 0 migrations/versions/7be7cecbeea8_.py | 0 migrations/versions/7c0de7621a1f_.py | 0 migrations/versions/87af86338630_.py | 0 migrations/versions/8856126b6658_.py | 0 migrations/versions/8b976945a54e_.py | 0 migrations/versions/90dd63672e0a_.py | 0 migrations/versions/9b43e725f39c_.py | 0 migrations/versions/ab06a94e5d4c_.py | 0 ...547305_update_type_on_task_events_table.py | 0 migrations/versions/afecb64d2e66_.py | 0 migrations/versions/bbf064082623_.py | 0 migrations/versions/bec71f7dc652_.py | 0 migrations/versions/c1449d1d1681_.py | 0 migrations/versions/c16d3047abbe_.py | 0 migrations/versions/c4ddb69e7ef4_.py | 0 migrations/versions/c6261ac7a7bc_.py | 0 migrations/versions/c872232ebdcb_.py | 0 migrations/versions/cb892916166a_.py | 0 migrations/versions/cc4bccc5e5a8_.py | 0 ...71c_merge_30e017a03948_and_c16d3047abbe.py | 0 migrations/versions/ddd5fc9ea75b_.py | 0 migrations/versions/de30304ff5e6_.py | 0 .../versions/e0dfdbfd6f69_add_columns.py | 0 migrations/versions/f186725c1ad3_.py | 0 migrations/versions/f28ee3722c49_.py | 0 migrations/versions/ff29528a9909_.py | 0 migrations/versions/ffef4661a37d_.py | 0 package-lock.json | 0 postgres/docker-compose.yml | 0 postgres/docker-windows-compose.yml | 0 postgres/package-lock.json | 0 postgres/pg-init-scripts/initdb.sh | 0 readme_images/new_project.png | Bin readme_images/run.png | Bin readme_images/run_config.png | Bin readme_images/settings.png | Bin run.py | 0 schema/__init__.py | 0 setup.cfg | 0 setup.py | 0 tests/__init__.py | 0 tests/base_test.py | 0 .../add_delete_irb_document.bpmn | 0 .../associated_email/associated_email.bpmn | 0 .../boolean_default_value.bpmn | 0 .../check_study_script.bpmn | 0 tests/data/decision_table/decision_table.bpmn | 0 .../data/decision_table/message_to_ginger.dmn | 0 .../decision_table_dictionary_output.bpmn | 0 .../decision_table_dictionary_output.dmn | 0 tests/data/decision_table_invalid/bad_dmn.dmn | 0 .../decision_table_invalid.bpmn | 0 tests/data/docx/Letter.docx | Bin tests/data/docx/docx.bpmn | 0 tests/data/email/email.bpmn | 0 .../email_dashboard_url.bpmn | 0 tests/data/email_script/email_script.bpmn | 0 tests/data/empty_workflow/empty_workflow.bpmn | 0 .../enum_empty_list/empty_spreadsheet.xlsx | Bin .../data/enum_empty_list/enum_empty_list.bpmn | 0 .../enum_options_competing_files/animals.xlsx | Bin .../enum_options_competing_files.bpmn | 0 .../enum_options_competing_files/fruits.xlsx | Bin .../enum_options_from_file/customer_list.xlsx | Bin .../enum_options_from_file.bpmn | 0 .../enum_options_from_task_data.bpmn | 0 .../enum_options_with_search.bpmn | 0 .../enum_options_with_search/sponsors.xlsx | Bin .../sponsors_modified.xlsx | Bin tests/data/enum_results/enum_results.bpmn | 0 .../Decision_Value_Expression.dmn | 0 .../enum_value_expression.bpmn | 0 .../Decision_Value_Expression.dmn | 0 .../enum_value_expression_fail.bpmn | 0 .../exclusive_gateway/exclusive_gateway.bpmn | 0 .../exclusive_gateway_2.bpmn | 0 .../data/extension_error/extension_error.bpmn | 0 .../failing_gateway_workflow.bpmn | 0 .../failing_workflow/failing_workflow.bpmn | 0 .../data/file_data_store/file_data_store.bpmn | 0 .../file_upload_form/file_upload_form.bpmn | 0 .../file_upload_form_single.bpmn | 0 .../form_expressions/form_expressions.bpmn | 0 .../get_study_associate.bpmn | 0 tests/data/hello_world/hello_world.bpmn | 0 .../hidden_required_field.bpmn | 0 .../hidden_required_field_pass.bpmn | 0 ...hidden_required_field_pass_expression.bpmn | 0 tests/data/infinite_loop/infinite_loop.bpmn | 0 .../invalid_expression.bpmn | 0 tests/data/invalid_roles/invalid_roles.bpmn | 0 tests/data/invalid_script/invalid_script.bpmn | 0 .../data/invalid_script2/invalid_script2.bpmn | 0 .../data/invalid_script3/invalid_script3.bpmn | 0 tests/data/invalid_spec/invalid_spec.bpmn | 0 .../irb_api_personnel/irb_api_personnel.bpmn | 0 .../data/irb_info_script/irb_info_script.bpmn | 0 tests/data/ldap_lookup/ldap_lookup.bpmn | 0 tests/data/ldap_response.json | 0 tests/data/ldap_script/ldap_script.bpmn | 0 tests/data/looping_task/looping_task.bpmn | 0 .../Task_Manual_One.md | 0 ...nual_task_with_external_documentation.bpmn | 0 tests/data/message_event/message_event.bpmn | 0 .../missing_form_key/missing_form_key.bpmn | 0 tests/data/multi_instance/multi_instance.bpmn | 0 .../multi_instance_parallel.bpmn | 0 tests/data/nav_order/nav_order.bpmn | 0 tests/data/parallel_tasks/parallel_tasks.bpmn | 0 tests/data/pb_responses/check_study.json | 0 tests/data/pb_responses/investigators.json | 0 tests/data/pb_responses/irb_info.json | 0 tests/data/pb_responses/required_docs.json | 0 tests/data/pb_responses/sponsors.json | 0 tests/data/pb_responses/study_details.json | 0 .../study_details_bad_review_type.json | 0 tests/data/pb_responses/user_studies.json | 0 tests/data/random_fact/random_fact.bpmn | 0 tests/data/random_fact/random_fact2.bpmn | 0 .../data/read_only_field/read_only_field.bpmn | 0 tests/data/repeat_form/repeat_form.bpmn | 0 .../data/required_fields/required_fields.bpmn | 0 tests/data/reset_workflow/reset_workflow.bpmn | 0 tests/data/roles/roles.bpmn | 0 .../script_with_name_error.bpmn | 0 .../study_cancellations.bpmn | 0 tests/data/study_details/study_details.bpmn | 0 .../study_info_script/study_info_script.bpmn | 0 tests/data/study_sponsors/study_sponsors.bpmn | 0 .../study_sponsors_associate.bpmn | 0 .../study_sponsors_associate_fail.bpmn | 0 .../study_sponsors_associate_switch_user.bpmn | 0 .../study_sponsors_associates_delete.bpmn | 0 .../study_sponsors_data_store.bpmn | 0 tests/data/subprocess/subprocess.bpmn | 0 tests/data/table.docx | Bin .../test_value_expression.bpmn | 0 tests/data/timer_event/timer_event.bpmn | 0 .../timer_event_error/timer_event_error.bpmn | 0 .../top_level_workflow/data_security_plan.dmn | 0 .../top_level_workflow/enter_core_info.dmn | 0 .../sponsor_funding_source.dmn | 0 .../top_level_workflow.bpmn | 0 .../modified/two_forms_struc_mod.bpmn | 0 .../modified/two_forms_text_mod.bpmn | 0 tests/data/two_forms/two_forms.bpmn | 0 tests/data/two_user_tasks/two_user_tasks.bpmn | 0 .../verify_end_event/verify_end_event.bpmn | 0 .../workflow_form_field_name.bpmn | 0 .../workflow_form_field_type.bpmn | 0 .../workflow_sync_responses/random_fact2.bpmn | 0 tests/data/workflow_sync_responses/test.txt | 0 tests/emails/__init__.py | 0 tests/emails/test_email_script.py | 0 tests/emails/test_email_service.py | 0 tests/files/__init__.py | 0 tests/files/test_file_service.py | 0 tests/files/test_files_api.py | 0 tests/ldap/__init__.py | 0 tests/ldap/test_ldap_lookup_script.py | 0 tests/scripts/__init__.py | 0 tests/scripts/test_check_study.py | 0 .../test_get_study_associate_validation.py | 0 tests/study/__init__.py | 0 tests/study/test_get_study_from_model.py | 0 tests/study/test_study_actions_status.py | 0 tests/study/test_study_api.py | 0 tests/study/test_study_associate_script.py | 0 tests/study/test_study_cancellations.py | 0 tests/study/test_study_data_store_script.py | 0 tests/study/test_study_details.py | 0 tests/study/test_study_details_documents.py | 0 tests/study/test_study_service.py | 0 tests/study/test_study_sponsors_script.py | 0 tests/study/test_study_status_message.py | 0 tests/study/test_update_study_script.py | 0 tests/test_authentication.py | 0 tests/test_auto_set_primary_bpmn.py | 0 tests/test_complete_template_script.py | 0 tests/test_datastore_api.py | 0 .../test_decision_table_dictionary_output.py | 0 tests/test_document_directories.py | 0 tests/test_email_script.py | 0 tests/test_events.py | 0 tests/test_file_datastore.py | 0 tests/test_get_dashboard_url_script.py | 0 tests/test_irb_info_script.py | 0 tests/test_is_file_uploaded_script.py | 0 tests/test_launch_workflow_outside_study.py | 0 tests/test_ldap_service.py | 0 tests/test_lookup_service.py | 0 tests/test_looping_task.py | 0 tests/test_message_event.py | 0 tests/test_multi_instance_tasks_api.py | 0 tests/test_protocol_builder.py | 0 tests/test_study_info_script.py | 0 tests/test_tasks_api.py | 0 tests/test_tools_api.py | 0 tests/test_user_in_logs.py | 0 tests/test_user_roles.py | 0 tests/test_verify_end_event.py | 0 tests/test_wait_event.py | 0 tests/test_workflow_api.py | 0 tests/test_workflow_sync.py | 0 tests/workflow/__init__.py | 0 .../test_duplicate_workflow_spec_file.py | 0 .../workflow/test_workflow_boolean_default.py | 0 .../workflow/test_workflow_customer_error.py | 0 .../test_workflow_delete_irb_document.py | 0 ..._workflow_enum_default_value_expression.py | 0 .../workflow/test_workflow_enum_empty_list.py | 0 .../workflow/test_workflow_form_field_name.py | 0 .../workflow/test_workflow_form_field_type.py | 0 .../test_workflow_hidden_required_field.py | 0 tests/workflow/test_workflow_infinite_loop.py | 0 .../test_workflow_missing_form_key.py | 0 .../workflow/test_workflow_name_error_hint.py | 0 tests/workflow/test_workflow_processor.py | 0 .../test_workflow_processor_multi_instance.py | 0 .../workflow/test_workflow_read_only_field.py | 0 tests/workflow/test_workflow_reset.py | 0 tests/workflow/test_workflow_restart.py | 0 tests/workflow/test_workflow_service.py | 0 tests/workflow/test_workflow_spec_api.py | 0 .../test_workflow_spec_validation_api.py | 0 .../test_workflow_value_expression.py | 0 wsgi.py | 0 419 files changed, 33 insertions(+), 43 deletions(-) mode change 100644 => 100755 .gitignore mode change 100644 => 100755 .sonarcloud.properties mode change 100644 => 100755 .travis.yml mode change 100644 => 100755 Dockerfile mode change 100644 => 100755 LICENSE.md mode change 100644 => 100755 Pipfile mode change 100644 => 100755 Pipfile.lock mode change 100644 => 100755 README.md mode change 100644 => 100755 config/default.py mode change 100644 => 100755 config/logging_example.py mode change 100644 => 100755 config/testing.py mode change 100644 => 100755 crc/__init__.py mode change 100644 => 100755 crc/api.yml mode change 100644 => 100755 crc/api/__init__.py mode change 100644 => 100755 crc/api/admin.py mode change 100644 => 100755 crc/api/common.py mode change 100644 => 100755 crc/api/data_store.py mode change 100644 => 100755 crc/api/document.py mode change 100644 => 100755 crc/api/file.py mode change 100644 => 100755 crc/api/study.py mode change 100644 => 100755 crc/api/tools.py mode change 100644 => 100755 crc/api/user.py mode change 100644 => 100755 crc/api/workflow.py mode change 100644 => 100755 crc/api/workflow_sync.py mode change 100644 => 100755 crc/models/__init__.py mode change 100644 => 100755 crc/models/api_models.py mode change 100644 => 100755 crc/models/data_store.py mode change 100644 => 100755 crc/models/email.py mode change 100644 => 100755 crc/models/file.py mode change 100644 => 100755 crc/models/ldap.py mode change 100644 => 100755 crc/models/protocol_builder.py mode change 100644 => 100755 crc/models/study.py mode change 100644 => 100755 crc/models/task_event.py mode change 100644 => 100755 crc/models/user.py mode change 100644 => 100755 crc/models/workflow.py mode change 100644 => 100755 crc/scripts/__init__.py mode change 100644 => 100755 crc/scripts/check_study.py mode change 100644 => 100755 crc/scripts/complete_template.py mode change 100644 => 100755 crc/scripts/delete_file.py mode change 100644 => 100755 crc/scripts/email.py mode change 100644 => 100755 crc/scripts/fact_service.py mode change 100644 => 100755 crc/scripts/failing_script.py mode change 100644 => 100755 crc/scripts/file_data_get.py mode change 100644 => 100755 crc/scripts/file_data_set.py mode change 100644 => 100755 crc/scripts/get_dashboard_url.py mode change 100644 => 100755 crc/scripts/get_irb_info.py mode change 100644 => 100755 crc/scripts/get_study_associate.py mode change 100644 => 100755 crc/scripts/get_study_associates.py mode change 100644 => 100755 crc/scripts/is_file_uploaded.py mode change 100644 => 100755 crc/scripts/ldap.py mode change 100644 => 100755 crc/scripts/reset_workflow.py mode change 100644 => 100755 crc/scripts/script.py mode change 100644 => 100755 crc/scripts/study_data_get.py mode change 100644 => 100755 crc/scripts/study_data_set.py mode change 100644 => 100755 crc/scripts/study_info.py mode change 100644 => 100755 crc/scripts/update_study.py mode change 100644 => 100755 crc/scripts/update_study_associate.py mode change 100644 => 100755 crc/scripts/update_study_associates.py mode change 100644 => 100755 crc/scripts/user_data_get.py mode change 100644 => 100755 crc/scripts/user_data_set.py mode change 100644 => 100755 crc/services/__init__.py mode change 100644 => 100755 crc/services/cache_service.py mode change 100644 => 100755 crc/services/data_store_service.py mode change 100644 => 100755 crc/services/document_service.py mode change 100644 => 100755 crc/services/email_service.py mode change 100644 => 100755 crc/services/error_service.py mode change 100644 => 100755 crc/services/failing_service.py mode change 100644 => 100755 crc/services/file_service.py mode change 100644 => 100755 crc/services/ldap_service.py mode change 100644 => 100755 crc/services/lookup_service.py mode change 100644 => 100755 crc/services/protocol_builder.py mode change 100644 => 100755 crc/services/study_service.py mode change 100644 => 100755 crc/services/user_service.py mode change 100644 => 100755 crc/services/workflow_processor.py mode change 100644 => 100755 crc/services/workflow_service.py mode change 100644 => 100755 crc/services/workflow_sync.py mode change 100644 => 100755 crc/static/bpmn/abandoned/abandoned.bpmn mode change 100644 => 100755 crc/static/bpmn/core_info/SponsorList.xls mode change 100644 => 100755 crc/static/bpmn/core_info/core_info.bpmn mode change 100644 => 100755 crc/static/bpmn/core_info/decision_core_info_multi_site_q12.dmn mode change 100644 => 100755 crc/static/bpmn/core_info/decision_core_info_multi_site_q14.dmn mode change 100644 => 100755 crc/static/bpmn/core_info/decision_core_info_multi_site_q28.dmn mode change 100644 => 100755 crc/static/bpmn/data_security_plan/HIPAA_Ids.xls mode change 100644 => 100755 crc/static/bpmn/data_security_plan/NEW_DSP_template.docx mode change 100644 => 100755 crc/static/bpmn/data_security_plan/UVA_ServersWebsitesList.xls mode change 100644 => 100755 crc/static/bpmn/data_security_plan/data_security_plan.bpmn mode change 100644 => 100755 crc/static/bpmn/department_chair_approval/decision_dept_chair.dmn mode change 100644 => 100755 crc/static/bpmn/department_chair_approval/dept_chair_approval.bpmn mode change 100644 => 100755 crc/static/bpmn/documents_approvals/documents_approvals.bpmn mode change 100644 => 100755 crc/static/bpmn/enrollment_date/enrollment_date.bpmn mode change 100644 => 100755 crc/static/bpmn/finance/finance.bpmn mode change 100644 => 100755 crc/static/bpmn/hold/hold.bpmn mode change 100644 => 100755 crc/static/bpmn/ide_supplement/SponsorList.xls mode change 100644 => 100755 crc/static/bpmn/ide_supplement/decision_ide_check.dmn mode change 100644 => 100755 crc/static/bpmn/ide_supplement/ide_update.bpmn mode change 100644 => 100755 crc/static/bpmn/ids_full_submission/ids_full_submission.bpmn mode change 100644 => 100755 crc/static/bpmn/ids_full_submission/investigators_brochure.dmn mode change 100644 => 100755 crc/static/bpmn/ids_full_submission/ivrs_iwrs_ixrs.dmn mode change 100644 => 100755 crc/static/bpmn/ids_full_submission/pharmacy_manual.dmn mode change 100644 => 100755 crc/static/bpmn/ids_waiver/ids_waiver.bpmn mode change 100644 => 100755 crc/static/bpmn/ind_update/SponsorList.xls mode change 100644 => 100755 crc/static/bpmn/ind_update/decision_ind_check.dmn mode change 100644 => 100755 crc/static/bpmn/ind_update/decision_ind_uva_check.dmn mode change 100644 => 100755 crc/static/bpmn/ind_update/ind_update.bpmn mode change 100644 => 100755 crc/static/bpmn/irb_api_details/irb_api_details.bpmn mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/DepartmentList-ArtsSciences.xlsx mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/DepartmentList-Education.xlsx mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/DepartmentList-Medicine.xlsx mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/SchoolList.xls mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/check_for_pi.dmn mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/decision_dept_chair.dmn mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/decision_pi_dept.dmn mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/decision_pi_school.dmn mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/decision_ro.dmn mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/decision_ro_chair.dmn mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/decision_ro_dept.dmn mode change 100644 => 100755 crc/static/bpmn/irb_api_personnel/irb_api_personnel.bpmn mode change 100644 => 100755 crc/static/bpmn/non_uva_approval/non_uva_approval.bpmn mode change 100644 => 100755 crc/static/bpmn/notifications/notifications.bpmn mode change 100644 => 100755 crc/static/bpmn/protocol/protocol.bpmn mode change 100644 => 100755 crc/static/bpmn/research_rampup/BuildingList.xls mode change 100644 => 100755 crc/static/bpmn/research_rampup/DepartmentList-Architecture.xlsx mode change 100644 => 100755 crc/static/bpmn/research_rampup/DepartmentList-ArtsSciences.xlsx mode change 100644 => 100755 crc/static/bpmn/research_rampup/DepartmentList-Education.xlsx mode change 100644 => 100755 crc/static/bpmn/research_rampup/DepartmentList-Engineering.xlsx mode change 100644 => 100755 crc/static/bpmn/research_rampup/DepartmentList-Medicine.xlsx mode change 100644 => 100755 crc/static/bpmn/research_rampup/DepartmentList-ProvostOffice.xlsx mode change 100644 => 100755 crc/static/bpmn/research_rampup/DepartmentList.xlsx mode change 100644 => 100755 crc/static/bpmn/research_rampup/LabSpaces.xlsx mode change 100644 => 100755 crc/static/bpmn/research_rampup/RTT_Approvers.dmn mode change 100644 => 100755 crc/static/bpmn/research_rampup/ResearchRampUpPlan.docx mode change 100644 => 100755 crc/static/bpmn/research_rampup/SchoolList.xls mode change 100644 => 100755 crc/static/bpmn/research_rampup/exclusive_area_monitors.dmn mode change 100644 => 100755 crc/static/bpmn/research_rampup/research_rampup.bpmn mode change 100644 => 100755 crc/static/bpmn/research_rampup/shared_area_monitors.dmn mode change 100644 => 100755 crc/static/bpmn/rrt_top_level_workflow/rrt_top_level_workflow.bpmn mode change 100644 => 100755 crc/static/bpmn/rsc_hire_committee/decision_support_lang.dmn mode change 100644 => 100755 crc/static/bpmn/rsc_hire_committee/rsc_hire_committee.bpmn mode change 100644 => 100755 crc/static/bpmn/rsc_hire_submission/rsc_hire_submission.bpmn mode change 100644 => 100755 crc/static/bpmn/sponsor_funding_source/SponsorList.xls mode change 100644 => 100755 crc/static/bpmn/sponsor_funding_source/sponsor_funding_source.bpmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/data_security_plan.dmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/enter_core_info.dmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/ide_supplement.dmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/ids_full_submission.dmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/ids_waiver.dmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/ind_update.dmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/personnel.dmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/sponsor_funding_source.dmn mode change 100644 => 100755 crc/static/bpmn/top_level_workflow/top_level_workflow.bpmn mode change 100644 => 100755 crc/static/jinja_extensions.py mode change 100644 => 100755 crc/static/reference/investigators.xlsx mode change 100644 => 100755 crc/static/reference/irb_documents.xlsx mode change 100644 => 100755 crc/static/reference/rrt_documents.xlsx mode change 100644 => 100755 crc/static/templates/placeholder.docx mode change 100644 => 100755 crc/static/templates/placeholder.png mode change 100644 => 100755 crc/static/uva_rotunda.svg mode change 100644 => 100755 crc/templates/mail_content_template.html mode change 100644 => 100755 crc/templates/mail_main_template.html mode change 100644 => 100755 crconnect.wsgi mode change 100644 => 100755 deploy/requirements.txt mode change 100644 => 100755 docs/Makefile mode change 100644 => 100755 docs/conf.py mode change 100644 => 100755 docs/index.rst mode change 100644 => 100755 docs/make.bat mode change 100644 => 100755 docs/protocol_builder.html mode change 100644 => 100755 example_data.py mode change 100644 => 100755 fact_runner.py mode change 100644 => 100755 migrations/README mode change 100644 => 100755 migrations/alembic.ini mode change 100644 => 100755 migrations/env.py mode change 100644 => 100755 migrations/script.py.mako mode change 100644 => 100755 migrations/versions/0718ad13e5f3_.py mode change 100644 => 100755 migrations/versions/0f38d7a36f21_.py mode change 100644 => 100755 migrations/versions/13424d5a6de8_.py mode change 100644 => 100755 migrations/versions/1685be1cc232_.py mode change 100644 => 100755 migrations/versions/17597692d0b0_.py mode change 100644 => 100755 migrations/versions/1c3f88dbccc3_.py mode change 100644 => 100755 migrations/versions/1fdd1bdb600e_.py mode change 100644 => 100755 migrations/versions/23c62c933848_.py mode change 100644 => 100755 migrations/versions/2e7b377cbc7b_.py mode change 100644 => 100755 migrations/versions/30e017a03948_.py mode change 100644 => 100755 migrations/versions/476f8a4933ba_.py mode change 100644 => 100755 migrations/versions/5064b72284b7_.py mode change 100644 => 100755 migrations/versions/55c6cd407d89_.py mode change 100644 => 100755 migrations/versions/5acd138e969c_.py mode change 100644 => 100755 migrations/versions/5e0709e172fa_.py mode change 100644 => 100755 migrations/versions/5f06108116ae_.py mode change 100644 => 100755 migrations/versions/62910318009f_.py mode change 100644 => 100755 migrations/versions/65f3fce6031a_.py mode change 100644 => 100755 migrations/versions/665624ac29f1_.py mode change 100644 => 100755 migrations/versions/69081f1ff387_.py mode change 100644 => 100755 migrations/versions/7be7cecbeea8_.py mode change 100644 => 100755 migrations/versions/7c0de7621a1f_.py mode change 100644 => 100755 migrations/versions/87af86338630_.py mode change 100644 => 100755 migrations/versions/8856126b6658_.py mode change 100644 => 100755 migrations/versions/8b976945a54e_.py mode change 100644 => 100755 migrations/versions/90dd63672e0a_.py mode change 100644 => 100755 migrations/versions/9b43e725f39c_.py mode change 100644 => 100755 migrations/versions/ab06a94e5d4c_.py mode change 100644 => 100755 migrations/versions/abeffe547305_update_type_on_task_events_table.py mode change 100644 => 100755 migrations/versions/afecb64d2e66_.py mode change 100644 => 100755 migrations/versions/bbf064082623_.py mode change 100644 => 100755 migrations/versions/bec71f7dc652_.py mode change 100644 => 100755 migrations/versions/c1449d1d1681_.py mode change 100644 => 100755 migrations/versions/c16d3047abbe_.py mode change 100644 => 100755 migrations/versions/c4ddb69e7ef4_.py mode change 100644 => 100755 migrations/versions/c6261ac7a7bc_.py mode change 100644 => 100755 migrations/versions/c872232ebdcb_.py mode change 100644 => 100755 migrations/versions/cb892916166a_.py mode change 100644 => 100755 migrations/versions/cc4bccc5e5a8_.py mode change 100644 => 100755 migrations/versions/dc30b8f6571c_merge_30e017a03948_and_c16d3047abbe.py mode change 100644 => 100755 migrations/versions/ddd5fc9ea75b_.py mode change 100644 => 100755 migrations/versions/de30304ff5e6_.py mode change 100644 => 100755 migrations/versions/e0dfdbfd6f69_add_columns.py mode change 100644 => 100755 migrations/versions/f186725c1ad3_.py mode change 100644 => 100755 migrations/versions/f28ee3722c49_.py mode change 100644 => 100755 migrations/versions/ff29528a9909_.py mode change 100644 => 100755 migrations/versions/ffef4661a37d_.py mode change 100644 => 100755 package-lock.json mode change 100644 => 100755 postgres/docker-compose.yml mode change 100644 => 100755 postgres/docker-windows-compose.yml mode change 100644 => 100755 postgres/package-lock.json mode change 100644 => 100755 postgres/pg-init-scripts/initdb.sh mode change 100644 => 100755 readme_images/new_project.png mode change 100644 => 100755 readme_images/run.png mode change 100644 => 100755 readme_images/run_config.png mode change 100644 => 100755 readme_images/settings.png mode change 100644 => 100755 run.py mode change 100644 => 100755 schema/__init__.py mode change 100644 => 100755 setup.cfg mode change 100644 => 100755 setup.py mode change 100644 => 100755 tests/__init__.py mode change 100644 => 100755 tests/base_test.py mode change 100644 => 100755 tests/data/add_delete_irb_document/add_delete_irb_document.bpmn mode change 100644 => 100755 tests/data/associated_email/associated_email.bpmn mode change 100644 => 100755 tests/data/boolean_default_value/boolean_default_value.bpmn mode change 100644 => 100755 tests/data/check_study_script/check_study_script.bpmn mode change 100644 => 100755 tests/data/decision_table/decision_table.bpmn mode change 100644 => 100755 tests/data/decision_table/message_to_ginger.dmn mode change 100644 => 100755 tests/data/decision_table_dictionary_output/decision_table_dictionary_output.bpmn mode change 100644 => 100755 tests/data/decision_table_dictionary_output/decision_table_dictionary_output.dmn mode change 100644 => 100755 tests/data/decision_table_invalid/bad_dmn.dmn mode change 100644 => 100755 tests/data/decision_table_invalid/decision_table_invalid.bpmn mode change 100644 => 100755 tests/data/docx/Letter.docx mode change 100644 => 100755 tests/data/docx/docx.bpmn mode change 100644 => 100755 tests/data/email/email.bpmn mode change 100644 => 100755 tests/data/email_dashboard_url/email_dashboard_url.bpmn mode change 100644 => 100755 tests/data/email_script/email_script.bpmn mode change 100644 => 100755 tests/data/empty_workflow/empty_workflow.bpmn mode change 100644 => 100755 tests/data/enum_empty_list/empty_spreadsheet.xlsx mode change 100644 => 100755 tests/data/enum_empty_list/enum_empty_list.bpmn mode change 100644 => 100755 tests/data/enum_options_competing_files/animals.xlsx mode change 100644 => 100755 tests/data/enum_options_competing_files/enum_options_competing_files.bpmn mode change 100644 => 100755 tests/data/enum_options_competing_files/fruits.xlsx mode change 100644 => 100755 tests/data/enum_options_from_file/customer_list.xlsx mode change 100644 => 100755 tests/data/enum_options_from_file/enum_options_from_file.bpmn mode change 100644 => 100755 tests/data/enum_options_from_task_data/enum_options_from_task_data.bpmn mode change 100644 => 100755 tests/data/enum_options_with_search/enum_options_with_search.bpmn mode change 100644 => 100755 tests/data/enum_options_with_search/sponsors.xlsx mode change 100644 => 100755 tests/data/enum_options_with_search/sponsors_modified.xlsx mode change 100644 => 100755 tests/data/enum_results/enum_results.bpmn mode change 100644 => 100755 tests/data/enum_value_expression/Decision_Value_Expression.dmn mode change 100644 => 100755 tests/data/enum_value_expression/enum_value_expression.bpmn mode change 100644 => 100755 tests/data/enum_value_expression_fail/Decision_Value_Expression.dmn mode change 100644 => 100755 tests/data/enum_value_expression_fail/enum_value_expression_fail.bpmn mode change 100644 => 100755 tests/data/exclusive_gateway/exclusive_gateway.bpmn mode change 100644 => 100755 tests/data/exclusive_gateway_2/exclusive_gateway_2.bpmn mode change 100644 => 100755 tests/data/extension_error/extension_error.bpmn mode change 100644 => 100755 tests/data/failing_gateway_workflow/failing_gateway_workflow.bpmn mode change 100644 => 100755 tests/data/failing_workflow/failing_workflow.bpmn mode change 100644 => 100755 tests/data/file_data_store/file_data_store.bpmn mode change 100644 => 100755 tests/data/file_upload_form/file_upload_form.bpmn mode change 100644 => 100755 tests/data/file_upload_form_single/file_upload_form_single.bpmn mode change 100644 => 100755 tests/data/form_expressions/form_expressions.bpmn mode change 100644 => 100755 tests/data/get_study_associate/get_study_associate.bpmn mode change 100644 => 100755 tests/data/hello_world/hello_world.bpmn mode change 100644 => 100755 tests/data/hidden_required_field/hidden_required_field.bpmn mode change 100644 => 100755 tests/data/hidden_required_field_pass/hidden_required_field_pass.bpmn mode change 100644 => 100755 tests/data/hidden_required_field_pass_expression/hidden_required_field_pass_expression.bpmn mode change 100644 => 100755 tests/data/infinite_loop/infinite_loop.bpmn mode change 100644 => 100755 tests/data/invalid_expression/invalid_expression.bpmn mode change 100644 => 100755 tests/data/invalid_roles/invalid_roles.bpmn mode change 100644 => 100755 tests/data/invalid_script/invalid_script.bpmn mode change 100644 => 100755 tests/data/invalid_script2/invalid_script2.bpmn mode change 100644 => 100755 tests/data/invalid_script3/invalid_script3.bpmn mode change 100644 => 100755 tests/data/invalid_spec/invalid_spec.bpmn mode change 100644 => 100755 tests/data/irb_api_personnel/irb_api_personnel.bpmn mode change 100644 => 100755 tests/data/irb_info_script/irb_info_script.bpmn mode change 100644 => 100755 tests/data/ldap_lookup/ldap_lookup.bpmn mode change 100644 => 100755 tests/data/ldap_response.json mode change 100644 => 100755 tests/data/ldap_script/ldap_script.bpmn mode change 100644 => 100755 tests/data/looping_task/looping_task.bpmn mode change 100644 => 100755 tests/data/manual_task_with_external_documentation/Task_Manual_One.md mode change 100644 => 100755 tests/data/manual_task_with_external_documentation/manual_task_with_external_documentation.bpmn mode change 100644 => 100755 tests/data/message_event/message_event.bpmn mode change 100644 => 100755 tests/data/missing_form_key/missing_form_key.bpmn mode change 100644 => 100755 tests/data/multi_instance/multi_instance.bpmn mode change 100644 => 100755 tests/data/multi_instance_parallel/multi_instance_parallel.bpmn mode change 100644 => 100755 tests/data/nav_order/nav_order.bpmn mode change 100644 => 100755 tests/data/parallel_tasks/parallel_tasks.bpmn mode change 100644 => 100755 tests/data/pb_responses/check_study.json mode change 100644 => 100755 tests/data/pb_responses/investigators.json mode change 100644 => 100755 tests/data/pb_responses/irb_info.json mode change 100644 => 100755 tests/data/pb_responses/required_docs.json mode change 100644 => 100755 tests/data/pb_responses/sponsors.json mode change 100644 => 100755 tests/data/pb_responses/study_details.json mode change 100644 => 100755 tests/data/pb_responses/study_details_bad_review_type.json mode change 100644 => 100755 tests/data/pb_responses/user_studies.json mode change 100644 => 100755 tests/data/random_fact/random_fact.bpmn mode change 100644 => 100755 tests/data/random_fact/random_fact2.bpmn mode change 100644 => 100755 tests/data/read_only_field/read_only_field.bpmn mode change 100644 => 100755 tests/data/repeat_form/repeat_form.bpmn mode change 100644 => 100755 tests/data/required_fields/required_fields.bpmn mode change 100644 => 100755 tests/data/reset_workflow/reset_workflow.bpmn mode change 100644 => 100755 tests/data/roles/roles.bpmn mode change 100644 => 100755 tests/data/script_with_name_error/script_with_name_error.bpmn mode change 100644 => 100755 tests/data/study_cancellations/study_cancellations.bpmn mode change 100644 => 100755 tests/data/study_details/study_details.bpmn mode change 100644 => 100755 tests/data/study_info_script/study_info_script.bpmn mode change 100644 => 100755 tests/data/study_sponsors/study_sponsors.bpmn mode change 100644 => 100755 tests/data/study_sponsors_associate/study_sponsors_associate.bpmn mode change 100644 => 100755 tests/data/study_sponsors_associate_fail/study_sponsors_associate_fail.bpmn mode change 100644 => 100755 tests/data/study_sponsors_associate_switch_user/study_sponsors_associate_switch_user.bpmn mode change 100644 => 100755 tests/data/study_sponsors_associates_delete/study_sponsors_associates_delete.bpmn mode change 100644 => 100755 tests/data/study_sponsors_data_store/study_sponsors_data_store.bpmn mode change 100644 => 100755 tests/data/subprocess/subprocess.bpmn mode change 100644 => 100755 tests/data/table.docx mode change 100644 => 100755 tests/data/test_value_expression/test_value_expression.bpmn mode change 100644 => 100755 tests/data/timer_event/timer_event.bpmn mode change 100644 => 100755 tests/data/timer_event_error/timer_event_error.bpmn mode change 100644 => 100755 tests/data/top_level_workflow/data_security_plan.dmn mode change 100644 => 100755 tests/data/top_level_workflow/enter_core_info.dmn mode change 100644 => 100755 tests/data/top_level_workflow/sponsor_funding_source.dmn mode change 100644 => 100755 tests/data/top_level_workflow/top_level_workflow.bpmn mode change 100644 => 100755 tests/data/two_forms/modified/two_forms_struc_mod.bpmn mode change 100644 => 100755 tests/data/two_forms/modified/two_forms_text_mod.bpmn mode change 100644 => 100755 tests/data/two_forms/two_forms.bpmn mode change 100644 => 100755 tests/data/two_user_tasks/two_user_tasks.bpmn mode change 100644 => 100755 tests/data/verify_end_event/verify_end_event.bpmn mode change 100644 => 100755 tests/data/workflow_form_field_name/workflow_form_field_name.bpmn mode change 100644 => 100755 tests/data/workflow_form_field_type/workflow_form_field_type.bpmn mode change 100644 => 100755 tests/data/workflow_sync_responses/random_fact2.bpmn mode change 100644 => 100755 tests/data/workflow_sync_responses/test.txt mode change 100644 => 100755 tests/emails/__init__.py mode change 100644 => 100755 tests/emails/test_email_script.py mode change 100644 => 100755 tests/emails/test_email_service.py mode change 100644 => 100755 tests/files/__init__.py mode change 100644 => 100755 tests/files/test_file_service.py mode change 100644 => 100755 tests/files/test_files_api.py mode change 100644 => 100755 tests/ldap/__init__.py mode change 100644 => 100755 tests/ldap/test_ldap_lookup_script.py mode change 100644 => 100755 tests/scripts/__init__.py mode change 100644 => 100755 tests/scripts/test_check_study.py mode change 100644 => 100755 tests/scripts/test_get_study_associate_validation.py mode change 100644 => 100755 tests/study/__init__.py mode change 100644 => 100755 tests/study/test_get_study_from_model.py mode change 100644 => 100755 tests/study/test_study_actions_status.py mode change 100644 => 100755 tests/study/test_study_api.py mode change 100644 => 100755 tests/study/test_study_associate_script.py mode change 100644 => 100755 tests/study/test_study_cancellations.py mode change 100644 => 100755 tests/study/test_study_data_store_script.py mode change 100644 => 100755 tests/study/test_study_details.py mode change 100644 => 100755 tests/study/test_study_details_documents.py mode change 100644 => 100755 tests/study/test_study_service.py mode change 100644 => 100755 tests/study/test_study_sponsors_script.py mode change 100644 => 100755 tests/study/test_study_status_message.py mode change 100644 => 100755 tests/study/test_update_study_script.py mode change 100644 => 100755 tests/test_authentication.py mode change 100644 => 100755 tests/test_auto_set_primary_bpmn.py mode change 100644 => 100755 tests/test_complete_template_script.py mode change 100644 => 100755 tests/test_datastore_api.py mode change 100644 => 100755 tests/test_decision_table_dictionary_output.py mode change 100644 => 100755 tests/test_document_directories.py mode change 100644 => 100755 tests/test_email_script.py mode change 100644 => 100755 tests/test_events.py mode change 100644 => 100755 tests/test_file_datastore.py mode change 100644 => 100755 tests/test_get_dashboard_url_script.py mode change 100644 => 100755 tests/test_irb_info_script.py mode change 100644 => 100755 tests/test_is_file_uploaded_script.py mode change 100644 => 100755 tests/test_launch_workflow_outside_study.py mode change 100644 => 100755 tests/test_ldap_service.py mode change 100644 => 100755 tests/test_lookup_service.py mode change 100644 => 100755 tests/test_looping_task.py mode change 100644 => 100755 tests/test_message_event.py mode change 100644 => 100755 tests/test_multi_instance_tasks_api.py mode change 100644 => 100755 tests/test_protocol_builder.py mode change 100644 => 100755 tests/test_study_info_script.py mode change 100644 => 100755 tests/test_tasks_api.py mode change 100644 => 100755 tests/test_tools_api.py mode change 100644 => 100755 tests/test_user_in_logs.py mode change 100644 => 100755 tests/test_user_roles.py mode change 100644 => 100755 tests/test_verify_end_event.py mode change 100644 => 100755 tests/test_wait_event.py mode change 100644 => 100755 tests/test_workflow_api.py mode change 100644 => 100755 tests/test_workflow_sync.py mode change 100644 => 100755 tests/workflow/__init__.py mode change 100644 => 100755 tests/workflow/test_duplicate_workflow_spec_file.py mode change 100644 => 100755 tests/workflow/test_workflow_boolean_default.py mode change 100644 => 100755 tests/workflow/test_workflow_customer_error.py mode change 100644 => 100755 tests/workflow/test_workflow_delete_irb_document.py mode change 100644 => 100755 tests/workflow/test_workflow_enum_default_value_expression.py mode change 100644 => 100755 tests/workflow/test_workflow_enum_empty_list.py mode change 100644 => 100755 tests/workflow/test_workflow_form_field_name.py mode change 100644 => 100755 tests/workflow/test_workflow_form_field_type.py mode change 100644 => 100755 tests/workflow/test_workflow_hidden_required_field.py mode change 100644 => 100755 tests/workflow/test_workflow_infinite_loop.py mode change 100644 => 100755 tests/workflow/test_workflow_missing_form_key.py mode change 100644 => 100755 tests/workflow/test_workflow_name_error_hint.py mode change 100644 => 100755 tests/workflow/test_workflow_processor.py mode change 100644 => 100755 tests/workflow/test_workflow_processor_multi_instance.py mode change 100644 => 100755 tests/workflow/test_workflow_read_only_field.py mode change 100644 => 100755 tests/workflow/test_workflow_reset.py mode change 100644 => 100755 tests/workflow/test_workflow_restart.py mode change 100644 => 100755 tests/workflow/test_workflow_service.py mode change 100644 => 100755 tests/workflow/test_workflow_spec_api.py mode change 100644 => 100755 tests/workflow/test_workflow_spec_validation_api.py mode change 100644 => 100755 tests/workflow/test_workflow_value_expression.py mode change 100644 => 100755 wsgi.py diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index ee558d50..92974e1a --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ local.properties .settings/ .loadpath .recommenders - +.vscode/ # External tool builders .externalToolBuilders/ diff --git a/.sonarcloud.properties b/.sonarcloud.properties old mode 100644 new mode 100755 diff --git a/.travis.yml b/.travis.yml old mode 100644 new mode 100755 diff --git a/Dockerfile b/Dockerfile old mode 100644 new mode 100755 diff --git a/LICENSE.md b/LICENSE.md old mode 100644 new mode 100755 diff --git a/Pipfile b/Pipfile old mode 100644 new mode 100755 diff --git a/Pipfile.lock b/Pipfile.lock old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/config/default.py b/config/default.py old mode 100644 new mode 100755 diff --git a/config/logging_example.py b/config/logging_example.py old mode 100644 new mode 100755 diff --git a/config/testing.py b/config/testing.py old mode 100644 new mode 100755 diff --git a/crc/__init__.py b/crc/__init__.py old mode 100644 new mode 100755 diff --git a/crc/api.yml b/crc/api.yml old mode 100644 new mode 100755 index 24fb0cda..38388de5 --- a/crc/api.yml +++ b/crc/api.yml @@ -399,22 +399,24 @@ paths: - name: study_id in: path required: true - description: The id of the study for which workflows should be returned. + description: The id of the study for which associates should be returned. schema: type: integer format: int32 get: operationId: crc.api.study.get_study_associates - summary: Provides a single study + summary: Provides a list of associates for a particular study tags: - Studies responses: '200': - description: An Study Associate Object + description: list of Study Associate Objects content: application/json: schema: - $ref: "#/components/schemas/StudyAssociate" + type: array + items: + $ref: "#/components/schemas/StudyAssociate" /workflow-specification: get: @@ -1589,39 +1591,15 @@ components: example: "27b-6-1212" StudyAssociate: properties: - id: - type: integer - example: 1234 - title: + uid: type: string - example: The impact of fried pickles on beer consumption in bipedal software developers. - last_updated: + example: "dhf8r" + access: + type: boolean + example: False + role: type: string - format: date_time - example: "2019-12-25T09:12:33.001Z" - primary_investigator_id: - type: string - x-nullable: true - example: dhf8r - user_uid: - type: string - example: dhf8r - status: - type: string - enum: ['in_progress', 'hold', 'open_for_enrollment', 'abandoned'] - example: done - sponsor: - type: string - x-nullable: true - example: "Sartography Pharmaceuticals" - ind_number: - type: string - x-nullable: true - example: "27b-6-42" - hsr_number: - type: string - x-nullable: true - example: "27b-6-1212" + example: "TODO" DocumentDirectory: properties: level: diff --git a/crc/api/__init__.py b/crc/api/__init__.py old mode 100644 new mode 100755 diff --git a/crc/api/admin.py b/crc/api/admin.py old mode 100644 new mode 100755 diff --git a/crc/api/common.py b/crc/api/common.py old mode 100644 new mode 100755 diff --git a/crc/api/data_store.py b/crc/api/data_store.py old mode 100644 new mode 100755 diff --git a/crc/api/document.py b/crc/api/document.py old mode 100644 new mode 100755 diff --git a/crc/api/file.py b/crc/api/file.py old mode 100644 new mode 100755 diff --git a/crc/api/study.py b/crc/api/study.py old mode 100644 new mode 100755 diff --git a/crc/api/tools.py b/crc/api/tools.py old mode 100644 new mode 100755 diff --git a/crc/api/user.py b/crc/api/user.py old mode 100644 new mode 100755 diff --git a/crc/api/workflow.py b/crc/api/workflow.py old mode 100644 new mode 100755 diff --git a/crc/api/workflow_sync.py b/crc/api/workflow_sync.py old mode 100644 new mode 100755 diff --git a/crc/models/__init__.py b/crc/models/__init__.py old mode 100644 new mode 100755 diff --git a/crc/models/api_models.py b/crc/models/api_models.py old mode 100644 new mode 100755 diff --git a/crc/models/data_store.py b/crc/models/data_store.py old mode 100644 new mode 100755 diff --git a/crc/models/email.py b/crc/models/email.py old mode 100644 new mode 100755 diff --git a/crc/models/file.py b/crc/models/file.py old mode 100644 new mode 100755 diff --git a/crc/models/ldap.py b/crc/models/ldap.py old mode 100644 new mode 100755 diff --git a/crc/models/protocol_builder.py b/crc/models/protocol_builder.py old mode 100644 new mode 100755 diff --git a/crc/models/study.py b/crc/models/study.py old mode 100644 new mode 100755 index 69da16fe..155ac7a4 --- a/crc/models/study.py +++ b/crc/models/study.py @@ -79,6 +79,7 @@ class StudyAssociated(db.Model): role = db.Column(db.String, nullable=True) send_email = db.Column(db.Boolean, nullable=True) access = db.Column(db.Boolean, nullable=True) + class StudyAssociatedSchema(ma.Schema): class Meta: model = StudyAssociated diff --git a/crc/models/task_event.py b/crc/models/task_event.py old mode 100644 new mode 100755 diff --git a/crc/models/user.py b/crc/models/user.py old mode 100644 new mode 100755 diff --git a/crc/models/workflow.py b/crc/models/workflow.py old mode 100644 new mode 100755 diff --git a/crc/scripts/__init__.py b/crc/scripts/__init__.py old mode 100644 new mode 100755 diff --git a/crc/scripts/check_study.py b/crc/scripts/check_study.py old mode 100644 new mode 100755 diff --git a/crc/scripts/complete_template.py b/crc/scripts/complete_template.py old mode 100644 new mode 100755 diff --git a/crc/scripts/delete_file.py b/crc/scripts/delete_file.py old mode 100644 new mode 100755 diff --git a/crc/scripts/email.py b/crc/scripts/email.py old mode 100644 new mode 100755 diff --git a/crc/scripts/fact_service.py b/crc/scripts/fact_service.py old mode 100644 new mode 100755 diff --git a/crc/scripts/failing_script.py b/crc/scripts/failing_script.py old mode 100644 new mode 100755 diff --git a/crc/scripts/file_data_get.py b/crc/scripts/file_data_get.py old mode 100644 new mode 100755 diff --git a/crc/scripts/file_data_set.py b/crc/scripts/file_data_set.py old mode 100644 new mode 100755 diff --git a/crc/scripts/get_dashboard_url.py b/crc/scripts/get_dashboard_url.py old mode 100644 new mode 100755 diff --git a/crc/scripts/get_irb_info.py b/crc/scripts/get_irb_info.py old mode 100644 new mode 100755 diff --git a/crc/scripts/get_study_associate.py b/crc/scripts/get_study_associate.py old mode 100644 new mode 100755 diff --git a/crc/scripts/get_study_associates.py b/crc/scripts/get_study_associates.py old mode 100644 new mode 100755 diff --git a/crc/scripts/is_file_uploaded.py b/crc/scripts/is_file_uploaded.py old mode 100644 new mode 100755 diff --git a/crc/scripts/ldap.py b/crc/scripts/ldap.py old mode 100644 new mode 100755 diff --git a/crc/scripts/reset_workflow.py b/crc/scripts/reset_workflow.py old mode 100644 new mode 100755 diff --git a/crc/scripts/script.py b/crc/scripts/script.py old mode 100644 new mode 100755 diff --git a/crc/scripts/study_data_get.py b/crc/scripts/study_data_get.py old mode 100644 new mode 100755 diff --git a/crc/scripts/study_data_set.py b/crc/scripts/study_data_set.py old mode 100644 new mode 100755 diff --git a/crc/scripts/study_info.py b/crc/scripts/study_info.py old mode 100644 new mode 100755 diff --git a/crc/scripts/update_study.py b/crc/scripts/update_study.py old mode 100644 new mode 100755 diff --git a/crc/scripts/update_study_associate.py b/crc/scripts/update_study_associate.py old mode 100644 new mode 100755 diff --git a/crc/scripts/update_study_associates.py b/crc/scripts/update_study_associates.py old mode 100644 new mode 100755 diff --git a/crc/scripts/user_data_get.py b/crc/scripts/user_data_get.py old mode 100644 new mode 100755 diff --git a/crc/scripts/user_data_set.py b/crc/scripts/user_data_set.py old mode 100644 new mode 100755 diff --git a/crc/services/__init__.py b/crc/services/__init__.py old mode 100644 new mode 100755 diff --git a/crc/services/cache_service.py b/crc/services/cache_service.py old mode 100644 new mode 100755 diff --git a/crc/services/data_store_service.py b/crc/services/data_store_service.py old mode 100644 new mode 100755 diff --git a/crc/services/document_service.py b/crc/services/document_service.py old mode 100644 new mode 100755 diff --git a/crc/services/email_service.py b/crc/services/email_service.py old mode 100644 new mode 100755 diff --git a/crc/services/error_service.py b/crc/services/error_service.py old mode 100644 new mode 100755 diff --git a/crc/services/failing_service.py b/crc/services/failing_service.py old mode 100644 new mode 100755 diff --git a/crc/services/file_service.py b/crc/services/file_service.py old mode 100644 new mode 100755 diff --git a/crc/services/ldap_service.py b/crc/services/ldap_service.py old mode 100644 new mode 100755 diff --git a/crc/services/lookup_service.py b/crc/services/lookup_service.py old mode 100644 new mode 100755 diff --git a/crc/services/protocol_builder.py b/crc/services/protocol_builder.py old mode 100644 new mode 100755 diff --git a/crc/services/study_service.py b/crc/services/study_service.py old mode 100644 new mode 100755 index 5b8d12ea..90b52368 --- a/crc/services/study_service.py +++ b/crc/services/study_service.py @@ -24,6 +24,7 @@ from crc.models.task_event import TaskEventModel, TaskEvent from crc.models.workflow import WorkflowSpecCategoryModel, WorkflowModel, WorkflowSpecModel, WorkflowState, \ WorkflowStatus, WorkflowSpecDependencyFile from crc.services.document_service import DocumentService + from crc.services.file_service import FileService from crc.services.ldap_service import LdapService from crc.services.lookup_service import LookupService @@ -122,14 +123,18 @@ class StudyService(object): raise ApiError('uid not specified','A valid uva uid is required for this function') if uid == study.user_uid: - return {'uid': ownerid, 'role': 'owner', 'send_email': True, 'access': True} + return {'uid': uid, 'role': 'owner', 'send_email': True, 'access': True} person = db.session.query(StudyAssociated).filter((StudyAssociated.study_id == study_id)&( StudyAssociated.uid == uid)).first() if person: - return StudyAssociatedSchema().dump(person) + newAssociate = {'uid': person.uid} + newAssociate['role'] = person.role + newAssociate['send_email'] = person.send_email + newAssociate['access'] = person.access + return newAssociate raise ApiError('uid_not_associated_with_study',"user id %s was not associated with study number %d"%(uid, study_id)) @@ -148,7 +153,12 @@ class StudyService(object): people = db.session.query(StudyAssociated).filter(StudyAssociated.study_id == study_id) people_list = [{'uid':ownerid,'role':'owner','send_email':True,'access':True}] - people_list += StudyAssociatedSchema().dump(people, many=True) + for person in people: + newAssociate = {'uid':person.uid} + newAssociate['role'] = person.role + newAssociate['send_email'] = person.send_email + newAssociate['access'] = person.access + people_list.append(newAssociate) return people_list @@ -227,6 +237,7 @@ class StudyService(object): for workflow in session.query(WorkflowModel).filter_by(study_id=study_id): StudyService.delete_workflow(workflow.id) study = session.query(StudyModel).filter_by(id=study_id).first() + study = session.query(StudyModel).filter_by(id=study_id).first() session.delete(study) session.commit() @@ -382,7 +393,6 @@ class StudyService(object): in sync with the studies available in protocol builder. """ if ProtocolBuilderService.is_enabled(): - app.logger.info("The Protocol Builder is enabled. app.config['PB_ENABLED'] = " + str(app.config['PB_ENABLED'])) @@ -398,10 +408,11 @@ class StudyService(object): for pb_study in pb_studies: new_status = None db_study = next((s for s in db_studies if s.id == pb_study.STUDYID), None) - if not db_study: + if not db_study: # Create a Study db_study = StudyModel(id=pb_study.STUDYID) db_study.status = None # Force a new sa new_status = StudyStatus.in_progress + session.add(db_study) db_studies.append(db_study) diff --git a/crc/services/user_service.py b/crc/services/user_service.py old mode 100644 new mode 100755 diff --git a/crc/services/workflow_processor.py b/crc/services/workflow_processor.py old mode 100644 new mode 100755 diff --git a/crc/services/workflow_service.py b/crc/services/workflow_service.py old mode 100644 new mode 100755 index 31e26c28..44077fe7 --- a/crc/services/workflow_service.py +++ b/crc/services/workflow_service.py @@ -765,7 +765,7 @@ class WorkflowService(object): else: if not hasattr(spiff_task.task_spec, 'lane') or spiff_task.task_spec.lane is None: associated = StudyService.get_study_associates(processor.workflow_model.study.id) - return [user['uid'] for user in associated if user['access']] + return [user['uid'] for user in associated if user.get("access")] if spiff_task.task_spec.lane not in spiff_task.data: return [] # No users are assignable to the task at this moment lane_users = spiff_task.data[spiff_task.task_spec.lane] @@ -775,7 +775,7 @@ class WorkflowService(object): lane_uids = [] for user in lane_users: if isinstance(user, dict): - if 'value' in user and user['value'] is not None: + if user.get("value"): lane_uids.append(user['value']) else: raise ApiError.from_task(code="task_lane_user_error", message="Spiff Task %s lane user dict must have a key called 'value' with the user's uid in it." % diff --git a/crc/services/workflow_sync.py b/crc/services/workflow_sync.py old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/abandoned/abandoned.bpmn b/crc/static/bpmn/abandoned/abandoned.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/core_info/SponsorList.xls b/crc/static/bpmn/core_info/SponsorList.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/core_info/core_info.bpmn b/crc/static/bpmn/core_info/core_info.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/core_info/decision_core_info_multi_site_q12.dmn b/crc/static/bpmn/core_info/decision_core_info_multi_site_q12.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/core_info/decision_core_info_multi_site_q14.dmn b/crc/static/bpmn/core_info/decision_core_info_multi_site_q14.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/core_info/decision_core_info_multi_site_q28.dmn b/crc/static/bpmn/core_info/decision_core_info_multi_site_q28.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/data_security_plan/HIPAA_Ids.xls b/crc/static/bpmn/data_security_plan/HIPAA_Ids.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/data_security_plan/NEW_DSP_template.docx b/crc/static/bpmn/data_security_plan/NEW_DSP_template.docx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/data_security_plan/UVA_ServersWebsitesList.xls b/crc/static/bpmn/data_security_plan/UVA_ServersWebsitesList.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/data_security_plan/data_security_plan.bpmn b/crc/static/bpmn/data_security_plan/data_security_plan.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/department_chair_approval/decision_dept_chair.dmn b/crc/static/bpmn/department_chair_approval/decision_dept_chair.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/department_chair_approval/dept_chair_approval.bpmn b/crc/static/bpmn/department_chair_approval/dept_chair_approval.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/documents_approvals/documents_approvals.bpmn b/crc/static/bpmn/documents_approvals/documents_approvals.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/enrollment_date/enrollment_date.bpmn b/crc/static/bpmn/enrollment_date/enrollment_date.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/finance/finance.bpmn b/crc/static/bpmn/finance/finance.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/hold/hold.bpmn b/crc/static/bpmn/hold/hold.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ide_supplement/SponsorList.xls b/crc/static/bpmn/ide_supplement/SponsorList.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ide_supplement/decision_ide_check.dmn b/crc/static/bpmn/ide_supplement/decision_ide_check.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ide_supplement/ide_update.bpmn b/crc/static/bpmn/ide_supplement/ide_update.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ids_full_submission/ids_full_submission.bpmn b/crc/static/bpmn/ids_full_submission/ids_full_submission.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ids_full_submission/investigators_brochure.dmn b/crc/static/bpmn/ids_full_submission/investigators_brochure.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ids_full_submission/ivrs_iwrs_ixrs.dmn b/crc/static/bpmn/ids_full_submission/ivrs_iwrs_ixrs.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ids_full_submission/pharmacy_manual.dmn b/crc/static/bpmn/ids_full_submission/pharmacy_manual.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ids_waiver/ids_waiver.bpmn b/crc/static/bpmn/ids_waiver/ids_waiver.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ind_update/SponsorList.xls b/crc/static/bpmn/ind_update/SponsorList.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ind_update/decision_ind_check.dmn b/crc/static/bpmn/ind_update/decision_ind_check.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ind_update/decision_ind_uva_check.dmn b/crc/static/bpmn/ind_update/decision_ind_uva_check.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/ind_update/ind_update.bpmn b/crc/static/bpmn/ind_update/ind_update.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_details/irb_api_details.bpmn b/crc/static/bpmn/irb_api_details/irb_api_details.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/DepartmentList-ArtsSciences.xlsx b/crc/static/bpmn/irb_api_personnel/DepartmentList-ArtsSciences.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/DepartmentList-Education.xlsx b/crc/static/bpmn/irb_api_personnel/DepartmentList-Education.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/DepartmentList-Medicine.xlsx b/crc/static/bpmn/irb_api_personnel/DepartmentList-Medicine.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/SchoolList.xls b/crc/static/bpmn/irb_api_personnel/SchoolList.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/check_for_pi.dmn b/crc/static/bpmn/irb_api_personnel/check_for_pi.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/decision_dept_chair.dmn b/crc/static/bpmn/irb_api_personnel/decision_dept_chair.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/decision_pi_dept.dmn b/crc/static/bpmn/irb_api_personnel/decision_pi_dept.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/decision_pi_school.dmn b/crc/static/bpmn/irb_api_personnel/decision_pi_school.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/decision_ro.dmn b/crc/static/bpmn/irb_api_personnel/decision_ro.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/decision_ro_chair.dmn b/crc/static/bpmn/irb_api_personnel/decision_ro_chair.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/decision_ro_dept.dmn b/crc/static/bpmn/irb_api_personnel/decision_ro_dept.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/irb_api_personnel/irb_api_personnel.bpmn b/crc/static/bpmn/irb_api_personnel/irb_api_personnel.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/non_uva_approval/non_uva_approval.bpmn b/crc/static/bpmn/non_uva_approval/non_uva_approval.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/notifications/notifications.bpmn b/crc/static/bpmn/notifications/notifications.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/protocol/protocol.bpmn b/crc/static/bpmn/protocol/protocol.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/BuildingList.xls b/crc/static/bpmn/research_rampup/BuildingList.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/DepartmentList-Architecture.xlsx b/crc/static/bpmn/research_rampup/DepartmentList-Architecture.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/DepartmentList-ArtsSciences.xlsx b/crc/static/bpmn/research_rampup/DepartmentList-ArtsSciences.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/DepartmentList-Education.xlsx b/crc/static/bpmn/research_rampup/DepartmentList-Education.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/DepartmentList-Engineering.xlsx b/crc/static/bpmn/research_rampup/DepartmentList-Engineering.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/DepartmentList-Medicine.xlsx b/crc/static/bpmn/research_rampup/DepartmentList-Medicine.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/DepartmentList-ProvostOffice.xlsx b/crc/static/bpmn/research_rampup/DepartmentList-ProvostOffice.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/DepartmentList.xlsx b/crc/static/bpmn/research_rampup/DepartmentList.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/LabSpaces.xlsx b/crc/static/bpmn/research_rampup/LabSpaces.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/RTT_Approvers.dmn b/crc/static/bpmn/research_rampup/RTT_Approvers.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/ResearchRampUpPlan.docx b/crc/static/bpmn/research_rampup/ResearchRampUpPlan.docx old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/SchoolList.xls b/crc/static/bpmn/research_rampup/SchoolList.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/exclusive_area_monitors.dmn b/crc/static/bpmn/research_rampup/exclusive_area_monitors.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/research_rampup.bpmn b/crc/static/bpmn/research_rampup/research_rampup.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/research_rampup/shared_area_monitors.dmn b/crc/static/bpmn/research_rampup/shared_area_monitors.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/rrt_top_level_workflow/rrt_top_level_workflow.bpmn b/crc/static/bpmn/rrt_top_level_workflow/rrt_top_level_workflow.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/rsc_hire_committee/decision_support_lang.dmn b/crc/static/bpmn/rsc_hire_committee/decision_support_lang.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/rsc_hire_committee/rsc_hire_committee.bpmn b/crc/static/bpmn/rsc_hire_committee/rsc_hire_committee.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/rsc_hire_submission/rsc_hire_submission.bpmn b/crc/static/bpmn/rsc_hire_submission/rsc_hire_submission.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/sponsor_funding_source/SponsorList.xls b/crc/static/bpmn/sponsor_funding_source/SponsorList.xls old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/sponsor_funding_source/sponsor_funding_source.bpmn b/crc/static/bpmn/sponsor_funding_source/sponsor_funding_source.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/data_security_plan.dmn b/crc/static/bpmn/top_level_workflow/data_security_plan.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/enter_core_info.dmn b/crc/static/bpmn/top_level_workflow/enter_core_info.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/ide_supplement.dmn b/crc/static/bpmn/top_level_workflow/ide_supplement.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/ids_full_submission.dmn b/crc/static/bpmn/top_level_workflow/ids_full_submission.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/ids_waiver.dmn b/crc/static/bpmn/top_level_workflow/ids_waiver.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/ind_update.dmn b/crc/static/bpmn/top_level_workflow/ind_update.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/personnel.dmn b/crc/static/bpmn/top_level_workflow/personnel.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/sponsor_funding_source.dmn b/crc/static/bpmn/top_level_workflow/sponsor_funding_source.dmn old mode 100644 new mode 100755 diff --git a/crc/static/bpmn/top_level_workflow/top_level_workflow.bpmn b/crc/static/bpmn/top_level_workflow/top_level_workflow.bpmn old mode 100644 new mode 100755 diff --git a/crc/static/jinja_extensions.py b/crc/static/jinja_extensions.py old mode 100644 new mode 100755 diff --git a/crc/static/reference/investigators.xlsx b/crc/static/reference/investigators.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/reference/irb_documents.xlsx b/crc/static/reference/irb_documents.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/reference/rrt_documents.xlsx b/crc/static/reference/rrt_documents.xlsx old mode 100644 new mode 100755 diff --git a/crc/static/templates/placeholder.docx b/crc/static/templates/placeholder.docx old mode 100644 new mode 100755 diff --git a/crc/static/templates/placeholder.png b/crc/static/templates/placeholder.png old mode 100644 new mode 100755 diff --git a/crc/static/uva_rotunda.svg b/crc/static/uva_rotunda.svg old mode 100644 new mode 100755 diff --git a/crc/templates/mail_content_template.html b/crc/templates/mail_content_template.html old mode 100644 new mode 100755 diff --git a/crc/templates/mail_main_template.html b/crc/templates/mail_main_template.html old mode 100644 new mode 100755 diff --git a/crconnect.wsgi b/crconnect.wsgi old mode 100644 new mode 100755 diff --git a/deploy/requirements.txt b/deploy/requirements.txt old mode 100644 new mode 100755 diff --git a/docs/Makefile b/docs/Makefile old mode 100644 new mode 100755 diff --git a/docs/conf.py b/docs/conf.py old mode 100644 new mode 100755 diff --git a/docs/index.rst b/docs/index.rst old mode 100644 new mode 100755 diff --git a/docs/make.bat b/docs/make.bat old mode 100644 new mode 100755 diff --git a/docs/protocol_builder.html b/docs/protocol_builder.html old mode 100644 new mode 100755 diff --git a/example_data.py b/example_data.py old mode 100644 new mode 100755 diff --git a/fact_runner.py b/fact_runner.py old mode 100644 new mode 100755 diff --git a/migrations/README b/migrations/README old mode 100644 new mode 100755 diff --git a/migrations/alembic.ini b/migrations/alembic.ini old mode 100644 new mode 100755 diff --git a/migrations/env.py b/migrations/env.py old mode 100644 new mode 100755 diff --git a/migrations/script.py.mako b/migrations/script.py.mako old mode 100644 new mode 100755 diff --git a/migrations/versions/0718ad13e5f3_.py b/migrations/versions/0718ad13e5f3_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/0f38d7a36f21_.py b/migrations/versions/0f38d7a36f21_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/13424d5a6de8_.py b/migrations/versions/13424d5a6de8_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/1685be1cc232_.py b/migrations/versions/1685be1cc232_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/17597692d0b0_.py b/migrations/versions/17597692d0b0_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/1c3f88dbccc3_.py b/migrations/versions/1c3f88dbccc3_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/1fdd1bdb600e_.py b/migrations/versions/1fdd1bdb600e_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/23c62c933848_.py b/migrations/versions/23c62c933848_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/2e7b377cbc7b_.py b/migrations/versions/2e7b377cbc7b_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/30e017a03948_.py b/migrations/versions/30e017a03948_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/476f8a4933ba_.py b/migrations/versions/476f8a4933ba_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/5064b72284b7_.py b/migrations/versions/5064b72284b7_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/55c6cd407d89_.py b/migrations/versions/55c6cd407d89_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/5acd138e969c_.py b/migrations/versions/5acd138e969c_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/5e0709e172fa_.py b/migrations/versions/5e0709e172fa_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/5f06108116ae_.py b/migrations/versions/5f06108116ae_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/62910318009f_.py b/migrations/versions/62910318009f_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/65f3fce6031a_.py b/migrations/versions/65f3fce6031a_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/665624ac29f1_.py b/migrations/versions/665624ac29f1_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/69081f1ff387_.py b/migrations/versions/69081f1ff387_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/7be7cecbeea8_.py b/migrations/versions/7be7cecbeea8_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/7c0de7621a1f_.py b/migrations/versions/7c0de7621a1f_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/87af86338630_.py b/migrations/versions/87af86338630_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/8856126b6658_.py b/migrations/versions/8856126b6658_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/8b976945a54e_.py b/migrations/versions/8b976945a54e_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/90dd63672e0a_.py b/migrations/versions/90dd63672e0a_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/9b43e725f39c_.py b/migrations/versions/9b43e725f39c_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/ab06a94e5d4c_.py b/migrations/versions/ab06a94e5d4c_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/abeffe547305_update_type_on_task_events_table.py b/migrations/versions/abeffe547305_update_type_on_task_events_table.py old mode 100644 new mode 100755 diff --git a/migrations/versions/afecb64d2e66_.py b/migrations/versions/afecb64d2e66_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/bbf064082623_.py b/migrations/versions/bbf064082623_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/bec71f7dc652_.py b/migrations/versions/bec71f7dc652_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/c1449d1d1681_.py b/migrations/versions/c1449d1d1681_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/c16d3047abbe_.py b/migrations/versions/c16d3047abbe_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/c4ddb69e7ef4_.py b/migrations/versions/c4ddb69e7ef4_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/c6261ac7a7bc_.py b/migrations/versions/c6261ac7a7bc_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/c872232ebdcb_.py b/migrations/versions/c872232ebdcb_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/cb892916166a_.py b/migrations/versions/cb892916166a_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/cc4bccc5e5a8_.py b/migrations/versions/cc4bccc5e5a8_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/dc30b8f6571c_merge_30e017a03948_and_c16d3047abbe.py b/migrations/versions/dc30b8f6571c_merge_30e017a03948_and_c16d3047abbe.py old mode 100644 new mode 100755 diff --git a/migrations/versions/ddd5fc9ea75b_.py b/migrations/versions/ddd5fc9ea75b_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/de30304ff5e6_.py b/migrations/versions/de30304ff5e6_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/e0dfdbfd6f69_add_columns.py b/migrations/versions/e0dfdbfd6f69_add_columns.py old mode 100644 new mode 100755 diff --git a/migrations/versions/f186725c1ad3_.py b/migrations/versions/f186725c1ad3_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/f28ee3722c49_.py b/migrations/versions/f28ee3722c49_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/ff29528a9909_.py b/migrations/versions/ff29528a9909_.py old mode 100644 new mode 100755 diff --git a/migrations/versions/ffef4661a37d_.py b/migrations/versions/ffef4661a37d_.py old mode 100644 new mode 100755 diff --git a/package-lock.json b/package-lock.json old mode 100644 new mode 100755 diff --git a/postgres/docker-compose.yml b/postgres/docker-compose.yml old mode 100644 new mode 100755 diff --git a/postgres/docker-windows-compose.yml b/postgres/docker-windows-compose.yml old mode 100644 new mode 100755 diff --git a/postgres/package-lock.json b/postgres/package-lock.json old mode 100644 new mode 100755 diff --git a/postgres/pg-init-scripts/initdb.sh b/postgres/pg-init-scripts/initdb.sh old mode 100644 new mode 100755 diff --git a/readme_images/new_project.png b/readme_images/new_project.png old mode 100644 new mode 100755 diff --git a/readme_images/run.png b/readme_images/run.png old mode 100644 new mode 100755 diff --git a/readme_images/run_config.png b/readme_images/run_config.png old mode 100644 new mode 100755 diff --git a/readme_images/settings.png b/readme_images/settings.png old mode 100644 new mode 100755 diff --git a/run.py b/run.py old mode 100644 new mode 100755 diff --git a/schema/__init__.py b/schema/__init__.py old mode 100644 new mode 100755 diff --git a/setup.cfg b/setup.cfg old mode 100644 new mode 100755 diff --git a/setup.py b/setup.py old mode 100644 new mode 100755 diff --git a/tests/__init__.py b/tests/__init__.py old mode 100644 new mode 100755 diff --git a/tests/base_test.py b/tests/base_test.py old mode 100644 new mode 100755 diff --git a/tests/data/add_delete_irb_document/add_delete_irb_document.bpmn b/tests/data/add_delete_irb_document/add_delete_irb_document.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/associated_email/associated_email.bpmn b/tests/data/associated_email/associated_email.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/boolean_default_value/boolean_default_value.bpmn b/tests/data/boolean_default_value/boolean_default_value.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/check_study_script/check_study_script.bpmn b/tests/data/check_study_script/check_study_script.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/decision_table/decision_table.bpmn b/tests/data/decision_table/decision_table.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/decision_table/message_to_ginger.dmn b/tests/data/decision_table/message_to_ginger.dmn old mode 100644 new mode 100755 diff --git a/tests/data/decision_table_dictionary_output/decision_table_dictionary_output.bpmn b/tests/data/decision_table_dictionary_output/decision_table_dictionary_output.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/decision_table_dictionary_output/decision_table_dictionary_output.dmn b/tests/data/decision_table_dictionary_output/decision_table_dictionary_output.dmn old mode 100644 new mode 100755 diff --git a/tests/data/decision_table_invalid/bad_dmn.dmn b/tests/data/decision_table_invalid/bad_dmn.dmn old mode 100644 new mode 100755 diff --git a/tests/data/decision_table_invalid/decision_table_invalid.bpmn b/tests/data/decision_table_invalid/decision_table_invalid.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/docx/Letter.docx b/tests/data/docx/Letter.docx old mode 100644 new mode 100755 diff --git a/tests/data/docx/docx.bpmn b/tests/data/docx/docx.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/email/email.bpmn b/tests/data/email/email.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/email_dashboard_url/email_dashboard_url.bpmn b/tests/data/email_dashboard_url/email_dashboard_url.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/email_script/email_script.bpmn b/tests/data/email_script/email_script.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/empty_workflow/empty_workflow.bpmn b/tests/data/empty_workflow/empty_workflow.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_empty_list/empty_spreadsheet.xlsx b/tests/data/enum_empty_list/empty_spreadsheet.xlsx old mode 100644 new mode 100755 diff --git a/tests/data/enum_empty_list/enum_empty_list.bpmn b/tests/data/enum_empty_list/enum_empty_list.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_competing_files/animals.xlsx b/tests/data/enum_options_competing_files/animals.xlsx old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_competing_files/enum_options_competing_files.bpmn b/tests/data/enum_options_competing_files/enum_options_competing_files.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_competing_files/fruits.xlsx b/tests/data/enum_options_competing_files/fruits.xlsx old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_from_file/customer_list.xlsx b/tests/data/enum_options_from_file/customer_list.xlsx old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_from_file/enum_options_from_file.bpmn b/tests/data/enum_options_from_file/enum_options_from_file.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_from_task_data/enum_options_from_task_data.bpmn b/tests/data/enum_options_from_task_data/enum_options_from_task_data.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_with_search/enum_options_with_search.bpmn b/tests/data/enum_options_with_search/enum_options_with_search.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_with_search/sponsors.xlsx b/tests/data/enum_options_with_search/sponsors.xlsx old mode 100644 new mode 100755 diff --git a/tests/data/enum_options_with_search/sponsors_modified.xlsx b/tests/data/enum_options_with_search/sponsors_modified.xlsx old mode 100644 new mode 100755 diff --git a/tests/data/enum_results/enum_results.bpmn b/tests/data/enum_results/enum_results.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_value_expression/Decision_Value_Expression.dmn b/tests/data/enum_value_expression/Decision_Value_Expression.dmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_value_expression/enum_value_expression.bpmn b/tests/data/enum_value_expression/enum_value_expression.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_value_expression_fail/Decision_Value_Expression.dmn b/tests/data/enum_value_expression_fail/Decision_Value_Expression.dmn old mode 100644 new mode 100755 diff --git a/tests/data/enum_value_expression_fail/enum_value_expression_fail.bpmn b/tests/data/enum_value_expression_fail/enum_value_expression_fail.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/exclusive_gateway/exclusive_gateway.bpmn b/tests/data/exclusive_gateway/exclusive_gateway.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/exclusive_gateway_2/exclusive_gateway_2.bpmn b/tests/data/exclusive_gateway_2/exclusive_gateway_2.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/extension_error/extension_error.bpmn b/tests/data/extension_error/extension_error.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/failing_gateway_workflow/failing_gateway_workflow.bpmn b/tests/data/failing_gateway_workflow/failing_gateway_workflow.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/failing_workflow/failing_workflow.bpmn b/tests/data/failing_workflow/failing_workflow.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/file_data_store/file_data_store.bpmn b/tests/data/file_data_store/file_data_store.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/file_upload_form/file_upload_form.bpmn b/tests/data/file_upload_form/file_upload_form.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/file_upload_form_single/file_upload_form_single.bpmn b/tests/data/file_upload_form_single/file_upload_form_single.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/form_expressions/form_expressions.bpmn b/tests/data/form_expressions/form_expressions.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/get_study_associate/get_study_associate.bpmn b/tests/data/get_study_associate/get_study_associate.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/hello_world/hello_world.bpmn b/tests/data/hello_world/hello_world.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/hidden_required_field/hidden_required_field.bpmn b/tests/data/hidden_required_field/hidden_required_field.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/hidden_required_field_pass/hidden_required_field_pass.bpmn b/tests/data/hidden_required_field_pass/hidden_required_field_pass.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/hidden_required_field_pass_expression/hidden_required_field_pass_expression.bpmn b/tests/data/hidden_required_field_pass_expression/hidden_required_field_pass_expression.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/infinite_loop/infinite_loop.bpmn b/tests/data/infinite_loop/infinite_loop.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/invalid_expression/invalid_expression.bpmn b/tests/data/invalid_expression/invalid_expression.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/invalid_roles/invalid_roles.bpmn b/tests/data/invalid_roles/invalid_roles.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/invalid_script/invalid_script.bpmn b/tests/data/invalid_script/invalid_script.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/invalid_script2/invalid_script2.bpmn b/tests/data/invalid_script2/invalid_script2.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/invalid_script3/invalid_script3.bpmn b/tests/data/invalid_script3/invalid_script3.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/invalid_spec/invalid_spec.bpmn b/tests/data/invalid_spec/invalid_spec.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/irb_api_personnel/irb_api_personnel.bpmn b/tests/data/irb_api_personnel/irb_api_personnel.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/irb_info_script/irb_info_script.bpmn b/tests/data/irb_info_script/irb_info_script.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/ldap_lookup/ldap_lookup.bpmn b/tests/data/ldap_lookup/ldap_lookup.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/ldap_response.json b/tests/data/ldap_response.json old mode 100644 new mode 100755 diff --git a/tests/data/ldap_script/ldap_script.bpmn b/tests/data/ldap_script/ldap_script.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/looping_task/looping_task.bpmn b/tests/data/looping_task/looping_task.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/manual_task_with_external_documentation/Task_Manual_One.md b/tests/data/manual_task_with_external_documentation/Task_Manual_One.md old mode 100644 new mode 100755 diff --git a/tests/data/manual_task_with_external_documentation/manual_task_with_external_documentation.bpmn b/tests/data/manual_task_with_external_documentation/manual_task_with_external_documentation.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/message_event/message_event.bpmn b/tests/data/message_event/message_event.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/missing_form_key/missing_form_key.bpmn b/tests/data/missing_form_key/missing_form_key.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/multi_instance/multi_instance.bpmn b/tests/data/multi_instance/multi_instance.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/multi_instance_parallel/multi_instance_parallel.bpmn b/tests/data/multi_instance_parallel/multi_instance_parallel.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/nav_order/nav_order.bpmn b/tests/data/nav_order/nav_order.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/parallel_tasks/parallel_tasks.bpmn b/tests/data/parallel_tasks/parallel_tasks.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/pb_responses/check_study.json b/tests/data/pb_responses/check_study.json old mode 100644 new mode 100755 diff --git a/tests/data/pb_responses/investigators.json b/tests/data/pb_responses/investigators.json old mode 100644 new mode 100755 diff --git a/tests/data/pb_responses/irb_info.json b/tests/data/pb_responses/irb_info.json old mode 100644 new mode 100755 diff --git a/tests/data/pb_responses/required_docs.json b/tests/data/pb_responses/required_docs.json old mode 100644 new mode 100755 diff --git a/tests/data/pb_responses/sponsors.json b/tests/data/pb_responses/sponsors.json old mode 100644 new mode 100755 diff --git a/tests/data/pb_responses/study_details.json b/tests/data/pb_responses/study_details.json old mode 100644 new mode 100755 diff --git a/tests/data/pb_responses/study_details_bad_review_type.json b/tests/data/pb_responses/study_details_bad_review_type.json old mode 100644 new mode 100755 diff --git a/tests/data/pb_responses/user_studies.json b/tests/data/pb_responses/user_studies.json old mode 100644 new mode 100755 diff --git a/tests/data/random_fact/random_fact.bpmn b/tests/data/random_fact/random_fact.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/random_fact/random_fact2.bpmn b/tests/data/random_fact/random_fact2.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/read_only_field/read_only_field.bpmn b/tests/data/read_only_field/read_only_field.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/repeat_form/repeat_form.bpmn b/tests/data/repeat_form/repeat_form.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/required_fields/required_fields.bpmn b/tests/data/required_fields/required_fields.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/reset_workflow/reset_workflow.bpmn b/tests/data/reset_workflow/reset_workflow.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/roles/roles.bpmn b/tests/data/roles/roles.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/script_with_name_error/script_with_name_error.bpmn b/tests/data/script_with_name_error/script_with_name_error.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_cancellations/study_cancellations.bpmn b/tests/data/study_cancellations/study_cancellations.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_details/study_details.bpmn b/tests/data/study_details/study_details.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_info_script/study_info_script.bpmn b/tests/data/study_info_script/study_info_script.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_sponsors/study_sponsors.bpmn b/tests/data/study_sponsors/study_sponsors.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_sponsors_associate/study_sponsors_associate.bpmn b/tests/data/study_sponsors_associate/study_sponsors_associate.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_sponsors_associate_fail/study_sponsors_associate_fail.bpmn b/tests/data/study_sponsors_associate_fail/study_sponsors_associate_fail.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_sponsors_associate_switch_user/study_sponsors_associate_switch_user.bpmn b/tests/data/study_sponsors_associate_switch_user/study_sponsors_associate_switch_user.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_sponsors_associates_delete/study_sponsors_associates_delete.bpmn b/tests/data/study_sponsors_associates_delete/study_sponsors_associates_delete.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/study_sponsors_data_store/study_sponsors_data_store.bpmn b/tests/data/study_sponsors_data_store/study_sponsors_data_store.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/subprocess/subprocess.bpmn b/tests/data/subprocess/subprocess.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/table.docx b/tests/data/table.docx old mode 100644 new mode 100755 diff --git a/tests/data/test_value_expression/test_value_expression.bpmn b/tests/data/test_value_expression/test_value_expression.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/timer_event/timer_event.bpmn b/tests/data/timer_event/timer_event.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/timer_event_error/timer_event_error.bpmn b/tests/data/timer_event_error/timer_event_error.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/top_level_workflow/data_security_plan.dmn b/tests/data/top_level_workflow/data_security_plan.dmn old mode 100644 new mode 100755 diff --git a/tests/data/top_level_workflow/enter_core_info.dmn b/tests/data/top_level_workflow/enter_core_info.dmn old mode 100644 new mode 100755 diff --git a/tests/data/top_level_workflow/sponsor_funding_source.dmn b/tests/data/top_level_workflow/sponsor_funding_source.dmn old mode 100644 new mode 100755 diff --git a/tests/data/top_level_workflow/top_level_workflow.bpmn b/tests/data/top_level_workflow/top_level_workflow.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/two_forms/modified/two_forms_struc_mod.bpmn b/tests/data/two_forms/modified/two_forms_struc_mod.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/two_forms/modified/two_forms_text_mod.bpmn b/tests/data/two_forms/modified/two_forms_text_mod.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/two_forms/two_forms.bpmn b/tests/data/two_forms/two_forms.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/two_user_tasks/two_user_tasks.bpmn b/tests/data/two_user_tasks/two_user_tasks.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/verify_end_event/verify_end_event.bpmn b/tests/data/verify_end_event/verify_end_event.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/workflow_form_field_name/workflow_form_field_name.bpmn b/tests/data/workflow_form_field_name/workflow_form_field_name.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/workflow_form_field_type/workflow_form_field_type.bpmn b/tests/data/workflow_form_field_type/workflow_form_field_type.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/workflow_sync_responses/random_fact2.bpmn b/tests/data/workflow_sync_responses/random_fact2.bpmn old mode 100644 new mode 100755 diff --git a/tests/data/workflow_sync_responses/test.txt b/tests/data/workflow_sync_responses/test.txt old mode 100644 new mode 100755 diff --git a/tests/emails/__init__.py b/tests/emails/__init__.py old mode 100644 new mode 100755 diff --git a/tests/emails/test_email_script.py b/tests/emails/test_email_script.py old mode 100644 new mode 100755 diff --git a/tests/emails/test_email_service.py b/tests/emails/test_email_service.py old mode 100644 new mode 100755 diff --git a/tests/files/__init__.py b/tests/files/__init__.py old mode 100644 new mode 100755 diff --git a/tests/files/test_file_service.py b/tests/files/test_file_service.py old mode 100644 new mode 100755 diff --git a/tests/files/test_files_api.py b/tests/files/test_files_api.py old mode 100644 new mode 100755 diff --git a/tests/ldap/__init__.py b/tests/ldap/__init__.py old mode 100644 new mode 100755 diff --git a/tests/ldap/test_ldap_lookup_script.py b/tests/ldap/test_ldap_lookup_script.py old mode 100644 new mode 100755 diff --git a/tests/scripts/__init__.py b/tests/scripts/__init__.py old mode 100644 new mode 100755 diff --git a/tests/scripts/test_check_study.py b/tests/scripts/test_check_study.py old mode 100644 new mode 100755 diff --git a/tests/scripts/test_get_study_associate_validation.py b/tests/scripts/test_get_study_associate_validation.py old mode 100644 new mode 100755 diff --git a/tests/study/__init__.py b/tests/study/__init__.py old mode 100644 new mode 100755 diff --git a/tests/study/test_get_study_from_model.py b/tests/study/test_get_study_from_model.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_actions_status.py b/tests/study/test_study_actions_status.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_api.py b/tests/study/test_study_api.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_associate_script.py b/tests/study/test_study_associate_script.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_cancellations.py b/tests/study/test_study_cancellations.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_data_store_script.py b/tests/study/test_study_data_store_script.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_details.py b/tests/study/test_study_details.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_details_documents.py b/tests/study/test_study_details_documents.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_service.py b/tests/study/test_study_service.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_sponsors_script.py b/tests/study/test_study_sponsors_script.py old mode 100644 new mode 100755 diff --git a/tests/study/test_study_status_message.py b/tests/study/test_study_status_message.py old mode 100644 new mode 100755 diff --git a/tests/study/test_update_study_script.py b/tests/study/test_update_study_script.py old mode 100644 new mode 100755 diff --git a/tests/test_authentication.py b/tests/test_authentication.py old mode 100644 new mode 100755 diff --git a/tests/test_auto_set_primary_bpmn.py b/tests/test_auto_set_primary_bpmn.py old mode 100644 new mode 100755 diff --git a/tests/test_complete_template_script.py b/tests/test_complete_template_script.py old mode 100644 new mode 100755 diff --git a/tests/test_datastore_api.py b/tests/test_datastore_api.py old mode 100644 new mode 100755 diff --git a/tests/test_decision_table_dictionary_output.py b/tests/test_decision_table_dictionary_output.py old mode 100644 new mode 100755 diff --git a/tests/test_document_directories.py b/tests/test_document_directories.py old mode 100644 new mode 100755 diff --git a/tests/test_email_script.py b/tests/test_email_script.py old mode 100644 new mode 100755 diff --git a/tests/test_events.py b/tests/test_events.py old mode 100644 new mode 100755 diff --git a/tests/test_file_datastore.py b/tests/test_file_datastore.py old mode 100644 new mode 100755 diff --git a/tests/test_get_dashboard_url_script.py b/tests/test_get_dashboard_url_script.py old mode 100644 new mode 100755 diff --git a/tests/test_irb_info_script.py b/tests/test_irb_info_script.py old mode 100644 new mode 100755 diff --git a/tests/test_is_file_uploaded_script.py b/tests/test_is_file_uploaded_script.py old mode 100644 new mode 100755 diff --git a/tests/test_launch_workflow_outside_study.py b/tests/test_launch_workflow_outside_study.py old mode 100644 new mode 100755 diff --git a/tests/test_ldap_service.py b/tests/test_ldap_service.py old mode 100644 new mode 100755 diff --git a/tests/test_lookup_service.py b/tests/test_lookup_service.py old mode 100644 new mode 100755 diff --git a/tests/test_looping_task.py b/tests/test_looping_task.py old mode 100644 new mode 100755 diff --git a/tests/test_message_event.py b/tests/test_message_event.py old mode 100644 new mode 100755 diff --git a/tests/test_multi_instance_tasks_api.py b/tests/test_multi_instance_tasks_api.py old mode 100644 new mode 100755 diff --git a/tests/test_protocol_builder.py b/tests/test_protocol_builder.py old mode 100644 new mode 100755 diff --git a/tests/test_study_info_script.py b/tests/test_study_info_script.py old mode 100644 new mode 100755 diff --git a/tests/test_tasks_api.py b/tests/test_tasks_api.py old mode 100644 new mode 100755 diff --git a/tests/test_tools_api.py b/tests/test_tools_api.py old mode 100644 new mode 100755 diff --git a/tests/test_user_in_logs.py b/tests/test_user_in_logs.py old mode 100644 new mode 100755 diff --git a/tests/test_user_roles.py b/tests/test_user_roles.py old mode 100644 new mode 100755 diff --git a/tests/test_verify_end_event.py b/tests/test_verify_end_event.py old mode 100644 new mode 100755 diff --git a/tests/test_wait_event.py b/tests/test_wait_event.py old mode 100644 new mode 100755 diff --git a/tests/test_workflow_api.py b/tests/test_workflow_api.py old mode 100644 new mode 100755 diff --git a/tests/test_workflow_sync.py b/tests/test_workflow_sync.py old mode 100644 new mode 100755 diff --git a/tests/workflow/__init__.py b/tests/workflow/__init__.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_duplicate_workflow_spec_file.py b/tests/workflow/test_duplicate_workflow_spec_file.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_boolean_default.py b/tests/workflow/test_workflow_boolean_default.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_customer_error.py b/tests/workflow/test_workflow_customer_error.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_delete_irb_document.py b/tests/workflow/test_workflow_delete_irb_document.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_enum_default_value_expression.py b/tests/workflow/test_workflow_enum_default_value_expression.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_enum_empty_list.py b/tests/workflow/test_workflow_enum_empty_list.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_form_field_name.py b/tests/workflow/test_workflow_form_field_name.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_form_field_type.py b/tests/workflow/test_workflow_form_field_type.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_hidden_required_field.py b/tests/workflow/test_workflow_hidden_required_field.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_infinite_loop.py b/tests/workflow/test_workflow_infinite_loop.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_missing_form_key.py b/tests/workflow/test_workflow_missing_form_key.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_name_error_hint.py b/tests/workflow/test_workflow_name_error_hint.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_processor.py b/tests/workflow/test_workflow_processor.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_processor_multi_instance.py b/tests/workflow/test_workflow_processor_multi_instance.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_read_only_field.py b/tests/workflow/test_workflow_read_only_field.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_reset.py b/tests/workflow/test_workflow_reset.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_restart.py b/tests/workflow/test_workflow_restart.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_service.py b/tests/workflow/test_workflow_service.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_spec_api.py b/tests/workflow/test_workflow_spec_api.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_spec_validation_api.py b/tests/workflow/test_workflow_spec_validation_api.py old mode 100644 new mode 100755 diff --git a/tests/workflow/test_workflow_value_expression.py b/tests/workflow/test_workflow_value_expression.py old mode 100644 new mode 100755 diff --git a/wsgi.py b/wsgi.py old mode 100644 new mode 100755 From d20b68e483582faf483eb8946f6b12698ba3ae7a Mon Sep 17 00:00:00 2001 From: nilez Date: Thu, 12 Aug 2021 12:33:27 -0400 Subject: [PATCH 5/9] Fixed Deprecation Warnings in Test Files --- crc/api/file.py | 12 ++++----- crc/api/tools.py | 4 +-- tests/files/test_file_service.py | 2 +- tests/files/test_files_api.py | 2 +- tests/study/test_study_associate_script.py | 10 ++++---- tests/study/test_study_data_store_script.py | 6 ++--- tests/study/test_study_details_documents.py | 25 ++++++++----------- tests/study/test_study_sponsors_script.py | 2 +- tests/test_document_directories.py | 16 ++++++------ tests/test_multi_instance_tasks_api.py | 2 +- tests/test_wait_event.py | 4 +-- .../workflow/test_workflow_enum_empty_list.py | 4 +-- .../test_workflow_spec_validation_api.py | 2 +- 13 files changed, 44 insertions(+), 47 deletions(-) diff --git a/crc/api/file.py b/crc/api/file.py index 118dccfc..2b5bbd18 100755 --- a/crc/api/file.py +++ b/crc/api/file.py @@ -71,9 +71,9 @@ def get_reference_file(name): file_data = FileService.get_reference_file_data(name) return send_file( io.BytesIO(file_data.data), - attachment_filename=file_data.file_model.name, + download_name=file_data.file_model.name, mimetype=file_data.file_model.content_type, - cache_timeout=-1 # Don't cache these files on the browser. + max_age=-1 # Don't cache these files on the browser. ) @@ -120,9 +120,9 @@ def get_file_data(file_id, version=None): raise ApiError('no_such_file', 'The file id you provided does not exist') return send_file( io.BytesIO(file_data.data), - attachment_filename=file_data.file_model.name, + download_name=file_data.file_model.name, mimetype=file_data.file_model.content_type, - cache_timeout=-1, # Don't cache these files on the browser. + max_age=-1, # Don't cache these files on the browser. last_modified=file_data.date_created ) @@ -135,9 +135,9 @@ def get_file_data_link(file_id, auth_token, version=None): raise ApiError('no_such_file', 'The file id you provided does not exist') return send_file( io.BytesIO(file_data.data), - attachment_filename=file_data.file_model.name, + download_name=file_data.file_model.name, mimetype=file_data.file_model.content_type, - cache_timeout=-1, # Don't cache these files on the browser. + max_age=-1, # Don't cache these files on the browser. last_modified=file_data.date_created, as_attachment = True ) diff --git a/crc/api/tools.py b/crc/api/tools.py index e93c2124..a418a429 100755 --- a/crc/api/tools.py +++ b/crc/api/tools.py @@ -43,9 +43,9 @@ def render_docx(): return send_file( io.BytesIO(target_stream.read()), as_attachment=True, - attachment_filename="output.docx", + download_name="output.docx", mimetype="application/octet-stream", - cache_timeout=-1 # Don't cache these files on the browser. + max_age=-1 # Don't cache these files on the browser. ) except ValueError as e: raise ApiError(code="undefined_field", message=str(e)) diff --git a/tests/files/test_file_service.py b/tests/files/test_file_service.py index 94f5945f..13f90c9b 100755 --- a/tests/files/test_file_service.py +++ b/tests/files/test_file_service.py @@ -72,7 +72,7 @@ class TestFileService(BaseTest): file_data = FileService.get_workflow_data_files(workflow_id=workflow.id) self.assertEqual(1, len(file_data)) self.assertEqual(2, file_data[0].version) - self.assertEquals(4, file_data[0].size) # File dat size is included. + self.assertEqual(4, file_data[0].size) # File dat size is included. def test_add_file_from_form_increments_version_and_replaces_on_subsequent_add_with_same_name(self): self.load_example_data() diff --git a/tests/files/test_files_api.py b/tests/files/test_files_api.py index 24d8f898..59a2e2fb 100755 --- a/tests/files/test_files_api.py +++ b/tests/files/test_files_api.py @@ -191,7 +191,7 @@ class TestFilesApi(BaseTest): rv = self.app.post('/v1.0/file?workflow_spec_id=%s' % spec.id, data=data, follow_redirects=True, content_type='multipart/form-data', headers=self.logged_in_headers()) file_json = json.loads(rv.get_data(as_text=True)) - self.assertEquals(80, file_json['size']) + self.assertEqual(80, file_json['size']) data['file'] = io.BytesIO(self.minimal_bpmn("efghijk")), 'my_new_file.bpmn' rv = self.app.put('/v1.0/file/%i/data' % file_json['id'], data=data, follow_redirects=True, diff --git a/tests/study/test_study_associate_script.py b/tests/study/test_study_associate_script.py index a6a07a90..a6b105dd 100755 --- a/tests/study/test_study_associate_script.py +++ b/tests/study/test_study_associate_script.py @@ -53,20 +53,20 @@ class TestSudySponsorsScript(BaseTest): self.assertIn('sponsors', data) self.assertIn('out', data) print(data['out']) - self.assertEquals([{'uid': 'dhf8r', 'role': 'owner', 'send_email': True, 'access': True}, + self.assertEqual([{'uid': 'dhf8r', 'role': 'owner', 'send_email': True, 'access': True}, {'uid': 'lb3dp', 'role': 'SuperDude', 'send_email': False, 'access': True}] , data['out']) - self.assertEquals({'uid': 'lb3dp', 'role': 'SuperDude', 'send_email': False, 'access': True} + self.assertEqual({'uid': 'lb3dp', 'role': 'SuperDude', 'send_email': False, 'access': True} , data['out2']) - self.assertEquals([{'uid': 'dhf8r', 'role': 'owner', 'send_email': True, 'access': True}, + self.assertEqual([{'uid': 'dhf8r', 'role': 'owner', 'send_email': True, 'access': True}, {'uid': 'lb3dp', 'role': 'SuperGal', 'send_email': False, 'access': True}] , data['out3']) - self.assertEquals({'uid': 'lb3dp', 'role': 'SuperGal', 'send_email': False, 'access': True} + self.assertEqual({'uid': 'lb3dp', 'role': 'SuperGal', 'send_email': False, 'access': True} , data['out4']) - self.assertEquals(3, len(data['sponsors'])) + self.assertEqual(3, len(data['sponsors'])) @patch('crc.services.protocol_builder.requests.get') diff --git a/tests/study/test_study_data_store_script.py b/tests/study/test_study_data_store_script.py index 4f134945..6f7924c5 100755 --- a/tests/study/test_study_data_store_script.py +++ b/tests/study/test_study_data_store_script.py @@ -50,6 +50,6 @@ class TestSudySponsorsScript(BaseTest): data = processor.next_task().data self.assertIn('sponsors', data) self.assertIn('out', data) - self.assertEquals('empty', data['empty']) - self.assertEquals('newval', data['out']) - self.assertEquals(3, len(data['sponsors'])) + self.assertEqual('empty', data['empty']) + self.assertEqual('newval', data['out']) + self.assertEqual(3, len(data['sponsors'])) diff --git a/tests/study/test_study_details_documents.py b/tests/study/test_study_details_documents.py index 98281f68..3cb0fb46 100755 --- a/tests/study/test_study_details_documents.py +++ b/tests/study/test_study_details_documents.py @@ -1,4 +1,3 @@ - from SpiffWorkflow.bpmn.PythonScriptEngine import Box from tests.base_test import BaseTest @@ -56,7 +55,6 @@ class TestStudyDetailsDocumentsScript(BaseTest): @patch('crc.services.protocol_builder.requests.get') def test_no_validation_error_when_correct_file_exists(self, mock_get): - mock_get.return_value.ok = True mock_get.return_value.text = self.protocol_builder_response('required_docs.json') @@ -105,15 +103,15 @@ class TestStudyDetailsDocumentsScript(BaseTest): workflow_model = StudyService._create_workflow_model(study, workflow_spec_model) irb_code = "UVACompl_PRCAppr" # The first file referenced in pb required docs. file = FileService.add_workflow_file(workflow_id=workflow_model.id, - name="anything.png", content_type="text", - binary_data=b'1234', irb_doc_code=irb_code) + name="anything.png", content_type="text", + binary_data=b'1234', irb_doc_code=irb_code) processor = WorkflowProcessor(workflow_model) task = processor.next_task() FileDataSet().do_task(task, study.id, workflow_model.id, key="ginger", value="doodle", file_id=file.id) docs = StudyInfo().do_task(task, study.id, workflow_model.id, "documents") self.assertTrue(isinstance(docs, Box)) - self.assertEquals(1, len(docs.UVACompl_PRCAppr.files)) - self.assertEquals("doodle", docs.UVACompl_PRCAppr.files[0].data_store.ginger) + self.assertEqual(1, len(docs.UVACompl_PRCAppr.files)) + self.assertEqual("doodle", docs.UVACompl_PRCAppr.files[0].data_store.ginger) @patch('crc.services.protocol_builder.requests.get') def test_file_data_set_changes_irb_code(self, mock_get): @@ -126,16 +124,15 @@ class TestStudyDetailsDocumentsScript(BaseTest): workflow_model = StudyService._create_workflow_model(study, workflow_spec_model) irb_code = "UVACompl_PRCAppr" # The first file referenced in pb required docs. file = FileService.add_workflow_file(workflow_id=workflow_model.id, - name="anything.png", content_type="text", - binary_data=b'1234', irb_doc_code=irb_code) + name="anything.png", content_type="text", + binary_data=b'1234', irb_doc_code=irb_code) processor = WorkflowProcessor(workflow_model) task = processor.next_task() FileDataSet().do_task(task, study.id, workflow_model.id, key="irb_code", value="Study_App_Doc", file_id=file.id) docs = StudyInfo().do_task(task, study.id, workflow_model.id, "documents") self.assertTrue(isinstance(docs, Box)) - self.assertEquals(1, len(docs.Study_App_Doc.files)) - self.assertEquals("Study_App_Doc", docs.Study_App_Doc.files[0].data_store.irb_code) - + self.assertEqual(1, len(docs.Study_App_Doc.files)) + self.assertEqual("Study_App_Doc", docs.Study_App_Doc.files[0].data_store.irb_code) @patch('crc.services.protocol_builder.requests.get') def test_file_data_set_invalid_irb_code_fails(self, mock_get): @@ -148,10 +145,10 @@ class TestStudyDetailsDocumentsScript(BaseTest): workflow_model = StudyService._create_workflow_model(study, workflow_spec_model) irb_code = "UVACompl_PRCAppr" # The first file referenced in pb required docs. file = FileService.add_workflow_file(workflow_id=workflow_model.id, - name="anything.png", content_type="text", - binary_data=b'1234', irb_doc_code=irb_code) + name="anything.png", content_type="text", + binary_data=b'1234', irb_doc_code=irb_code) processor = WorkflowProcessor(workflow_model) task = processor.next_task() with self.assertRaises(ApiError): FileDataSet().do_task(task, study.id, workflow_model.id, key="irb_code", value="My_Pretty_Pony", - file_id=file.id) + file_id=file.id) diff --git a/tests/study/test_study_sponsors_script.py b/tests/study/test_study_sponsors_script.py index b47927c4..ab5e6f3b 100755 --- a/tests/study/test_study_sponsors_script.py +++ b/tests/study/test_study_sponsors_script.py @@ -45,4 +45,4 @@ class TestSudySponsorsScript(BaseTest): self.assertTrue(processor.bpmn_workflow.is_completed()) data = processor.next_task().data self.assertIn('sponsors', data) - self.assertEquals(3, len(data['sponsors'])) + self.assertEqual(3, len(data['sponsors'])) diff --git a/tests/test_document_directories.py b/tests/test_document_directories.py index 670af86b..7b3f75fd 100755 --- a/tests/test_document_directories.py +++ b/tests/test_document_directories.py @@ -28,11 +28,11 @@ class TestDocumentDirectories(BaseTest): self.assert_success(rv) json_data = json.loads(rv.get_data(as_text=True)) print(json_data) - self.assertEquals(2, len(json_data)) - self.assertEquals('UVA Compliance', json_data[0]['level']) - self.assertEquals('PRC Approval', json_data[0]['children'][0]['level']) - self.assertEquals('something.png', json_data[0]['children'][0]['children'][0]['file']['name']) - self.assertEquals('Study', json_data[1]['level']) - self.assertEquals('Application', json_data[1]['children'][0]['level']) - self.assertEquals('Document', json_data[1]['children'][0]['children'][0]['level']) - self.assertEquals('anything.png', json_data[1]['children'][0]['children'][0]['children'][0]['file']['name']) + self.assertEqual(2, len(json_data)) + self.assertEqual('UVA Compliance', json_data[0]['level']) + self.assertEqual('PRC Approval', json_data[0]['children'][0]['level']) + self.assertEqual('something.png', json_data[0]['children'][0]['children'][0]['file']['name']) + self.assertEqual('Study', json_data[1]['level']) + self.assertEqual('Application', json_data[1]['children'][0]['level']) + self.assertEqual('Document', json_data[1]['children'][0]['children'][0]['level']) + self.assertEqual('anything.png', json_data[1]['children'][0]['children'][0]['children'][0]['file']['name']) diff --git a/tests/test_multi_instance_tasks_api.py b/tests/test_multi_instance_tasks_api.py index 12036e2d..ca5100f5 100755 --- a/tests/test_multi_instance_tasks_api.py +++ b/tests/test_multi_instance_tasks_api.py @@ -106,6 +106,6 @@ class TestMultiinstanceTasksApi(BaseTest): self.assertEqual(WorkflowStatus.complete, workflow.status) data = workflow.next_task.data for key in data["StudyInfo"]["investigators"]: - self.assertEquals("dhf8r@virginia.edu", data["StudyInfo"]["investigators"][key]['email']) + self.assertEqual("dhf8r@virginia.edu", data["StudyInfo"]["investigators"][key]['email']) diff --git a/tests/test_wait_event.py b/tests/test_wait_event.py index 352f3b43..18ee1ed9 100755 --- a/tests/test_wait_event.py +++ b/tests/test_wait_event.py @@ -40,7 +40,7 @@ class TestTimerEvent(BaseTest): with self.assertLogs('crc', level='ERROR') as cm: WorkflowService.do_waiting() self.assertEqual(1, len(cm.output)) - self.assertRegexpMatches(cm.output[0], f"workflow #%i" % workflow.id) - self.assertRegexpMatches(cm.output[0], f"study #%i" % workflow.study_id) + self.assertRegex(cm.output[0], f"workflow #%i" % workflow.id) + self.assertRegex(cm.output[0], f"study #%i" % workflow.study_id) self.assertTrue(wf.status == WorkflowStatus.waiting) diff --git a/tests/workflow/test_workflow_enum_empty_list.py b/tests/workflow/test_workflow_enum_empty_list.py index 38f1def7..0effdf74 100755 --- a/tests/workflow/test_workflow_enum_empty_list.py +++ b/tests/workflow/test_workflow_enum_empty_list.py @@ -24,5 +24,5 @@ class TestEmptyEnumList(BaseTest): service = WorkflowService() checkbox_enum_field = task.task_spec.form.fields[0] radio_enum_field = task.task_spec.form.fields[1] - self.assertEquals([], service.get_default_value(checkbox_enum_field, task)) - self.assertEquals({'label': None, 'value': None}, service.get_default_value(radio_enum_field, task)) + self.assertEqual([], service.get_default_value(checkbox_enum_field, task)) + self.assertEqual({'label': None, 'value': None}, service.get_default_value(radio_enum_field, task)) diff --git a/tests/workflow/test_workflow_spec_validation_api.py b/tests/workflow/test_workflow_spec_validation_api.py index 9ada7cd7..3c144d39 100755 --- a/tests/workflow/test_workflow_spec_validation_api.py +++ b/tests/workflow/test_workflow_spec_validation_api.py @@ -145,5 +145,5 @@ class TestWorkflowSpecValidation(BaseTest): final_data = WorkflowService.test_spec(spec_model.id, required_only=True) self.assertIsNotNone(final_data) self.assertIn('enum_with_default', final_data) - self.assertEquals('maybe', final_data['enum_with_default']['value']) + self.assertEqual('maybe', final_data['enum_with_default']['value']) From 4a2581e938d1872fcd61075351b1bb7e0e5f0c9c Mon Sep 17 00:00:00 2001 From: nilez Date: Thu, 12 Aug 2021 14:03:44 -0400 Subject: [PATCH 6/9] get studies raises and error when invalid studies are the only studies associated with the user --- crc/api/study.py | 6 ++++++ crc/services/study_service.py | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/crc/api/study.py b/crc/api/study.py index df469710..bbdcad01 100755 --- a/crc/api/study.py +++ b/crc/api/study.py @@ -99,6 +99,12 @@ def user_studies(): user = UserService.current_user(allow_admin_impersonate=True) StudyService.synch_with_protocol_builder_if_enabled(user) studies = StudyService().get_studies_for_user(user) + if len(studies) == 0: + studies = StudyService().get_studies_for_user(user, include_invalid=True) + if len(studies) > 0: + message = f"All studies associated with User: {user.display_name} failed study validation" + raise ApiError(code="study_integrity_error", message=message) + results = StudySchema(many=True).dump(studies) return results diff --git a/crc/services/study_service.py b/crc/services/study_service.py index 738ee0e9..b21c8e5b 100755 --- a/crc/services/study_service.py +++ b/crc/services/study_service.py @@ -42,7 +42,7 @@ class StudyService(object): return True return False - def get_studies_for_user(self, user): + def get_studies_for_user(self, user, include_invalid=False): """Returns a list of all studies for the given user.""" associated = session.query(StudyAssociated).filter_by(uid=user.uid, access=True).all() associated_studies = [x.study_id for x in associated] @@ -51,7 +51,7 @@ class StudyService(object): studies = [] for study_model in db_studies: - if self._is_valid_study(study_model.id): + if include_invalid or self._is_valid_study(study_model.id): studies.append(StudyService.get_study(study_model.id, study_model, do_status=False)) return studies @@ -130,7 +130,7 @@ class StudyService(object): return people else: raise ApiError('uid_not_associated_with_study', "user id %s was not associated with study number %d" % (uid, - study_id)) + study_id)) @staticmethod def get_study_associates(study_id): From 07ffcd7c76edfca0b0b6e4ed1622c4069a56d017 Mon Sep 17 00:00:00 2001 From: nilez Date: Mon, 16 Aug 2021 23:46:39 -0400 Subject: [PATCH 7/9] Dependencies In Testing are behind this avoids that issue. https://sonarcloud.io/project/issues?id=sartography_cr-connect-workflow&pullRequest=356&resolved=false&types=BUG --- crc/api/file.py | 12 ++++++------ crc/api/tools.py | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/crc/api/file.py b/crc/api/file.py index 2b5bbd18..118dccfc 100755 --- a/crc/api/file.py +++ b/crc/api/file.py @@ -71,9 +71,9 @@ def get_reference_file(name): file_data = FileService.get_reference_file_data(name) return send_file( io.BytesIO(file_data.data), - download_name=file_data.file_model.name, + attachment_filename=file_data.file_model.name, mimetype=file_data.file_model.content_type, - max_age=-1 # Don't cache these files on the browser. + cache_timeout=-1 # Don't cache these files on the browser. ) @@ -120,9 +120,9 @@ def get_file_data(file_id, version=None): raise ApiError('no_such_file', 'The file id you provided does not exist') return send_file( io.BytesIO(file_data.data), - download_name=file_data.file_model.name, + attachment_filename=file_data.file_model.name, mimetype=file_data.file_model.content_type, - max_age=-1, # Don't cache these files on the browser. + cache_timeout=-1, # Don't cache these files on the browser. last_modified=file_data.date_created ) @@ -135,9 +135,9 @@ def get_file_data_link(file_id, auth_token, version=None): raise ApiError('no_such_file', 'The file id you provided does not exist') return send_file( io.BytesIO(file_data.data), - download_name=file_data.file_model.name, + attachment_filename=file_data.file_model.name, mimetype=file_data.file_model.content_type, - max_age=-1, # Don't cache these files on the browser. + cache_timeout=-1, # Don't cache these files on the browser. last_modified=file_data.date_created, as_attachment = True ) diff --git a/crc/api/tools.py b/crc/api/tools.py index a418a429..e93c2124 100755 --- a/crc/api/tools.py +++ b/crc/api/tools.py @@ -43,9 +43,9 @@ def render_docx(): return send_file( io.BytesIO(target_stream.read()), as_attachment=True, - download_name="output.docx", + attachment_filename="output.docx", mimetype="application/octet-stream", - max_age=-1 # Don't cache these files on the browser. + cache_timeout=-1 # Don't cache these files on the browser. ) except ValueError as e: raise ApiError(code="undefined_field", message=str(e)) From 4e0e162fd634b2b4be10670370d6d397c2cbb1a5 Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 17 Aug 2021 09:50:57 -0400 Subject: [PATCH 8/9] Removing the execution flag Nile keeps adding to files. --- crc/api/file.py | 0 crc/api/study.py | 0 crc/api/tools.py | 0 crc/scripts/email.py | 0 crc/scripts/get_study_associate.py | 0 crc/scripts/get_study_associates.py | 0 tests/data/study_sponsors_associate/study_sponsors_associate.bpmn | 0 tests/files/test_file_service.py | 0 tests/files/test_files_api.py | 0 tests/study/test_study_associate_script.py | 0 tests/study/test_study_data_store_script.py | 0 tests/study/test_study_details_documents.py | 0 tests/study/test_study_sponsors_script.py | 0 tests/test_document_directories.py | 0 tests/test_multi_instance_tasks_api.py | 0 tests/test_wait_event.py | 0 tests/workflow/test_workflow_enum_empty_list.py | 0 tests/workflow/test_workflow_spec_validation_api.py | 0 18 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 crc/api/file.py mode change 100755 => 100644 crc/api/study.py mode change 100755 => 100644 crc/api/tools.py mode change 100755 => 100644 crc/scripts/email.py mode change 100755 => 100644 crc/scripts/get_study_associate.py mode change 100755 => 100644 crc/scripts/get_study_associates.py mode change 100755 => 100644 tests/data/study_sponsors_associate/study_sponsors_associate.bpmn mode change 100755 => 100644 tests/files/test_file_service.py mode change 100755 => 100644 tests/files/test_files_api.py mode change 100755 => 100644 tests/study/test_study_associate_script.py mode change 100755 => 100644 tests/study/test_study_data_store_script.py mode change 100755 => 100644 tests/study/test_study_details_documents.py mode change 100755 => 100644 tests/study/test_study_sponsors_script.py mode change 100755 => 100644 tests/test_document_directories.py mode change 100755 => 100644 tests/test_multi_instance_tasks_api.py mode change 100755 => 100644 tests/test_wait_event.py mode change 100755 => 100644 tests/workflow/test_workflow_enum_empty_list.py mode change 100755 => 100644 tests/workflow/test_workflow_spec_validation_api.py diff --git a/crc/api/file.py b/crc/api/file.py old mode 100755 new mode 100644 diff --git a/crc/api/study.py b/crc/api/study.py old mode 100755 new mode 100644 diff --git a/crc/api/tools.py b/crc/api/tools.py old mode 100755 new mode 100644 diff --git a/crc/scripts/email.py b/crc/scripts/email.py old mode 100755 new mode 100644 diff --git a/crc/scripts/get_study_associate.py b/crc/scripts/get_study_associate.py old mode 100755 new mode 100644 diff --git a/crc/scripts/get_study_associates.py b/crc/scripts/get_study_associates.py old mode 100755 new mode 100644 diff --git a/tests/data/study_sponsors_associate/study_sponsors_associate.bpmn b/tests/data/study_sponsors_associate/study_sponsors_associate.bpmn old mode 100755 new mode 100644 diff --git a/tests/files/test_file_service.py b/tests/files/test_file_service.py old mode 100755 new mode 100644 diff --git a/tests/files/test_files_api.py b/tests/files/test_files_api.py old mode 100755 new mode 100644 diff --git a/tests/study/test_study_associate_script.py b/tests/study/test_study_associate_script.py old mode 100755 new mode 100644 diff --git a/tests/study/test_study_data_store_script.py b/tests/study/test_study_data_store_script.py old mode 100755 new mode 100644 diff --git a/tests/study/test_study_details_documents.py b/tests/study/test_study_details_documents.py old mode 100755 new mode 100644 diff --git a/tests/study/test_study_sponsors_script.py b/tests/study/test_study_sponsors_script.py old mode 100755 new mode 100644 diff --git a/tests/test_document_directories.py b/tests/test_document_directories.py old mode 100755 new mode 100644 diff --git a/tests/test_multi_instance_tasks_api.py b/tests/test_multi_instance_tasks_api.py old mode 100755 new mode 100644 diff --git a/tests/test_wait_event.py b/tests/test_wait_event.py old mode 100755 new mode 100644 diff --git a/tests/workflow/test_workflow_enum_empty_list.py b/tests/workflow/test_workflow_enum_empty_list.py old mode 100755 new mode 100644 diff --git a/tests/workflow/test_workflow_spec_validation_api.py b/tests/workflow/test_workflow_spec_validation_api.py old mode 100755 new mode 100644 From 78f79a67b7316c1cbc9e8112f7c162c03860ebf4 Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 17 Aug 2021 09:52:02 -0400 Subject: [PATCH 9/9] removing exectue flag. --- crc/models/study.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 crc/models/study.py diff --git a/crc/models/study.py b/crc/models/study.py old mode 100755 new mode 100644