392 Commits

Author SHA1 Message Date
Dan Funk
2424b9d78c Don't overwrite the approval, just allow minor changes. 2020-06-02 19:36:06 -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
a78db8834c
Merge pull request #99 from sartography/feature/sentry
Enabling Sentry for boxes with the flag set
2020-06-02 06:28:06 -04:00
Dan Funk
d0918e9ed3
Merge pull request #98 from sartography/fix/approvals-info
Approval info addition
2020-06-02 06:26:56 -04:00
Carlos Lopez
95a3b22bf0 Enabling Sentry for boxes with the flag set 2020-06-01 19:59:55 -06:00
Dan Funk
c2a1b0175a Tweaks to approvals 2020-06-01 21:49:30 -04:00
Carlos Lopez
3c2849f40d Approval info addition 2020-06-01 15:29:59 -06:00
Aaron Louie
51accc350c Updates doc template 2020-06-01 13:37:44 -04:00
Aaron Louie
885ce5668e Updates RRT workflow spec files 2020-06-01 13:29:57 -04:00
Dan Funk
c790737bf0 The complete_template script might not grab the correct document when validating, fixed.
Updated to latest RRT files, and passing.
2020-06-01 12:33:58 -04:00
Dan Funk
b6bf843f6e used 'name' rather than 'value' in the lookup options during validation, causing a disconnect with how this is processed on the front end. 2020-06-01 11:00:56 -04:00
Aaron Louie
7c8b7829ea Merge branch 'rrt/dev' into feature/approvals_enhancements 2020-06-01 00:41:51 -04:00
Aaron Louie
1702ab2576 Fixes decision tables that were causing failing tests 2020-06-01 00:36:25 -04:00
Aaron Louie
ea441dbff5 More updates 2020-06-01 00:28:37 -04:00
Aaron Louie
8092bbe682 Wrong file in wrong place. 2020-06-01 00:17:20 -04:00
Aaron Louie
7351dc4a43 Updates RRT workflow spec files for reals this time 2020-06-01 00:14:09 -04:00
Aaron Louie
2d5eb740ef Updates RRTworkflow spec files 2020-06-01 00:07:50 -04:00
Carlos Lopez
bec11980eb Fixing broken test by using proper FileSchema 2020-05-31 22:00:52 -06:00
Carlos Lopez
b2e56f797b Converting ApprovalModel to Approval in order to serialize properly the result 2020-05-31 21:02:47 -06:00
Aaron Louie
cd16b984e0 Adds workflow spec title to workflow api schema 2020-05-31 22:46:56 -04:00
Aaron Louie
f0bd8d4f9e Adds approvals to study schema. Adds approvals endpoint 2020-05-31 22:46:32 -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
Carlos Lopez
dd6c1d2b42 Renaming approval files 2020-05-31 18:16:42 -06:00
Carlos Lopez
2e54f07095 Adding more info to files and renaming approval waiting status 2020-05-31 17:24:23 -06:00
Carlos Lopez
26809d1470 Waiting status renaming 2020-05-31 13:35:42 -06:00
Dan Funk
2bc735a3f0 Kelly wrote a beautiful method for resetting the workflow that doesn't loose data when reset inside a parallel task, all I needed to do was use it.
Catching TypeErrors and reporting them back to the UI so we don't 500 in a bad way (but we still 500)
2020-05-31 13:48:00 -04: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
d51fbe51e0 Merge branch 'dev' of github.com:sartography/cr-connect-workflow into dev 2020-05-29 15:18:41 -04:00
Dan Funk
4e4cc7884c Better ldap searching. 2020-05-29 15:17:51 -04:00
Aaron Louie
34b812b74e Updates RRT workflow spec files 2020-05-29 10:49:47 -04:00
Dan Funk
895d2f8852 Slight change to the way the approval model is connected. 2020-05-29 05:04:18 -04:00
Dan Funk
0ba2819867 Merge branch 'dev' into feature/approval_request_script 2020-05-29 04:51:50 -04:00
Dan Funk
afb6be7c60 re-working the way the redirects function, so we pass arguments as a get parameter. Just trying to get rid of the weird lag on production.
I noticed the validation sometimes looks ahead for files, so looking at all the tasks now, not just the ready tasks for the lookup field.
Ran into an issue with validation where a workflow model was required, so I create one and delete it.  Another refactor for another day.
2020-05-29 04:42:48 -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
aea78de066 Merge remote-tracking branch 'origin/dev' into feature/file_refactor_part2 2020-05-28 20:06:32 -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
Aaron Louie
dedec02d48 Updates RRT workflow spec files 2020-05-28 10:43:03 -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
Aaron Louie
97cdbfce94 Deletes extra line break 2020-05-27 23:48:48 -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
Carlos Lopez
54640988a7 Update endpoint fixes 2020-05-27 12:06:32 -06:00
Dan Funk
d5e075db82 Order search results by relevancy in the lookup service. 2020-05-27 09:47:44 -04:00
Dan Funk
397cb23b52 Is true "true", yes it is true. So true, is "false", so true, it is true. 2020-05-26 23:38:57 -04:00
Dan Funk
0025931a2e Trying hard to figure out why the DCOS servers think the protocol builder is enabled. 2020-05-26 23:18:14 -04:00