2022-09-16 21:04:45 +00:00
|
|
|
"""Grabs tickets from csv and makes process instances."""
|
|
|
|
import os
|
|
|
|
|
2022-09-16 22:22:10 +00:00
|
|
|
from lxml.etree import Element as EtreeElement
|
|
|
|
|
2022-09-16 21:04:45 +00:00
|
|
|
from spiffworkflow_backend import create_app
|
|
|
|
from spiffworkflow_backend.services.process_model_service import ProcessModelService
|
|
|
|
from spiffworkflow_backend.services.spec_file_service import SpecFileService
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
"""Main."""
|
|
|
|
os.environ["FLASK_ENV"] = "development"
|
|
|
|
flask_env_key = "FLASK_SESSION_SECRET_KEY"
|
|
|
|
os.environ[flask_env_key] = "whatevs"
|
|
|
|
home = os.environ["HOME"]
|
2022-09-16 22:22:10 +00:00
|
|
|
os.environ[
|
|
|
|
"BPMN_SPEC_ABSOLUTE_DIR"
|
|
|
|
] = f"{home}/projects/github/sartography/sample-process-models"
|
2022-09-16 21:04:45 +00:00
|
|
|
app = create_app()
|
|
|
|
with app.app_context():
|
|
|
|
no_primary = []
|
|
|
|
process_models = ProcessModelService().get_process_models()
|
|
|
|
for process_model in process_models:
|
|
|
|
if process_model.primary_file_name:
|
2022-09-16 22:22:10 +00:00
|
|
|
files = SpecFileService.get_files(
|
|
|
|
process_model, extension_filter="bpmn"
|
|
|
|
)
|
2022-09-16 21:04:45 +00:00
|
|
|
if len(files) == 1:
|
|
|
|
# print(f"primary_file_name: {process_model.primary_file_name}")
|
|
|
|
bpmn_xml_file_contents = SpecFileService.get_data(
|
|
|
|
process_model, process_model.primary_file_name
|
|
|
|
)
|
2022-09-16 22:22:10 +00:00
|
|
|
bpmn_etree_element: EtreeElement = (
|
|
|
|
SpecFileService.get_etree_element_from_binary_data(
|
|
|
|
bpmn_xml_file_contents, process_model.primary_file_name
|
|
|
|
)
|
|
|
|
)
|
|
|
|
try:
|
|
|
|
new_bpmn_process_identifier = (
|
|
|
|
SpecFileService.get_bpmn_process_identifier(
|
|
|
|
bpmn_etree_element
|
|
|
|
)
|
|
|
|
)
|
|
|
|
if (
|
|
|
|
process_model.primary_process_id
|
|
|
|
!= new_bpmn_process_identifier
|
|
|
|
):
|
|
|
|
print(
|
|
|
|
"primary_process_id: ", process_model.primary_process_id
|
|
|
|
)
|
|
|
|
# attributes_to_update = {
|
|
|
|
# "primary_process_id": new_bpmn_process_identifier
|
|
|
|
# }
|
|
|
|
# ProcessModelService().update_spec(
|
|
|
|
# process_model, attributes_to_update
|
|
|
|
# )
|
|
|
|
# SpecFileService.update_file(process_model, process_model.primary_file_name, bpmn_xml_file_contents)
|
|
|
|
# except Exception as exception:
|
|
|
|
except Exception:
|
|
|
|
print(f"BAD ONE: {process_model.id}")
|
|
|
|
# raise exception
|
2022-09-16 21:04:45 +00:00
|
|
|
else:
|
|
|
|
no_primary.append(process_model)
|
2022-09-16 22:22:10 +00:00
|
|
|
# for bpmn in no_primary:
|
|
|
|
# print(bpmn)
|
2022-09-16 21:04:45 +00:00
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
main()
|