diff --git a/src/documents/barcodes.py b/src/documents/barcodes.py index 9adb8aeea..416cf6b2d 100644 --- a/src/documents/barcodes.py +++ b/src/documents/barcodes.py @@ -325,11 +325,10 @@ def save_to_dir( Optionally rename the file. """ if os.path.isfile(filepath) and os.path.isdir(target_dir): - dst = shutil.copy(filepath, target_dir) - logging.debug(f"saved {str(filepath)} to {str(dst)}") - if newname: - dst_new = os.path.join(target_dir, newname) - logger.debug(f"moving {str(dst)} to {str(dst_new)}") - os.rename(dst, dst_new) + dest = target_dir + if newname is not None: + dest = os.path.join(dest, newname) + shutil.copy(filepath, dest) + logging.debug(f"saved {str(filepath)} to {str(dest)}") else: logger.warning(f"{str(filepath)} or {str(target_dir)} don't exist.") diff --git a/src/documents/tasks.py b/src/documents/tasks.py index 34b75ce12..1f9c94917 100644 --- a/src/documents/tasks.py +++ b/src/documents/tasks.py @@ -128,6 +128,18 @@ def consume_file( ) if document_list: + + # If the file is an upload, it's in the scratch directory + # Move it to consume directory to be picked up + # Otherwise, use the current parent to keep possible tags + # from subdirectories + try: + # is_relative_to would be nicer, but new in 3.9 + _ = path.relative_to(settings.SCRATCH_DIR) + save_to_dir = settings.CONSUMPTION_DIR + except ValueError: + save_to_dir = path.parent + for n, document in enumerate(document_list): # save to consumption dir # rename it to the original filename with number prefix @@ -136,23 +148,18 @@ def consume_file( else: newname = None - # If the file is an upload, it's in the scratch directory - # Move it to consume directory to be picked up - # Otherwise, use the current parent to keep possible tags - # from subdirectories - try: - # is_relative_to would be nicer, but new in 3.9 - _ = path.relative_to(settings.SCRATCH_DIR) - save_to_dir = settings.CONSUMPTION_DIR - except ValueError: - save_to_dir = path.parent - barcodes.save_to_dir( document, newname=newname, target_dir=save_to_dir, ) + # Split file has been copied safely, remove it + os.remove(document) + + # And clean up the directory as well, now it's empty + shutil.rmtree(os.path.dirname(document_list[0])) + # Delete the PDF file which was split os.remove(doc_barcode_info.pdf_path)