577 Commits

Author SHA1 Message Date
mike cullerton
bc4109a9d0 Add include_archived parameter to get_document_directory api endpoint 2022-04-22 13:35:14 -04:00
mike cullerton
430addc33d delete_file method no longer static 2022-04-20 16:26:05 -04:00
mike cullerton
cf68367085 remove unused code
cleanup imports
2022-04-20 11:16:07 -04:00
mike cullerton
c616a7b621 remove api/file_refactor.py 2022-04-20 10:40:24 -04:00
mike cullerton
fea9c969c2 document => file
file_refactor => file
2022-04-20 10:39:19 -04:00
mike cullerton
89a2650cc8 Put api endpoints back into api/file.py 2022-04-20 10:34:56 -04:00
mike cullerton
9a3c071223 DocumentModel => FileModel
document_id => file_id
2022-04-19 15:12:56 -04:00
mike cullerton
fb5731ff23 Merge branch 'dev' into file-refactor-705
# Conflicts:
#	crc/scripts/delete_task_data.py
#	crc/services/workflow_processor.py
#	tests/base_test.py
#	tests/files/test_delete_task_data.py
2022-04-19 08:19:52 -04:00
mike cullerton
afb11d2b6d form_field_key => irb_doc_code 2022-04-19 07:42:29 -04:00
mike cullerton
1398cb03f7 from_models => from_document_model 2022-04-19 07:36:46 -04:00
mike cullerton
4a4d74c801 file_id => document_id 2022-04-18 16:40:40 -04:00
Dan
5e54c90b47 "Reset" should not mean "re-start". Calling the reset_workflow script will now set the workflow to an "unstarted" state with no outstanding tasks, no json-state structure stored. The workflow is not yet running.
Also:
* Assured that arguments are consistent (we always seem to use workflow_spec_id, so I made sure we use that consistently.
* Don't require named parameters - so it's cool to call it like: reset_workflow('my_workflow_id')
* Task Actions (ie create, assign, etc...) are now an enumeration in the models, and not static variables on Workflow Service, so we can reference them consistently from anywhere.
* Removed some repetitive code
* Always try to validate as much as possible in the scripts to save folks time debugging.
*
2022-04-15 15:36:23 -04:00
mike cullerton
9097851ae1 We now store type as a string, not an Enum 2022-04-15 10:23:00 -04:00
mike cullerton
aa52b7b790 FileSchemaRefactor => FileSchema 2022-04-12 13:39:48 -04:00
mike cullerton
09e259f554 Moved file api methods to file_refactor
This is temporary
Not sure where they will end up
2022-04-12 13:31:33 -04:00
mike cullerton
89ab55ce6b Removed unused imports 2022-04-12 13:28:49 -04:00
mike cullerton
556af3c425 Removed FileModel, FileDataModel imports
Added DocumentModel
2022-04-12 13:28:04 -04:00
Dan
befc299475 Merge branch 'dev' into chore/fix_validation_errors 2022-03-19 09:53:12 -04:00
Dan
e44ea6e13c merging in from dev. 2022-03-18 16:22:33 -04:00
mike cullerton
eaf8dace97 Process categories in get_study api call 2022-03-18 16:05:01 -04:00
Dan Funk
52c1f2f919
Merge pull request #498 from sartography/staging-500-error
Staging 500 error
2022-03-18 15:53:41 -04:00
Dan Funk
08e116515b
Merge pull request #496 from sartography/bug/cancel-notify-668
Fixes #668 - Cancel/Notify Called when loading last task
2022-03-18 15:31:18 -04:00
Dan
b7489aea43 merging in PI Name changes from Alicia's #499 PR. 2022-03-18 12:30:20 -04:00
alicia pritchett
b9b8210f8a rm pi id refs 2022-03-18 12:04:20 -04:00
Dan
ef5aca4fe4 ReviewType now comes back with the user studies, so we don't need to make an additional query to get it. 2022-03-18 09:59:10 -04:00
mike cullerton
276924960b Merge branch 'dev' into chore/fix_validation_errors 2022-03-18 08:36:03 -04:00
alicia pritchett
9b1a7ff286 Fixes #668 - Cancel/Notify Called when loading last task
don't call cancel notify if its an end event
2022-03-17 10:58:25 -04:00
mike cullerton
9a345da763 typo 2022-03-16 16:54:36 -04:00
alicia pritchett
5b7e71d42d meta field for categories 2022-03-16 12:49:35 -04:00
Dan
1506952df7 task_trace was a little mixed up in the errors. 2022-03-16 10:18:50 -04:00
alicia pritchett
37d92c6a5f WIP ~ adding a category metadata object 2022-03-15 10:49:41 -04:00
Dan Funk
791ab20f8c
Merge pull request #494 from sartography/chore/fix_validation_errors
Chore/fix validation errors
2022-03-14 16:51:27 -04:00
Dan
483d7e858b Improved Errors - Pick up on the new task_trace information in WorkflowException and pass it on through the api.
Also:  All script tasks should raise WorkflowTaskExecExceptions - NOT APIExceptions - this is because our scripts are executed by Spiff (not the other way around)  so the errors need to pass fluidly through spiff, and come back to use THEN we can convert them to APIErrors.  Otherwise we lose all kinds of good information about the error.
2022-03-14 16:00:53 -04:00
mike cullerton
3b049e358d Remove unused imports 2022-03-14 12:02:48 -04:00
Dan
2fc4b44ef3 Create a path to directly download the spreadsheet file (and avoid the weird dance on the front end of making an API call to get file data.)
Fixing pagination.  Seems the front end uses a page_index that is 0 based, and sqlAlchemy prefers to start at 1.
2022-03-12 16:19:07 -05:00
mike cullerton
b753f06394 Changes to remove pagination for the get_logs scripts.
We only use pagination for the get_logs_for_study API endpoint. (Used on the study page)
2022-03-11 14:03:09 -05:00
mike cullerton
1bfe656817 Remove unused API endpoint to get logs for a workflow.
We have a script for this that is used (in workflows)
We do use the API endpoint to get logs for a study. (On the study page)
2022-03-11 14:01:06 -05:00
mike cullerton
2224e34a94 Remove unused imports
Finish up download_logs_for_study
2022-03-10 12:10:54 -05:00
mike cullerton
bf31364b1f *** WIP ***
Committing to fix logging so we can use a level of 'metrics'
2022-03-09 13:07:56 -05:00
Dan
0a906a4b3c Cleaning up Print Statements (it was making it hard to see what was happening)
The Jinja2 service was treating all the task data as a possible template, modified it to only include the referenced templates.
(This turned out not to be the problem, but it seems like a good idea to keep it in place)
There is a terrible bug with the wordwrap pipe that will die without any details if you pass it a value of None.  We now cature the terrible error, and replace it with a sensible one.
Removed an unused Jinja_extensions file.
2022-03-08 15:46:36 -05:00
Dan
0455506e2b Loading latest chages from Spiff whic refactored the way the PythonExpressionEngine works.
This cleans up the _evaluate method which previously accepted arbitrary args and kwargs, and now requires an expression, a context to which exectute it, and, optionally, the current task being executed if the DMN is being executed as a part of a BusinessRuleTask in a BPMN diagram.

This also cleans up several bits of duplicated code.

There is also a bit of code here to assure that the current user is included when running the master workflow.
2022-03-04 15:34:36 -05:00
Dan
a74ae647d6 Do not send cancel events if you are navigating to the current task. 2022-03-02 12:24:03 -05:00
Dan
91ed50e45e Be sure we update the document list when new workflow documents are added. 2022-02-28 15:49:21 -05:00
Dan
ad17db067d mild little performance improvement. 2022-02-27 19:32:45 -05:00
Dan
ebbb04a1af Fixing failing validation. 2022-02-27 10:00:44 -05:00
Dan Funk
140de7ed03
Merge pull request #473 from sartography/nonetype-displayname-error-632
Nonetype displayname error #632
2022-02-25 15:41:14 -05:00
mike cullerton
531802f927 Make sure we don't try to get WorkflowMetadata if the spec does not exist
This was raising a 500 error
2022-02-25 14:41:58 -05:00
Dan
dde8873c9e 1. defer the loading of the bpmn_json when loading the workflow model. It can be stupidly larger. (see models/workflow.py)
2. Shave a little more time off the reset by not re-creating the whole WorkflowProcessor

cleaning up all the firsttime/sincetime statements.
2022-02-24 20:56:57 -05:00
Dan
3442655bd1 Performance Improvements:
1. Avoid ever re-generating the list of scripts that can be used in a script task.  Terribly expensive as we call eval constantly, and it never ever changes once the app starts. (see script.py changes, and comments)
2. Cache the DocumentStatus list in the flask session, so we calculate it at most once per API Call.  It's at least .25 seconds per call.  (see study_sevice)
3. We called UserFileService.get_files_for_study (which runs a db query EVERY time) for every possible document type.  Now we run the query once (study service line 321)
4. When returning a workflow, we looped through every single task in that workflow's navigation, and called the expensive spiff_task_to_api_task just to figure out it's proper display name. We run a much faster and more efficient method to calculate the display name naow (see workflow_service on lie 680, and 799)
5. A hellton of @timeit and sincetime() calls, that I want to leave in, to help debug any slowness on production.
2022-02-24 14:25:42 -05:00
Dan
b72ecb8375 Another re-work to fix 619 - and to assure that we aren't rebuilding the lookup tables too frequently. 2022-02-17 11:59:48 -05:00