FileModel => DocumentModel

Also, type is no longer an Enum field, no need to grab type.value
This commit is contained in:
mike cullerton 2022-04-12 13:44:58 -04:00
parent 0c313f44b2
commit 3be67a8bd9
2 changed files with 14 additions and 11 deletions

View File

@ -2,7 +2,7 @@ from SpiffWorkflow.exceptions import WorkflowTaskExecException
from crc import session
from crc.api.common import ApiError
from crc.models.file import FileModel
from crc.models.file import DocumentModel
from crc.scripts.script import Script
from crc.services.document_service import DocumentService
from crc.services.user_file_service import UserFileService
@ -13,9 +13,9 @@ class DeleteFile(Script):
@staticmethod
def process_document_deletion(doc_code, workflow_id, task):
if DocumentService.is_allowed_document(doc_code):
result = session.query(FileModel).filter(
FileModel.workflow_id == workflow_id, FileModel.irb_doc_code == doc_code).all()
if isinstance(result, list) and len(result) > 0 and isinstance(result[0], FileModel):
result = session.query(DocumentModel).filter(
DocumentModel.workflow_id == workflow_id, DocumentModel.irb_doc_code == doc_code).all()
if isinstance(result, list) and len(result) > 0 and isinstance(result[0], DocumentModel):
for file in result:
UserFileService.delete_file(file.id)
else:
@ -50,8 +50,8 @@ class DeleteFile(Script):
def do_task_validate_only(self, task, study_id, workflow_id, *args, **kwargs):
doc_codes = self.get_codes(task, args, kwargs)
for code in doc_codes:
result = session.query(FileModel).filter(
FileModel.workflow_id == workflow_id, FileModel.irb_doc_code == code).all()
result = session.query(DocumentModel).filter(
DocumentModel.workflow_id == workflow_id, DocumentModel.irb_doc_code == code).all()
if not result:
return False
return True

View File

@ -5,7 +5,7 @@ import datetime
from crc import app, session
from crc.api.common import ApiError
from crc.models.email import EmailModel, EmailModelSchema
from crc.models.file import FileModel, CONTENT_TYPES
from crc.models.file import DocumentModel, CONTENT_TYPES
from crc.models.workflow import WorkflowModel
from crc.services.document_service import DocumentService
from crc.scripts.script import Script
@ -173,11 +173,14 @@ email(subject="My Subject", recipients="user@example.com", attachments=['Study_A
if DocumentService.is_allowed_document(code):
workflows = session.query(WorkflowModel).filter(WorkflowModel.study_id==study_id).all()
for workflow in workflows:
workflow_files = session.query(FileModel).\
filter(FileModel.workflow_id == workflow.id).\
filter(FileModel.irb_doc_code == code).all()
workflow_files = session.query(DocumentModel).\
filter(DocumentModel.workflow_id == workflow.id).\
filter(DocumentModel.irb_doc_code == code).all()
for file in workflow_files:
files.append({'id': file.id, 'name': file.name, 'type': CONTENT_TYPES[file.type.value]})
files.append({'id': file.id,
'name': file.name,
'type': CONTENT_TYPES[file.type],
'data': file.data})
else:
raise ApiError(code='bad_doc_code',
message=f'The doc_code {code} is not valid.')