263 Commits

Author SHA1 Message Date
Kelly McDonald
1844c93919 STG-26 - basic test case for a looping task
Criteria :
task.multi_instance_type == 'looping'

to terminate, use the standard endpoint for submitting form data with a query variable of terminate_loop=true

Will likely need two buttons:
"Submit and quit"
"Submit and add another"
or something similar
2020-06-17 11:35:06 -04:00
Kelly McDonald
0d3105fe7e Make changes to the workflow names so that they are placed in the correct order - I made workflows go in order of the name rather than in the order they appear in the XML to allow more control over the way the nav list is displayed. 2020-06-15 12:32:19 -04:00
Aaron Louie
e3126620b3 Eschews obfuscation 2020-06-12 14:09:08 -04:00
Aaron Louie
561e254315 Prevents non-admin users from editing each others' tasks. Fixes bug where test user uid was not being set from token. Moves complete form and get workflow API test utility methods into BaseTest. 2020-06-12 13:46:10 -04:00
Aaron Louie
691258a4fb Fixes bug where approvals counts were off by 1. Tests CSV export and all approvals endpoints with lots of records. 2020-06-11 17:15:44 -04:00
Aaron Louie
f51e5e4e6b Adds tests for approval counts and all approvals endpoints 2020-06-11 16:39:00 -04:00
Aaron Louie
768f14b3ac Cleans up console logging 2020-06-11 13:42:44 -04:00
Aaron Louie
0cbbe756a3 Tests for token expiration ApiError 2020-06-11 13:42:32 -04:00
Dan Funk
4e006e2653 Clear out the g.user between tests. 2020-06-11 11:49:07 -04:00
Aaron Louie
cccff9b856 Fixes broken unit tests. But still broken. 2020-06-11 11:29:58 -04:00
Aaron Louie
1f5554d0d8 Merge branch 'rrt/dev' into feature/swagger_admin_authentication 2020-06-11 08:55:29 -04:00
Aaron Louie
87e2379871 Merge branch 'rrt/dev' into feature/swagger_admin_authentication 2020-06-08 10:30:16 -04:00
Aaron Louie
af1c848f65 Merge branch 'rrt/dev' into rrt/testing 2020-06-07 19:57:09 -04:00
Dan Funk
213d3f3501 Merge branch 'feature/better_approval_status' into rrt/dev 2020-06-05 19:11:16 -04:00
Dan Funk
6861991d8f Allow setting the type of approvals you want back, by status.
Some very minor performance enhancements, that will add up on the Approvers page.
2020-06-05 17:49:55 -04:00
Carlos Lopez
57a7c7fa54 Approve/deny fixes 2020-06-05 13:39:52 -06:00
Carlos Lopez
16ca4fa2c0 Merge branch 'rrt/dev' into feature/mail-system 2020-06-05 12:35:05 -06:00
Carlos Lopez
a6758fd555 Removing deprecation warnings 2020-06-05 12:08:46 -06:00
Carlos Lopez
4fc1b51cbc Approve/denied emails 2020-06-05 12:08:31 -06:00
Carlos Lopez
4727d87adb Hooking up emails into process - start 2020-06-04 20:37:28 -06:00
Dan Funk
fed6e86f92 Trying to fix LDAP issues on production. Changing LDAP to static only methods, caching the connection and calling bind before all connection requests.
Also assuring we don't load the documents.xls file over and over again.
2020-06-04 14:59:36 -04:00
Dan Funk
1324533865 Some additional cleanup - when a file is "archived" it is no longer returned for any endpoints about files, but it
is directly accessible via id, in the event some request is made for it at a later date.
2020-06-04 09:49:42 -04:00
Carlos Lopez
f581bd9f2b Mails for approval process 2020-06-04 00:35:59 -06:00
Dan Funk
217ecfc911 When you can't delete a file, mark it as archived. Don't include archived files in new approval requests. 2020-06-03 17:34:27 -04:00
Dan Funk
4bf13b0718 Doing everything I can imagine to get a CSV dump out tomorrow. 2020-06-02 22:01:49 -04:00
Dan Funk
e7c130054d Fixing a test. 2020-06-02 20:07:56 -04:00
Dan Funk
c7484267e1 For the main approval endpoints - we now group the approvals by study. So you get one record back for each study, but it may have other approvals along with it as "related_approvals".
We now cache the LDAP records - so we look in our own database for the record before calling out to ldap for the details when given a straight up computing id like dhf8r.

Added "date_approved" to the approval model.

And moved the approver and primary investigator into real associated models to make it easier to dump.

Fixed a problem with the validation that was causing it to throw incorrect errors on valid workflows. Getting it to behave a little more like the front end behaves, and respecting the read-only fields.  But it was mainly to do with always returning all the data with each form submission.
2020-06-02 18:17:00 -04:00
Dan Funk
59e91ec414 Don't add an empty approval record. 2020-06-02 08:35:19 -04:00
Dan Funk
d8329e9eff I completely missed pushing up my changes last night before handing back over to Carlos. Sorry about that.
Added checks to assure the approver matches g.uid of the current user - otherwise don't modify the approval record.
2020-06-02 07:43:19 -04:00
Dan Funk
4090667a5d Missed committing a pile of changes last night. 2020-06-02 07:08:29 -04:00
Dan Funk
c2a1b0175a Tweaks to approvals 2020-06-01 21:49:30 -04:00
Carlos Lopez
bec11980eb Fixing broken test by using proper FileSchema 2020-05-31 22:00:52 -06:00
Aaron Louie
311e180c65 Comments out failing test for now. Adds a placeholder test for study approvals 2020-05-31 23:16:14 -04:00
Dan Funk
9c7de39b09 This adds additional file data details to the study model as well. 2020-05-31 21:15:40 -04:00
Aaron Louie
c4a84ac509 Work in progress: Trying to get Swagger to use verify_token_admin to protect admin endpoints. Not working for some reason, though. 2020-05-31 18:01:08 -04:00
Dan Funk
73137d0858 If an assertion fails, the tests stop at that point, never reaching the last line in the test. You have to handle any tear down, in the tearDown method. 2020-05-31 17:18:07 -04:00
Aaron Louie
be9b613bbb Refactors user authentication endpoints so we can use the Swagger UI in production mode 2020-05-31 16:49:39 -04:00
Carlos Lopez
26809d1470 Waiting status renaming 2020-05-31 13:35:42 -06:00
Dan Funk
98fb305868 Run the validation process twice, each time it is requested, first populating everything, and then a second time
using on the required form fields.
2020-05-30 18:43:20 -04:00
Dan Funk
1f0e8741ba Run the validation twice, once completing all of the data, and a second time, completing only the required fields.
Also, add a helper method to reduce boiler plate code around Workflow Exceptions.
2020-05-30 17:26:27 -04:00
Dan Funk
860c475b29 Fill out repeating sections during validation process.
Also, when returning error messages, attempt to include the task data for the task that caused the error.
Also, when attempting to delete any file, respond with an API error explaining the issue, and log the details.
2020-05-30 15:37:04 -04:00
Dan Funk
5046d3a669 Committed a stupid. 2020-05-29 15:20:22 -04:00
Dan Funk
4e4cc7884c Better ldap searching. 2020-05-29 15:17:51 -04:00
Dan Funk
0ba2819867 Merge branch 'dev' into feature/approval_request_script 2020-05-29 04:51:50 -04:00
Dan Funk
11413838a7 Faster lookup fields. We were parsing the spec each time to get details about how to search. We're just grabbing the workflow id and task id now and building that straight into the full text search index for faster lookups. Should be peppy.
Another speed improvement - data in the FileDataModel is deferred, and not queried until it is specifically used, as the new data structures need to use this model frequently.
2020-05-29 01:39:39 -04:00
Dan Funk
dba41f4759 Ludicrously stupid launch in a refactor of the way all files work in the system at a time where I crave sleep and peace above all other things.
Added a File class, that we wrap around the FileModel so the api endpoints don't change, but File no longer holds refences to versions or dates of the file_data model, we
figure this out based on a clean database structure.

The ApprovalFile is directly related to the file_data_model - so no chance that a reviewer would review the incorrect version of a file.py

Noticed that our FileType enum called "bpmn" "bpmm", hope this doesn't screw someone up.

Workflows are directly related to the data_models that create the workflow spec it needs.  So the files should always be there.  There are no more hashes, and thus no more hash errors where it can't find the files to rebuild the workflow.py

Not much to report here, other than I broke every single test in the system at one point.  So I'm super concerned about this, and will be testing it a lot before creating the pull request.
2020-05-28 20:03:50 -04:00
Carlos Lopez
41b26e28bd Merge branch 'dev' into feature/approval_request_script 2020-05-28 08:11:31 -06:00
Dan Funk
cd7f67ab48 A major refactor of how we search and store files, as there was a lot of confusing bits in here.
From an API point of view you can do the following (and only the following)

/files?workflow_spec_id=x
* You can find all files associated with a workflow_spec_id, and add a file with a workflow_spec_id
/files?workflow_id=x
* You can find all files associated with a workflow_id, and add a file that is directly associated with the workflow
/files?workflow_id=x&form_field_key=y
* You can find all files associated with a form element on a running workflow, and add a new file.
   Note: you can add multiple files to the same form_field_key, IF they have different file names. If the same name, the original file is archived,
   and the new file takes its place.

The study endpoints always return a list of the file metadata associated with the study.  Removed /studies-files, but there is an
endpoint called

/studies/all  - that returns all the studies in the system, and does include their files.

On a deeper level:
 The File model no longer contains:
  - study_id,
  - task_id,
  - form_field_key

Instead, if the file is associated with workflow - then that is the one way it is connected to the study, and we use this relationship to find files for a study.
A file is never associated with a task_id, as these change when the workflow is reloaded.
The form_field_key must match the irb_doc_code, so when requesting files for a form field, we just look up the irb_doc_code.
2020-05-28 08:27:26 -04:00
Dan Funk
560263d1a3 Missed another test. 2020-05-27 14:45:00 -04:00
Dan Funk
77f72e408f Lookup Service now raises exact matches to the top. Very hackish, but it works. 2020-05-27 14:36:10 -04:00