When splitting via barcodes, cleanup the split documents better

This commit is contained in:
Trenton Holmes 2023-02-11 18:19:02 -08:00 committed by Trenton H
parent 1d5eb983ea
commit 8b3d01c49b
2 changed files with 23 additions and 17 deletions

View File

@ -325,11 +325,10 @@ def save_to_dir(
Optionally rename the file. Optionally rename the file.
""" """
if os.path.isfile(filepath) and os.path.isdir(target_dir): if os.path.isfile(filepath) and os.path.isdir(target_dir):
dst = shutil.copy(filepath, target_dir) dest = target_dir
logging.debug(f"saved {str(filepath)} to {str(dst)}") if newname is not None:
if newname: dest = os.path.join(dest, newname)
dst_new = os.path.join(target_dir, newname) shutil.copy(filepath, dest)
logger.debug(f"moving {str(dst)} to {str(dst_new)}") logging.debug(f"saved {str(filepath)} to {str(dest)}")
os.rename(dst, dst_new)
else: else:
logger.warning(f"{str(filepath)} or {str(target_dir)} don't exist.") logger.warning(f"{str(filepath)} or {str(target_dir)} don't exist.")

View File

@ -128,6 +128,18 @@ def consume_file(
) )
if document_list: 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): for n, document in enumerate(document_list):
# save to consumption dir # save to consumption dir
# rename it to the original filename with number prefix # rename it to the original filename with number prefix
@ -136,23 +148,18 @@ def consume_file(
else: else:
newname = None 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( barcodes.save_to_dir(
document, document,
newname=newname, newname=newname,
target_dir=save_to_dir, 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 # Delete the PDF file which was split
os.remove(doc_barcode_info.pdf_path) os.remove(doc_barcode_info.pdf_path)