# HG changeset patch # User Todd Larsen # Date 1220064862 0 # Node ID 155f43a0fa683cfe23793e8ebfadad023196cb18 # Parent 051afb721c22ffca46effd4d4831d209e2b009c6 An emerging pattern with makeSiblingTemplatesList() is that views calling that function then append a known, default template "just in case". This change adds a default_template parameter to makeSiblingTemplatesList() to eliminate the extra "append a known default to the end" step for the caller. Patch by: Todd Larsen Review by: to-be-reviewed diff -r 051afb721c22 -r 155f43a0fa68 app/soc/views/helpers/template_helpers.py --- a/app/soc/views/helpers/template_helpers.py Fri Aug 29 04:24:31 2008 +0000 +++ b/app/soc/views/helpers/template_helpers.py Sat Aug 30 02:54:22 2008 +0000 @@ -22,7 +22,8 @@ ] -def makeSiblingTemplatesList(templates, new_template_file): +def makeSiblingTemplatesList(templates, new_template_file, + default_template=None): """Converts template paths into a list of "sibling" templates. Args: @@ -31,7 +32,9 @@ template file name of each template) new_template_file: new "sibling" template file to append to each extracted template path - + default_template: a default template (or a list of them) to append to the + end of the generated "sibling" template paths; default is None + Returns: A list of potential "sibling" templates named by new_template_file located in the paths of the templates in the supplied list. For example, from: @@ -42,5 +45,13 @@ if not isinstance(templates, (list, tuple)): templates = [templates] - return [ - '%s/%s' % (t.rsplit('/', 1)[0], new_template_file) for t in templates] + if default_template is None: + default_template = [] + + if not isinstance(default_template, (list, tuple)): + default_template = [default_template] + + sibling_templates = [ + '%s/%s' % (t.rsplit('/', 1)[0], new_template_file) for t in templates] + + return sibling_templates + default_template diff -r 051afb721c22 -r 155f43a0fa68 app/soc/views/simple.py --- a/app/soc/views/simple.py Fri Aug 29 04:24:31 2008 +0000 +++ b/app/soc/views/simple.py Sat Aug 30 02:54:22 2008 +0000 @@ -101,9 +101,8 @@ context = response_helpers.getUniversalContext(request, context=context) # make a list of possible "sibling" templates, then append a default - error_templates = template_helpers.makeSiblingTemplatesList(template, - 'error.html') - error_templates.append(DEF_ERROR_TMPL) + error_templates = template_helpers.makeSiblingTemplatesList( + template, 'error.html', default_template=DEF_ERROR_TMPL) context['error_status'] = error.response_args.get('status') context['error_message'] = error.message @@ -134,9 +133,8 @@ context = response_helpers.getUniversalContext(request, context=context) # make a list of possible "sibling" templates, then append a default - login_templates = template_helpers.makeSiblingTemplatesList(template, - 'login.html') - login_templates.append(DEF_LOGIN_TMPL) + login_templates = template_helpers.makeSiblingTemplatesList( + template, 'login.html', default_template=DEF_LOGIN_TMPL) if not context.get('login_message'): if not login_message_fmt: