Commit Graph

2009 Commits

Author SHA1 Message Date
Kelly McDonald f1ca44a0e1 Add primitive cache on the fileservice is_review, halves the time of loading the list on the primary dashboard 2021-03-23 10:17:48 -04:00
mike cullerton 3ee8109535 Tests for the changes to master workflow status dictionary
Test for each valid WorkflowState
Test for all three failure states; not in status, not a dictionary, not a valid state.
2021-03-22 17:52:14 -04:00
mike cullerton a201e49d21 The master workflow now generates a dictionary of dictionaries, rather than a dictionary of strings.
Each entry in status is a dictionary with 'status' and 'message' keys.
We updated the StudyService._update_status_of_workflow_meta method to accommodate the master workflow changes.

Changed the order of some if statements so we move forward while we have good data, and run all the error states at the end.
Added some comments to explain the cascading if statements

We changed the names of private methods to begin with one underscore, so they work in the test environment.
Changed  some internal calls to accommodate the underscore change.
2021-03-22 17:46:39 -04:00
Nile Walker a08c6b794f Updated Study Associate Endpoints 2021-03-22 17:30:49 -04:00
dependabot[bot] 24b6b5c7e7
Bump jinja2 from 2.11.2 to 2.11.3 in /deploy
Bumps [jinja2](https://github.com/pallets/jinja) from 2.11.2 to 2.11.3.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/master/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/2.11.2...2.11.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-20 04:01:34 +00:00
dependabot[bot] 491a7de879
Bump urllib3 from 1.26.2 to 1.26.3 in /deploy
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.2 to 1.26.3.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.2...1.26.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-19 19:54:34 +00:00
Dan Funk 6ab98c1dee
Merge pull request #267 from sartography/get-study-associates-validation-242
The `do_task_validate_only` method in the `get_study_associates` scri…
2021-03-19 15:41:46 -04:00
Dan Funk 544f4a4418
Merge pull request #266 from sartography/study-associated-email-207-223
We now perform an LDAP lookup for the associated user email addresses…
2021-03-19 15:40:31 -04:00
mike cullerton 47ff29e3ab Added a test for dictionary output from a decision table.
Will need dictionary output for master workflow status messages.
2021-03-18 12:25:27 -04:00
mike cullerton c4b52f85af Test and workflow for testing infinite loop code. 2021-03-17 14:52:50 -04:00
mike cullerton 938079cf59 Lowered count ceiling to 100, from 1000. This significantly increased validation time, from about 3 minutes to about 10 seconds.
Changed ApiError call to from_task, instead of from_workflow_exception.
2021-03-17 14:52:19 -04:00
mike cullerton e2ba19748d Added department chair to the mocked data for study_info script.
The missing department chair caused an infinite loop in a workflow that checked for a department chair.
2021-03-16 13:36:55 -04:00
mike cullerton 529bfc34b3 We now check for an infinite loop during validation.
This happened when testing for a Department Chair in a workflow.
Our mocked data for study_info script did not have a Department Chair
2021-03-16 13:35:51 -04:00
mike cullerton c05b879dd4 We want to modify the master workflow so that it returns both a status, and a message explaining the status for each workflow.
I.e., from status = {'ids_full_submission': 'required',
                              'enter_core_info': 'disabled',
                              ...}
       to     status = {'ids_full_submission': {'status': 'required', 'message': 'required because...'},
                              'enter_core_info': {'status': 'disabled', 'message': 'disabled because...'},
                              ...}

Modified study_service.__update_status_of_workflow_meta to accommodate this change.
2021-03-16 12:09:42 -04:00
Dan 3c120df3cf remove all dependencies on dockerhub, and rely on a cached version of python 3.8 we have in quay.io 2021-03-16 11:05:05 -04:00
mike cullerton 70efdb4788 The `do_task_validate_only` method in the `get_study_associates` script now returns a mocked list of associates.
It used to return `True`, and this caused shield validation to fail when looping over the results of `get_study_associates`.
(You can't loop over a boolean)

Added a for loop in `study_sponsors_associate.bpmn` to test for this.
Moved `BaseTest` import to the top of `test_study_associate_script` because debug was failing.
2021-03-16 08:57:30 -04:00
mike cullerton dfa65ac276 We now perform an LDAP lookup for the associated user email addresses, instead of looking in the DB user table. 2021-03-15 10:30:23 -04:00
Dan Funk 14386b8ba9
Merge pull request #264 from sartography/bug/243_complete_all
Bug/243 complete all
2021-03-14 12:34:55 -04:00
Dan Funk 0da07675b7
Merge pull request #258 from sartography/study-associated-email-207-223
Study associated email 207 223
2021-03-14 12:34:19 -04:00
Dan Funk 65a24cb3e1
Merge pull request #263 from sartography/bug/233_display_name
Don't raise errors on non-ready tasks that calculate a title, the inf…
2021-03-14 12:21:51 -04:00
Dan 6f80d816cd My privous efforts didn't take into account the fact that we use dot notation in field names.
I've re-worked the workflow form endpoint, so that it only accepts the data that should be in the form, and ignores any other values that come back from the front end.  It seems Formly has some bugs that were introducing confusing information, and I want everything to behave consistently.
I had to re-work some of the tests, which were relying on an ability to set data through a form post without having a corresponding form to do so.
2021-03-14 12:20:39 -04:00
Dan 15c64c862e Adding an argument to update task that will allow it to complete all remaining tasks through an "update_all" flag,
this will allow us to remove some fairly complex logic from the front end that isn't behaving properly.
2021-03-12 20:41:07 -05:00
Dan 1000b22a3b Don't raise errors on non-ready tasks that calculate a title, the information may not be avaiable yet.
Also Allow autocomplete-num as a valid field property.
2021-03-12 15:40:23 -05:00
mike cullerton ef26238127 added CustomBPMNScriptEngine back in 2021-03-11 14:33:35 -05:00
Mike Cullerton e7c78c8d0e
Merge branch 'dev' into study-associated-email-207-223 2021-03-11 12:38:47 -05:00
mike cullerton e58f1dc484 Remove unused mails service 2021-03-11 11:56:18 -05:00
mike cullerton b403a3015e Modified existing tests to work with changes to the email script.
Added test for associated emails.
Added test for cc argument.
2021-03-11 11:40:46 -05:00
mike cullerton 8bda9889b1 Added a test for the send_email endpoint. 2021-03-11 11:38:34 -05:00
mike cullerton fa028dd517 Modified the email_script workflow to accommodate the changes to the email script.
Workflow now uses keyword arguments; subject, recipients, and cc.
If cc is not passed in, we set it to None.
2021-03-11 11:37:54 -05:00
mike cullerton 78ae719b97 Moved this test to the test_email_script test file. 2021-03-11 11:35:08 -05:00
mike cullerton fa4707811e Removed the test and templates from the unused mails service.
Mails was removed in previous commit.
2021-03-11 11:34:24 -05:00
mike cullerton 67697b5076 Lots of changes!
Email Script:
- The email script now accepts 3 keyword arguments; subject, recipients, and cc.
- Subject and recipients are required.
- Recipients (and cc) can be an email address or list of addresses.
- You can use the string 'associated' in place of an email address, in which case we look up the users associated with a study that have send_email set to True.
- Moved some helper methods to email_service.

Email Service:
- Added cc argument
- Added helper methods previously in email script.
- Modified get_rendered_content to accept message and data directly. Previously, we passed in the task and grabbed them from there. Now we can use the method outside a task.
2021-03-11 11:32:21 -05:00
mike cullerton 80f1fc276f Modify api.tools.send_email to accommodate the changes to the api endpoint in api.yml
We now accept subject, address, body (the email message), and possible data.
We now use email_service to send the message, and wrap it with the CR Connect html formatting.

**** We import DEFAULT_SENDER from config.default. Will this be a problem on testing and production? ****
2021-03-11 11:19:02 -05:00
mike cullerton 14e62a7ec2 Modify the send_email api endpoint (in Configurator Tools section) to accept subject, message, and data.
Subject, address and message are required.
Data is not required.
Message is in the body of the request.
Subject, address, and data are in the query string.
2021-03-11 11:10:10 -05:00
Kelly McDonald d250bac32e Merge remote-tracking branch 'origin/dev' into dev 2021-03-10 10:59:24 -05:00
Kelly McDonald 2ed825aef3 Fixes problem with swtiching users fixes #237 2021-03-10 10:59:15 -05:00
Mike Cullerton eaf52a21ca
Merge pull request #260 from sartography/bug/delete_study
Allows us to delete a study even if there are emails, and associated …
2021-03-09 13:51:25 -05:00
Mike Cullerton 1f32f5fb4d
Merge pull request #259 from sartography/bug/reset_study_when_completely_horked
Sometimes a workflow can be completely broken and unload-able. For ins…
2021-03-09 13:51:14 -05:00
Dan 80ff8a6212 Allows us to delete a study even if there are emails, and associated study users connected to that study. 2021-03-09 13:31:26 -05:00
Dan 576aebab19 Sometimes a workflow can be completely broken and unloadable. For instance, it starts off with a engine step / script task that will not execute. So the failure happens the second it is processed. When calling reset on a workflow, we should catch the failure, and reset the workflow, so we aren't trapped in an unrecoverable state.
To do so, I changed the WorkflowProcessor's reset method to be static, it will try to instantiate the current workflow and execute a cancel_notify event, but if that fails, it will continue and always return a new workflow processor using the latest spec.
2021-03-09 11:52:55 -05:00
mike cullerton 7171219e8b removed unused import 2021-03-09 07:00:20 -05:00
mike cullerton 7749f3aeaf Fixed existing workflows to work with keyword arguments 2021-03-09 06:50:58 -05:00
mike cullerton 8c75217042 Test and workflow for associated user emails 2021-03-09 06:50:20 -05:00
mike cullerton 44ac55bc32 We can now send emails to users associated with a study, by using 'associated' as the recipient
We now use keyword arguments in the email script; subject and recipients
2021-03-09 06:49:39 -05:00
Dan 36dcc58705 Merge branch 'dev' of github.com:sartography/cr-connect-workflow into dev 2021-03-08 14:00:14 -05:00
Dan 291216e081 Fixing a bug that prevented proper evaluation of a enum field where the default value was null or empty. 2021-03-08 14:00:03 -05:00
Dan Funk 6fda6d83c0
Merge pull request #256 from sartography/add-field-to-apierror-229
We now include field.id in the ApiError message for hidden and defaul…
2021-03-08 10:44:31 -05:00
mike cullerton f883eb2bbe We now include field.id in the ApiError message for hidden and default validation. (The field must have a default value or value expression)
While working on this ticket I found a logic error in the test. I expected both default_value and value_expression. It turns out the default_value is always there, it's just null if we don't set it.

Modified the existing test for hidden and required, and added tests to make sure my passing logic is now correct.
2021-03-04 10:42:13 -05:00
Dan Funk 7d97fe107d
Merge pull request #254 from sartography/bug/225_enum_lookup_same_field_name
Bug/225 enum lookup same field name
2021-03-02 14:55:47 -05:00
Dan bf8c0ba86f fixing migration paths (I hope) and fixing a down migration that wasn't working as I attempted to debug. 2021-03-02 14:36:20 -05:00