From 9716d5dbba2e4c355f3a21aa8753dbd3c0780c33 Mon Sep 17 00:00:00 2001 From: Tom Byers Date: Thu, 17 Dec 2020 10:46:42 +0000 Subject: [PATCH] Add format_list_items template filter --- app/__init__.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/__init__.py b/app/__init__.py index 4c7b35cf9..ec0ce3771 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -528,6 +528,15 @@ def format_number_in_pounds_as_currency(number): return f"{number * 100:.0f}p" +def format_list_items(items, format_string, *args, **kwargs): + """ + Apply formatting to each item in an iterable. Returns a list. + Each item is made available in the format_string as the 'item' keyword argument. + example usage: ['png','svg','pdf']|format_list_items('{0}. {item}', [1,2,3]) -> ['1. png', '2. svg', '3. pdf'] + """ + return [format_string.format(*args, item=item, **kwargs) for item in items] + + @login_manager.user_loader def load_user(user_id): return User.from_id(user_id) @@ -818,6 +827,7 @@ def add_template_filters(application): format_thousands, id_safe, convert_to_boolean, + format_list_items, ]: application.add_template_filter(fn)