2021-07-06 13:10:20 -04:00
|
|
|
from crc.models.api_models import DocumentDirectorySchema
|
|
|
|
from crc.models.file import File
|
|
|
|
from crc.services.document_service import DocumentService
|
|
|
|
from crc.services.lookup_service import LookupService
|
2022-02-02 12:59:56 -05:00
|
|
|
from crc.services.user_file_service import UserFileService
|
2021-07-06 13:10:20 -04:00
|
|
|
|
|
|
|
|
|
|
|
def get_document_directory(study_id, workflow_id=None):
|
|
|
|
"""
|
|
|
|
return a nested list of files arranged according to the category hierarchy
|
|
|
|
defined in the doc dictionary
|
|
|
|
"""
|
2022-02-02 12:59:56 -05:00
|
|
|
file_models = UserFileService.get_files_for_study(study_id=study_id)
|
2021-07-06 13:10:20 -04:00
|
|
|
doc_dict = DocumentService.get_dictionary()
|
2022-02-02 12:59:56 -05:00
|
|
|
files = (File.from_models(model, UserFileService.get_file_data(model.id), doc_dict) for model in file_models)
|
2021-07-06 13:10:20 -04:00
|
|
|
directory = DocumentService.get_directory(doc_dict, files, workflow_id)
|
|
|
|
|
|
|
|
return DocumentDirectorySchema(many=True).dump(directory)
|