Merge pull request #2974 from alphagov/make-letter-folder-name-code-readable

Make letter folder name code readable
This commit is contained in:
Leo Hemsted
2020-09-28 13:58:08 +01:00
committed by GitHub
6 changed files with 52 additions and 49 deletions

View File

@@ -60,12 +60,11 @@ def create_letters_pdf(self, notification_id):
def get_pdf_for_templated_letter(self, notification_id):
try:
notification = get_notification_by_id(notification_id, _raise=True)
letter_filename = get_letter_pdf_filename(
reference=notification.reference,
crown=notification.service.crown,
sending_date=notification.created_at,
dont_use_sending_date=notification.key_type == KEY_TYPE_TEST,
created_at=notification.created_at,
ignore_folder=notification.key_type == KEY_TYPE_TEST,
postage=notification.postage
)
letter_data = {
@@ -183,7 +182,7 @@ def get_key_and_size_of_letters_to_be_sent_to_print(print_run_deadline, postage)
letter_file_name = get_letter_pdf_filename(
reference=letter.reference,
crown=letter.service.crown,
sending_date=letter.created_at,
created_at=letter.created_at,
postage=letter.postage
)
letter_head = s3.head_s3_object(current_app.config['LETTERS_PDF_BUCKET_NAME'], letter_file_name)
@@ -312,8 +311,8 @@ def process_sanitised_letter(self, sanitise_data):
upload_file_name = get_letter_pdf_filename(
reference=notification.reference,
crown=notification.service.crown,
sending_date=notification.created_at,
dont_use_sending_date=True,
created_at=notification.created_at,
ignore_folder=True,
postage=notification.postage
)

View File

@@ -432,8 +432,8 @@ def _delete_letters_from_s3(
if letter.sent_at:
prefix = get_letter_pdf_filename(reference=letter.reference,
crown=letter.service.crown,
sending_date=letter.created_at,
dont_use_sending_date=letter.key_type == KEY_TYPE_TEST,
created_at=letter.created_at,
ignore_folder=letter.key_type == KEY_TYPE_TEST,
postage=letter.postage)
s3_objects = get_s3_bucket_objects(bucket_name=bucket_name, subfolder=prefix)
for s3_object in s3_objects:

View File

@@ -27,26 +27,22 @@ LETTERS_PDF_FILE_LOCATION_STRUCTURE = \
PRECOMPILED_BUCKET_PREFIX = '{folder}NOTIFY.{reference}'
def get_folder_name(_now, *, dont_use_sending_date=False):
if dont_use_sending_date:
folder_name = ''
else:
print_datetime = convert_utc_to_bst(_now)
if print_datetime.time() > LETTER_PROCESSING_DEADLINE:
print_datetime += timedelta(days=1)
folder_name = '{}/'.format(print_datetime.date())
return folder_name
def get_folder_name(created_at):
print_datetime = convert_utc_to_bst(created_at)
if print_datetime.time() > LETTER_PROCESSING_DEADLINE:
print_datetime += timedelta(days=1)
return '{}/'.format(print_datetime.date())
def get_letter_pdf_filename(reference, crown, sending_date, dont_use_sending_date=False, postage=SECOND_CLASS):
def get_letter_pdf_filename(reference, crown, created_at, ignore_folder=False, postage=SECOND_CLASS):
upload_file_name = LETTERS_PDF_FILE_LOCATION_STRUCTURE.format(
folder=get_folder_name(sending_date, dont_use_sending_date=dont_use_sending_date),
folder='' if ignore_folder else get_folder_name(created_at),
reference=reference,
duplex="D",
letter_class=RESOLVE_POSTAGE_FOR_FILE_NAME[postage],
colour="C",
crown="C" if crown else "N",
date=sending_date.strftime('%Y%m%d%H%M%S')
date=created_at.strftime('%Y%m%d%H%M%S')
).upper()
return upload_file_name
@@ -59,7 +55,7 @@ def get_bucket_name_and_prefix_for_notification(notification):
bucket_name = current_app.config['TEST_LETTERS_BUCKET_NAME']
else:
bucket_name = current_app.config['LETTERS_PDF_BUCKET_NAME']
folder = get_folder_name(notification.created_at, dont_use_sending_date=False)
folder = get_folder_name(notification.created_at)
upload_file_name = PRECOMPILED_BUCKET_PREFIX.format(
folder=folder,
@@ -82,8 +78,8 @@ def upload_letter_pdf(notification, pdf_data, precompiled=False):
upload_file_name = get_letter_pdf_filename(
reference=notification.reference,
crown=notification.service.crown,
sending_date=notification.created_at,
dont_use_sending_date=precompiled or notification.key_type == KEY_TYPE_TEST,
created_at=notification.created_at,
ignore_folder=precompiled or notification.key_type == KEY_TYPE_TEST,
postage=notification.postage
)
@@ -151,7 +147,8 @@ def move_uploaded_pdf_to_letters_bucket(source_filename, upload_filename):
def move_sanitised_letter_to_test_or_live_pdf_bucket(filename, is_test_letter, created_at, new_filename):
target_bucket_config = 'TEST_LETTERS_BUCKET_NAME' if is_test_letter else 'LETTERS_PDF_BUCKET_NAME'
target_bucket_name = current_app.config[target_bucket_config]
target_filename = get_folder_name(created_at, dont_use_sending_date=is_test_letter) + new_filename
target_folder = '' if is_test_letter else get_folder_name(created_at)
target_filename = target_folder + new_filename
_move_s3_object(
source_bucket=current_app.config['LETTER_SANITISE_BUCKET_NAME'],

View File

@@ -195,8 +195,8 @@ def send_pdf_letter_notification(service_id, post_data):
upload_filename = get_letter_pdf_filename(
reference=notification.reference,
crown=notification.service.crown,
sending_date=notification.created_at,
dont_use_sending_date=False,
created_at=notification.created_at,
ignore_folder=False,
postage=notification.postage
)