FileModel => DocumentModel

This commit is contained in:
mike cullerton 2022-04-13 08:15:23 -04:00
parent b732fee675
commit 216c15ed1c
3 changed files with 16 additions and 19 deletions

View File

@ -1,7 +1,7 @@
from crc import session from crc import session
from crc.api.common import ApiError from crc.api.common import ApiError
from crc.models.data_store import DataStoreModel from crc.models.data_store import DataStoreModel
from crc.models.file import FileModel from crc.models.file import DocumentModel
from crc.models.task_event import TaskEventModel from crc.models.task_event import TaskEventModel
from crc.scripts.script import Script from crc.scripts.script import Script
from crc.services.document_service import DocumentService from crc.services.document_service import DocumentService
@ -38,14 +38,14 @@ class DeleteTaskData(Script):
TaskEventModel.study_id == study_id).filter(TaskEventModel.task_name == task_spec_name).filter_by( TaskEventModel.study_id == study_id).filter(TaskEventModel.task_name == task_spec_name).filter_by(
action=WorkflowService.TASK_ACTION_COMPLETE).delete() action=WorkflowService.TASK_ACTION_COMPLETE).delete()
files_to_delete = session.query(FileModel). \ files_to_delete = session.query(DocumentModel). \
filter(FileModel.workflow_id == workflow_id). \ filter(DocumentModel.workflow_id == workflow_id). \
filter(FileModel.task_spec == task_spec_name).all() filter(DocumentModel.task_spec == task_spec_name).all()
# delete files # delete files
for file in files_to_delete: for file in files_to_delete:
UserFileService().delete_file(file.id) UserFileService().delete_file(file.id)
# delete the data store # delete the data store
session.query(DataStoreModel). \ # session.query(DataStoreModel). \
filter(DataStoreModel.file_id == file.id).delete() # filter(DataStoreModel.file_id == file.id).delete()

View File

@ -1,7 +1,7 @@
from crc import session from crc import session
from crc.api.common import ApiError from crc.api.common import ApiError
from crc.api.file import to_file_api from crc.api.file import to_file_api
from crc.models.file import FileModel, FileDataModel, FileSchema from crc.models.file import DocumentModel, FileSchema
from crc.scripts.script import Script from crc.scripts.script import Script
from crc.services.study_service import StudyService from crc.services.study_service import StudyService
@ -36,7 +36,7 @@ class GetZippedFiles(Script):
zip_filename = 'attachments.zip' zip_filename = 'attachments.zip'
file_ids = kwargs['file_ids'] file_ids = kwargs['file_ids']
files = session.query(FileModel).filter(FileModel.id.in_(file_ids)).all() files = session.query(DocumentModel).filter(DocumentModel.id.in_(file_ids)).all()
if files: if files:
# Create a temporary zipfile with the requested files # Create a temporary zipfile with the requested files
with tempfile.NamedTemporaryFile() as temp_file: with tempfile.NamedTemporaryFile() as temp_file:
@ -44,8 +44,8 @@ class GetZippedFiles(Script):
for file in files: for file in files:
zip_key_words = doc_info[file.irb_doc_code]['zip_key_words'] zip_key_words = doc_info[file.irb_doc_code]['zip_key_words']
file_name = f'{study_id} {zip_key_words} {file.name}' file_name = f'{study_id} {zip_key_words} {file.name}'
file_data = session.query(FileDataModel).filter(FileDataModel.file_model_id == file.id).first() # file_data = session.query(FileDataModel).filter(FileDataModel.file_model_id == file.id).first()
zfw.writestr(file_name, file_data.data) zfw.writestr(file_name, file.data)
with open(temp_file.name, mode='rb') as handle: with open(temp_file.name, mode='rb') as handle:
if 'doc_code' in kwargs: if 'doc_code' in kwargs:

View File

@ -1,6 +1,6 @@
from crc import session from crc import session
from crc.api.common import ApiError from crc.api.common import ApiError
from crc.models.file import FileModel, FileDataModel from crc.models.file import DocumentModel
from crc.scripts.script import Script from crc.scripts.script import Script
from io import BytesIO from io import BytesIO
@ -44,19 +44,16 @@ class ModifySpreadsheet(Script):
parameters = self.get_parameters(args, kwargs) parameters = self.get_parameters(args, kwargs)
if len(parameters) == 3: if len(parameters) == 3:
spreadsheet = session.query(FileModel). \ spreadsheet = session.query(DocumentModel). \
filter(FileModel.workflow_id == workflow_id). \ filter(DocumentModel.workflow_id == workflow_id). \
filter(FileModel.irb_doc_code == parameters['irb_doc_code']).\ filter(DocumentModel.irb_doc_code == parameters['irb_doc_code']).\
first() first()
if spreadsheet: if spreadsheet:
spreadsheet_data = session.query(FileDataModel).\ workbook = load_workbook(BytesIO(spreadsheet.data))
filter(FileDataModel.file_model_id==spreadsheet.id).\
first()
workbook = load_workbook(BytesIO(spreadsheet_data.data))
sheet = workbook.active sheet = workbook.active
sheet[parameters['cell']] = parameters['text'] sheet[parameters['cell']] = parameters['text']
data_string = save_virtual_workbook(workbook) data_string = save_virtual_workbook(workbook)
spreadsheet_data.data = data_string spreadsheet.data = data_string
session.commit() session.commit()
else: else:
raise ApiError(code='missing_spreadsheet', raise ApiError(code='missing_spreadsheet',