# HG changeset patch # User Todd Larsen # Date 1223074909 0 # Node ID 7dd6d8347b56db4e64e91dcebe95dda879a7d7c9 # Parent 0f1acc4c3e1e6bd2fdf82dbdbc04506949b403d1 Move helpers/template_helpers.py to helper/templates.py. Patch by: Todd Larsen Review by: to-be-reviewed diff -r 0f1acc4c3e1e -r 7dd6d8347b56 app/soc/views/docs/show.py --- a/app/soc/views/docs/show.py Fri Oct 03 22:17:05 2008 +0000 +++ b/app/soc/views/docs/show.py Fri Oct 03 23:01:49 2008 +0000 @@ -29,8 +29,9 @@ from soc.logic import document from soc.logic import out_of_band from soc.views import simple +from soc.views import helper +import soc.views.helper.templates from soc.views.helpers import response_helpers -from soc.views.helpers import template_helpers DEF_DOCS_PUBLIC_TMPL = 'soc/docs/public.html' @@ -69,7 +70,7 @@ # show custom 404 page when Document path doesn't exist in Datastore return simple.errorResponse(request, error, template, context) - doc.content = template_helpers.unescape(doc.content) + doc.content = helper.templates.unescape(doc.content) context['document'] = doc return response_helpers.respond(request, template, context) diff -r 0f1acc4c3e1e -r 7dd6d8347b56 app/soc/views/helper/templates.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/soc/views/helper/templates.py Fri Oct 03 23:01:49 2008 +0000 @@ -0,0 +1,69 @@ +#!/usr/bin/python2.5 +# +# Copyright 2008 the Melange authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Helpers for manipulating templates. +""" + +__authors__ = [ + '"Todd Larsen" ', + '"Pawel Solyga" ' + ] + + +def makeSiblingTemplatesList(templates, new_template_file, + default_template=None): + """Converts template paths into a list of "sibling" templates. + + Args: + templates: search list of templates (or just a single template not in a + list) from which template paths will be extracted (discarding the final + 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: + ['foo/bar/the_old_template.html', 'foo/the_old_template.html'] + to: + ['foo/bar/some_new_template.html', 'foo/some_new_template.html'] + """ + if not isinstance(templates, (list, tuple)): + templates = [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 + + +def unescape(html): + """Returns the given HTML with ampersands, quotes and carets decoded. + """ + if not isinstance(html, basestring): + html = str(html) + + html.replace(''',"'").replace('<', '<') + html.replace('>', '>').replace('"', '"').replace('&', '&') + return html diff -r 0f1acc4c3e1e -r 7dd6d8347b56 app/soc/views/helpers/template_helpers.py --- a/app/soc/views/helpers/template_helpers.py Fri Oct 03 22:17:05 2008 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -#!/usr/bin/python2.5 -# -# Copyright 2008 the Melange authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Helpers for manipulating templates. -""" - -__authors__ = [ - '"Todd Larsen" ', - '"Pawel Solyga" ' - ] - - -def makeSiblingTemplatesList(templates, new_template_file, - default_template=None): - """Converts template paths into a list of "sibling" templates. - - Args: - templates: search list of templates (or just a single template not in a - list) from which template paths will be extracted (discarding the final - 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: - ['foo/bar/the_old_template.html', 'foo/the_old_template.html'] - to: - ['foo/bar/some_new_template.html', 'foo/some_new_template.html'] - """ - if not isinstance(templates, (list, tuple)): - templates = [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 - - -def unescape(html): - """Returns the given HTML with ampersands, quotes and carets decoded. - """ - if not isinstance(html, basestring): - html = str(html) - - html.replace(''',"'").replace('<', '<') - html.replace('>', '>').replace('"', '"').replace('&', '&') - return html diff -r 0f1acc4c3e1e -r 7dd6d8347b56 app/soc/views/simple.py --- a/app/soc/views/simple.py Fri Oct 03 22:17:05 2008 +0000 +++ b/app/soc/views/simple.py Fri Oct 03 23:01:49 2008 +0000 @@ -27,8 +27,9 @@ from soc.logic import out_of_band from soc.logic.site import id_user +from soc.views import helper +import soc.views.helper.templates from soc.views.helpers import response_helpers -from soc.views.helpers import template_helpers def templateWithLinkName(request, @@ -74,7 +75,7 @@ """ return templateWithLinkName( request, linkname=linkname, context=context, - template=template_helpers.makeSiblingTemplatesList( + template=helper.templates.makeSiblingTemplatesList( template, 'public.html')) @@ -97,7 +98,7 @@ context = response_helpers.getUniversalContext(request, context=context) # make a list of possible "sibling" templates, then append a default - error_templates = template_helpers.makeSiblingTemplatesList( + error_templates = helper.templates.makeSiblingTemplatesList( template, 'error.html', default_template=DEF_ERROR_TMPL) context['error_status'] = error.response_args.get('status') @@ -130,7 +131,7 @@ context = response_helpers.getUniversalContext(request, context=context) # make a list of possible "sibling" templates, then append a default - login_templates = template_helpers.makeSiblingTemplatesList( + login_templates = helper.templates.makeSiblingTemplatesList( template, 'login.html', default_template=DEF_LOGIN_TMPL) if not context.get('login_message'): diff -r 0f1acc4c3e1e -r 7dd6d8347b56 app/soc/views/site/home.py --- a/app/soc/views/site/home.py Fri Oct 03 22:17:05 2008 +0000 +++ b/app/soc/views/site/home.py Fri Oct 03 23:01:49 2008 +0000 @@ -37,10 +37,11 @@ from soc.logic import validate from soc.logic.site import id_user from soc.views import simple +from soc.views import helper +import soc.views.helper.templates from soc.views.helpers import custom_widgets from soc.views.helpers import forms_helpers from soc.views.helpers import response_helpers -from soc.views.helpers import template_helpers import soc.models.site_settings import soc.models.document @@ -113,7 +114,7 @@ site_doc = site_settings.home if site_doc: - site_doc.content = template_helpers.unescape(site_doc.content) + site_doc.content = helper.templates.unescape(site_doc.content) context.update({'site_document': site_doc}) return response_helpers.respond(request, template, context) diff -r 0f1acc4c3e1e -r 7dd6d8347b56 app/soc/views/sponsor/profile.py --- a/app/soc/views/sponsor/profile.py Fri Oct 03 22:17:05 2008 +0000 +++ b/app/soc/views/sponsor/profile.py Fri Oct 03 23:01:49 2008 +0000 @@ -25,8 +25,9 @@ from soc.logic import out_of_band from soc.logic import sponsor from soc.views import simple +from soc.views import helper +import soc.views.helper.templates from soc.views.helpers import response_helpers -from soc.views.helpers import template_helpers DEF_SPONSOR_PUBLIC_TMPL = 'soc/group/profile/public.html' @@ -52,7 +53,7 @@ return simple.errorResponse(request, error, template, context) linkname_sponsor.description = \ - template_helpers.unescape(linkname_sponsor.description) + helper.templates.unescape(linkname_sponsor.description) context.update({'linkname_group': linkname_sponsor, 'group_type': 'Sponsor'})