diff --git a/app/main/views/templates.py b/app/main/views/templates.py index 1e81ad8f8..8d7018bb7 100644 --- a/app/main/views/templates.py +++ b/app/main/views/templates.py @@ -117,12 +117,7 @@ def choose_template(service_id, template_type='all', template_folder_id=None): ), '' ) - for label, key in filter(None, [ - ('All', 'all'), - ('Text message', 'sms'), - ('Email', 'email'), - ('Letter', 'letter') if current_service.has_permission('letter') else None, - ]) + for label, key in [('All', 'all')] + current_service.available_template_types_as_tuples ] return render_template( diff --git a/app/models/service.py b/app/models/service.py index f835c7422..c0b6649b6 100644 --- a/app/models/service.py +++ b/app/models/service.py @@ -36,6 +36,12 @@ class Service(): 'service_callback_api', } + TEMPLATE_TYPES = ( + ('sms', 'Text message'), + ('email', 'Email'), + ('letter', 'Letter'), + ) + def __init__(self, _dict): # in the case of a bad request current service may be `None` self._dict = _dict or {} @@ -116,10 +122,17 @@ class Service(): @property def available_template_types(self): return [ - channel for channel in ('email', 'sms', 'letter') + channel for channel, _ in self.TEMPLATE_TYPES if self.has_permission(channel) ] + @property + def available_template_types_as_tuples(self): + return [ + (label, value) for value, label in self.TEMPLATE_TYPES + if self.has_permission(value) + ] + @property def has_templates(self): return len(self.all_templates) > 0