207 Commits

Author SHA1 Message Date
mike cullerton
d91fa9e095 Don't update task if workflow is locked, hidden, or disabled 2022-05-06 08:49:20 -04:00
mike cullerton
dd2e8ef32f We ran the get_master_spec method twice, instead of using the value in master_spec the second time 2022-04-29 17:36:15 -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
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
3b049e358d Remove unused imports 2022-03-14 12:02:48 -04: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
Dan
a74ae647d6 Do not send cancel events if you are navigating to the current task. 2022-03-02 12:24:03 -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
Dan
f2b6008e5f Fixes 619 - look up models were being built incorrectly, and repeatedly, and sometimes bombed out all together.
bonus: resond with a valid error message when an invalid task_id is requested (don't just 500)
2022-02-17 11:04:50 -05:00
Dan
7a99859108 fixing some failing test 2022-02-11 11:00:42 -05:00
alicia pritchett
3ee95b3c39 gets master spec 2022-02-10 11:29:38 -05:00
Dan
df3f67601c performance improvements. and last rements of load_example_data() 2022-02-09 23:29:39 -05:00
Dan
f12c4aba52 Refactor the workflow_spec_service so it doesn't cache anything, it always reads what it needs from the file system. 2022-02-09 21:06:55 -05:00
Dan
cf71f68ad9 all tests passing!!!!!!!!!!!!! 2022-02-09 15:30:07 -05:00
Dan
2cc20d4b9d really need to avoid any kind of caching in the WorkflowSpecService 2022-02-09 14:43:32 -05:00
alicia pritchett
5bd25b9f60 get all specs change 2022-02-09 11:34:17 -05:00
mike cullerton
1c033ce7f2 Merge branch 'feature/spec_files_wthout_db' of https://github.com/sartography/cr-connect-workflow into feature/spec_files_wthout_db 2022-02-09 10:55:19 -05:00
mike cullerton
9576089e84 Reorder categories 2022-02-09 10:55:02 -05:00
alicia pritchett
8c5f3a8cfb slight model change thing for categories 2022-02-09 10:27:46 -05:00
Dan
25ecc1593a test_workflow_spec_api passing. 2022-02-08 13:35:27 -05:00
Dan
6c0e38c0a5 Merge branch 'feature/spec_files_wthout_db' of github.com:sartography/cr-connect-workflow into feature/spec_files_wthout_db 2022-02-08 11:31:56 -05:00
Dan
dc040f190e got one more test to work. 2022-02-08 11:30:13 -05:00
alicia pritchett
38c30adbfc i think this fixes adding and removing libraries to a spec 2022-02-08 11:27:20 -05:00
alicia pritchett
7b031c26dc small change to libraries in workflow.py 2022-02-08 10:06:20 -05:00
alicia pritchett
aa9807a543 heres the categories 2022-02-07 15:45:09 -05:00
Dan
1d7ecad51f Merge branch 'feature/spec_files_wthout_db' of github.com:sartography/cr-connect-workflow into feature/spec_files_wthout_db 2022-02-07 14:58:42 -05:00
Dan
4b8d193fb9 a few more tests passing 2022-02-07 14:58:25 -05:00
alicia pritchett
d4b04f5b80 fixes the import thing for real 2022-02-07 14:10:10 -05:00
Dan
056f901f9a WIP - its just caos right now. 2022-02-07 12:59:48 -05:00
alicia pritchett
2a6578b785 fixed workflow.py 2022-02-07 12:10:57 -05:00
alicia pritchett
66906c3786 fix a couple things 2022-02-07 10:57:34 -05:00
alicia pritchett
699d0ab797 updated method calls in workflow.py
except for reordering
2022-02-04 15:31:36 -05:00
alicia pritchett
2fb6746f6b new methods 2022-02-04 14:45:52 -05:00
Dan
6765afbd02 WIP - Move the categories and specifications out of the database. 2022-02-04 13:51:39 -05:00
Dan
4ec6e403f5 1. Created a UserFileService, so it's clear what we use when for File Services, UserFiles, SpecFiles, and ReferenceFiles each function differently.
2. Reference Files and Spec Files are written to disk, they do not exist in the database at all.
2022-02-02 12:59:56 -05:00
Dan
962d05c875 1. Created a TaskLoggingService to encapsulate what we are doing with Task Logging through BPMN Script calls and API calls from the front end.
2. Added two api endpoints that will allow us to get all the logs for a specific workflow or study.
3. Assured that requests for logs are paginated, sortable, and can be limited to a specific code if needed.
4. Assure that we only use logging levels that match the log levels of Python.
2022-01-10 13:16:54 -05:00
Dan
c83b047881 Fixing some bugs I introduced with the latest fix. 2021-12-21 16:22:41 -05:00
Dan
f129509802 Looks like reording the deletes allows us to remove workflow specs a little easier. Tested this with libraries, and seems to work ok. 2021-12-20 14:36:45 -05:00
Dan
421e4fd9aa Fixes related to resent commit to SpiffWorkflow that provides better handling for workflows that loop back on themselves. 2021-12-15 16:00:31 -05:00
mike cullerton
daebf42a30 Move some of the work in crc.api.workflow.delete_workflow_specification to separate workflow_service methods
Added a session.commit to `delete_workflow_spec_task_events`
2021-12-13 11:04:28 -05:00
Dan
4a1285b8e0 When validating a workflow, don't run the master workflow multiple times, its a huge waste of time.
Provide decent data when calling get_study_associate(s) scripts.
2021-11-22 17:17:19 -05:00
Dan
4d1f4429ff Fixing a bug in enum_label that was not working when lookup up an select list from a spreadsheet.
Assure we raise more thoughtful error messages when running getting exceptions in engine tasks.
Field Options should always be available now due to a fix in Spiffworkflow.
2021-11-22 12:26:30 -05:00
alicia pritchett
702b8eaed6 add ldap endpoint that doesnt require workflow info 2021-10-28 16:19:39 -04:00
Dan
5429e7da7d All enumerated lists used in web forms should contain a single value, not a dictionary of value/labels.
Removing the spreadsheet.value.column and data.value.column so we just have value.column for both.
Improving the __str__ function in the ApiError class, to make debugging a little easier.
Adding a "validate_all" flask command, to help us track down any issues with current workflows in production (use this in concert with sync_with_testing)
Fixed logs of tests.
removed fact_runner.py, a very early and crufty bit of code.
2021-10-19 10:13:43 -04:00
Dan
84680ea846 Fixing multiple issues that came out of Study Info, as we debugged issue #474 related to navigating back to a previous task.
There was a problem with the python script engine as well that wasn't handling the de-serialize properly and didn't correctly pick back up on the script engine, and the renaming of methods in PythonScriptEngine created some conflicts with the way we override functions.
We were not handling ldap looks up efficiently, and this was also breaking in Study Info.

Finally we had a bug in SpiffWorkflow that did not allow us to reset back to the previous task in some cases where nested call activities happen far later in the process and are currently active when the reset is created.
2021-10-06 12:17:57 -04:00