示例#1
0
 def test_phased(self):
     context = Context({'test_var': 'TEST'})
     self.assertRaises(TemplateSyntaxError, compile_string(self.test_template, None).render, context)
     context = Context({
         'test_var': 'TEST',
         'test_condition': True,
     })
     first_render = compile_string(self.test_template, None).render(context)
     pickled_context = '{# stashed context: "gAJ9cQAoVQ50ZXN0X2NvbmRpdGlvbnEBiFUKY3NyZl90b2tlbnECVQtOT1RQUk9WSURFRHEDVQh0ZXN0X3ZhcnEEVQRURVNUcQV1Lg==" #}'
     self.assertEqual(first_render, '%(delimiter)s{%% if 1 %%}test{%% endif %%}{%% if test_condition %%}stashed{%% endif %%}%(pickled_context)s%(delimiter)sTEST' %
         dict(delimiter=settings.PHASED_SECRET_DELIMITER, pickled_context=pickled_context))
示例#2
0
 def test_phased(self):
     context = Context({'test_var': 'TEST'})
     self.assertRaises(TemplateSyntaxError, compile_string(self.test_template, None).render, context)
     context = Context({
         'test_var': 'TEST',
         'test_condition': True,
     })
     first_render = compile_string(self.test_template, None).render(context)
     pickled_context = '{# context "gAJ9cQEoVQ50ZXN0X2NvbmRpdGlvbnECiFUKY3NyZl90b2tlbnEDVQtOT1RQUk9WSURFRHEEVQh0ZXN0X3ZhcnEFVQRURVNUcQZ1Lg==" endcontext #}'
     pickled_components = '{# components "gAJdcQFVH3BoYXNlZC50ZW1wbGF0ZXRhZ3MucGhhc2VkX3RhZ3NxAmEu" endcomponents #}'
     self.assertEqual(first_render, '%(delimiter)s{%% if 1 %%}test{%% endif %%}{%% if test_condition %%}stashed{%% endif %%}%(pickled_context)s%(pickled_components)s%(delimiter)sTEST' % dict(delimiter=settings.SECRET_DELIMITER, pickled_context=pickled_context, pickled_components=pickled_components))
示例#3
0
 def test_phased(self):
     context = Context({'test_var': 'TEST'})
     self.assertRaises(TemplateSyntaxError, compile_string(self.test_template, None).render, context)
     context = Context({
         'test_var': 'TEST',
         'test_condition': True,
     })
     first_render = compile_string(self.test_template, None).render(context)
     pickled_context = '{# stashed context: "gAJ9cQAoVQ50ZXN0X2NvbmRpdGlvbnEBiFUKY3NyZl90b2tlbnECVQtOT1RQUk9WSURFRHEDVQh0ZXN0X3ZhcnEEVQRURVNUcQV1Lg==" #}'
     self.assertEqual(first_render, '%(delimiter)s{%% if 1 %%}test{%% endif %%}{%% if test_condition %%}stashed{%% endif %%}%(pickled_context)s%(delimiter)sTEST' %
         dict(delimiter=settings.PHASED_SECRET_DELIMITER, pickled_context=pickled_context))
示例#4
0
    def render(self, name, value, attrs=None):
        result = []
        value = value or ""
        result.append(super(AdminTemplateEditWidget, self).render(name, value, attrs))

        try:
            compile_string(value, None)
            result.append(u'<p class="template ok">%s</p>' % _('Template syntax is valid'))
        except (TemplateSyntaxError, TemplateDoesNotExist), e:
            msg = _('Template has following errors:')
            error = e
            if isinstance(e, TemplateDoesNotExist):
                error = _('Template does not exist: %s') % e
            result.append('<p class="template error"><span>%s</span> %s</p>' % (msg, error))
示例#5
0
 def test_phasedcache(self):
     self.assertEqual(len(cache._cache.keys()), 0)
     request = self.factory.get('/')
     context = RequestContext(request, {'test_var': 'Testing'})
     rendering = compile_string(self.test_template, None).render(context)
     self.assertEqual(rendering, 'OtherPartTesting/TEST')
     self.assertEqual(len(cache._cache.keys()), 1)
     cached_value = cache.get('template.cache.phased_test.d41d8cd98f00b204e9800998ecf8427e')
     self.assertIsNotNone(cached_value)
     self.assertTrue(cached_value.startswith('Testing'))
     request = self.factory.get('/path/')
     # Do not make test_var available, should be in cache
     context = RequestContext(request)
     rendering = compile_string(self.test_template, None).render(context)
     self.assertEqual(rendering, 'OtherPartTesting/path/TEST')
示例#6
0
 def test_phasedcache(self):
     self.assertEqual(len(cache._cache.keys()), 0)
     request = self.factory.get('/')
     context = RequestContext(request, {'test_var': 'Testing'})
     rendering = compile_string(self.test_template, None).render(context)
     self.assertEqual(rendering, 'OtherPartTesting/TEST')
     self.assertEqual(len(cache._cache.keys()), 1)
     cached_value = cache.get('template.cache.phased_test.d41d8cd98f00b204e9800998ecf8427e')
     self.assertIsNotNone(cached_value)
     self.assertTrue(cached_value.startswith('Testing'))
     request = self.factory.get('/path/')
     # Do not make test_var available, should be in cache
     context = RequestContext(request)
     rendering = compile_string(self.test_template, None).render(context)
     self.assertEqual(rendering, 'OtherPartTesting/path/TEST')
示例#7
0
 def test_phased(self):
     context = Context({'test_var': 'TEST'})
     first_render = compile_string(self.test_template, None).render(context)
     self.assertEqual(
         first_render,
         'fancydelimiter{%% if 1 %%}test{%% endif %%}%sfancydelimiterTEST' %
         pickle_context(backup_csrf_token(context)))
示例#8
0
    def render_variables(self):

        context = {}
        locale_variables = self.locale_variables_from_obj()
        variables = [
            str(var_name.filter_expression.token) for var_name in
            compile_string(self.text2convert, self.text2convert)
            if isinstance(var_name, VariableNode)
        ]
        msg = _("Doesn't exist this variable '%(field)s' for '%(object)s'.")

        try:
            for field in variables:
                context.update({
                    field:
                    getattr(
                        self.obj,
                        locale_variables
                        and locale_variables.get(field, field)
                        or field,  # get real variable on obj
                        msg % {
                            'field': field,
                            'object': self.obj._meta.verbose_name
                        })
                })
            context = Context(context)
            return mark_safe('%s' %
                             Template(self.text2convert).render(context))
        except Exception, error:
            raise TranslateVariableObjectError, error
示例#9
0
 def render(self, context):
     # pagelets can automagically use pagelets templatetags 
     # in order to remove boilerplate
     loaded_cms = AUTO_LOAD_TEMPLATE_TAGS + self.content
     """
     skip the first portions of render_to_string() ( finding the template )
      and go directly to compiling the template/pagelet
     render_to_string abbreviated: 
             def render_to_string(template_name, dictionary=None, context_instance=None):
                    t = select/get_template(template_name)
                            template = get_template_from_string(source, origin, template_name)
                                    return Template(source, origin, name)
                    t.render(context_instance)
     
     """
     #XXX is this what the origin should be?
     origin = StringOrigin('pagelet: %s' % self.slug)
     compiled = compile_string(loaded_cms, origin).render(context)
     try:
         if self.type in ('html', 'tinymce', 'wymeditor'):
             html = compiled
         elif self.type == "textile":
             from textile import textile
             html = textile(str(compiled))
         elif self.type == "markdown":
             from markdown import markdown
             html = markdown(compiled)
         return html
     except TemplateSyntaxError, e:
         return 'Syntax error, %s' % e
示例#10
0
    def render(self, context):
        # pagelets can automagically use pagelets templatetags
        # in order to remove boilerplate
        loaded_cms = conf.AUTO_LOAD_TEMPLATE_TAGS + self.content
        """
        skip the first portions of render_to_string() ( finding the template )
         and go directly to compiling the template/pagelet
        render_to_string abbreviated:
                def render_to_string(template_name, dictionary=None, context_instance=None):
                       t = select/get_template(template_name)
                               template = get_template_from_string(source, origin, template_name)
                                       return Template(source, origin, name)
                       t.render(context_instance)

        """
        #XXX is this what the origin should be?
        origin = StringOrigin('pagelet: %s' % self.slug)
        compiled = compile_string(loaded_cms, origin).render(context)
        try:
            if self.type in ('html', 'tinymce', 'wymeditor'):
                html = compiled
            elif self.type == "textile":
                from textile import textile
                html = textile(str(compiled))
            elif self.type == "markdown":
                from markdown import markdown
                html = markdown(compiled)
            return html
        except TemplateSyntaxError as e:
            return 'Syntax error, %s' % e

        raise Exception("Unsupported template content type '%s'" %
                        self.content.content_type)
示例#11
0
    def test_second_pass(self):
        request = HttpRequest()
        request.method = 'GET'

        first_render = compile_string(self.test_template, None).render(Context({'test_var': 'TEST'}))
        second_render = second_pass_render(request, first_render)
        self.assertEqual(second_render, 'firstsecondTEST')
示例#12
0
 def test_phased(self):
     context = Context({'test_var': 'TEST'})
     first_render = compile_string(self.test_template, None).render(context)
     original_context = unpickle_context(first_render)
     self.assertNotEqual(flatten_context(context), original_context)
     pickled_context = pickle_context(Context({'csrf_token': 'NOTPROVIDED'}))
     self.assertEqual(first_render, '%(delimiter)s{%% if 1 %%}test{%% endif %%}%(pickled_context)s%(delimiter)sTEST' %
         dict(delimiter=settings.PHASED_SECRET_DELIMITER, pickled_context=pickled_context))
示例#13
0
 def test_phased(self):
     context = Context({'test_var': 'TEST'})
     first_render = compile_string(self.test_template, None).render(context)
     original_context = unpickle_context(first_render)
     self.assertNotEqual(flatten_context(context), original_context)
     pickled_context = pickle_context(Context({'csrf_token': 'NOTPROVIDED'}))
     self.assertEqual(first_render, '%(delimiter)s{%% if 1 %%}test{%% endif %%}%(pickled_context)s%(delimiter)sTEST' %
         dict(delimiter=settings.PHASED_SECRET_DELIMITER, pickled_context=pickled_context))
示例#14
0
    def testViewNonexistentPagelet(self):
        template_str = """{% spaceless %}
{% load pagelet_tags %}
{% render_pagelet 'nonexistent-pagelet' %}        
{% endspaceless %}"""
        origin = StringOrigin('test')
        compiled = compile_string(template_str, origin).render(Context())
        self.assertEqual(compiled, '<div class="pagelet nonexistent-pagelet"><div class="pagelet-content"></div></div>')
示例#15
0
 def test_phased(self):
     context = Context({'test_var': 'TEST'})
     first_render = compile_string(self.test_template, None).render(context)
     self.assertEqual(
         first_render,
         '%(delimiter)s{%% load phased_tags %%}{%% phased %%}{%% if 1 %%}first{%% endif %%}{%% endphased %%}{%% if 1 %%}second{%% endif %%}%(pickled_context)s%(delimiter)sTEST'
         % dict(delimiter=settings.PHASED_SECRET_DELIMITER,
                pickled_context=pickle_context(backup_csrf_token(context))))
示例#16
0
 def test_phased(self):
     context = Context({'test_var': 'TEST'})
     first_render = compile_string(self.test_template, None).render(context)
     original_context = unpickle_context(first_render)
     self.assertNotEqual(flatten_context(context), original_context)
     pickled_context = '{# context "gAJ9cQFVCmNzcmZfdG9rZW5xAlULTk9UUFJPVklERURxA3Mu" endcontext #}'
     pickled_components = '{# components "gAJdcQFVH3BoYXNlZC50ZW1wbGF0ZXRhZ3MucGhhc2VkX3RhZ3NxAmEu" endcomponents #}'
     self.assertEqual(first_render, '%(delimiter)s{%% if 1 %%}test{%% endif %%}%(pickled_context)s%(pickled_components)s%(delimiter)sTEST' % dict(delimiter=settings.SECRET_DELIMITER, pickled_context=pickled_context, pickled_components=pickled_components))
示例#17
0
 def test_phased(self):
     context = Context({'test_var': 'TEST'})
     pickled_context = '{# stashed context: "gAJ9cQAoVQpjc3JmX3Rva2VucQFVC05PVFBST1ZJREVEcQJVCHRlc3RfdmFycQNVBFRFU1RxBHUu" #}'
     first_render = compile_string(self.test_template, None).render(context)
     self.assertEqual(
         first_render,
         '%(delimiter)s{%% if 1 %%}test{%% endif %%}{%% if test_condition %%}stashed{%% endif %%}%(pickled_context)s%(delimiter)sTEST%(delimiter)s{%% if 1 %%}test2{%% endif %%}{%% if test_condition2 %%}stashed{%% endif %%}%(pickled_context)s%(delimiter)s'
         % dict(delimiter=settings.PHASED_SECRET_DELIMITER,
                pickled_context=pickled_context))
示例#18
0
 def test_second_pass(self):
     request = self.factory.get('/')
     context = Context({
         'test_var': 'TEST',
         'test_condition': True,
         'test_condition2': True,
     })
     first_render = compile_string(self.test_template, None).render(context)
     second_render = second_pass_render(request, first_render)
     self.assertEqual(second_render, 'teststashedTESTtest2stashed')
示例#19
0
 def test_second_pass(self):
     request = self.factory.get('/')
     context = Context({
         'test_var': 'TEST',
         'test_condition': True,
         'test_condition2': True,
     })
     first_render = compile_string(self.test_template, None).render(context)
     second_render = second_pass_render(request, first_render)
     self.assertEqual(second_render, 'teststashedTESTtest2stashed')
示例#20
0
 def test_second_pass(self):
     request = HttpRequest()
     request.method = 'GET'
     context = Context({
         'test_var': 'TEST',
         'test_condition': True,
         'test_condition2': True,
     })
     first_render = compile_string(self.test_template, None).render(context)
     second_render = second_pass_render(request, first_render)
     self.assertEqual(second_render, 'teststashedTESTtest2stashed')
示例#21
0
    def testViewNonexistentPagelet(self):
        template_str = """{% spaceless %}
{% load pagelet_tags %}
{% render_pagelet 'nonexistent-pagelet' %}
{% endspaceless %}"""
        origin = StringOrigin('test')
        compiled = compile_string(template_str, origin).render(Context())
        self.assertEqual(
            compiled,
            '<div class="pagelet nonexistent-pagelet"><div class="pagelet-content"></div></div>'
        )
示例#22
0
 def test_second_pass(self):
     request = self.factory.get('/')
     context = Context({
         'test_var': 'TEST',
         'test_var2': 'TEST2',
         'test_condition': True,
     })
     first_render = compile_string(self.test_template, None).render(context)
     original_context = unpickle_context(first_render)
     self.assertEqual(original_context.get('test_var'), 'TEST')
     second_render = second_pass_render(request, first_render)
     self.assertEqual(second_render, 'teststashedTEST')
示例#23
0
 def test_second_pass(self):
     request = self.factory.get('/')
     context = Context({
         'test_var': 'TEST',
         'test_var2': 'TEST2',
         'test_condition': True,
     })
     first_render = compile_string(self.test_template, None).render(context)
     original_context = unpickle_context(first_render)
     self.assertEqual(original_context.get('test_var'), 'TEST')
     second_render = second_pass_render(request, first_render)
     self.assertEqual(second_render, 'teststashedTEST')
示例#24
0
	def render_variables(self):
		
		context ={}
		locale_variables = self.locale_variables_from_obj()
		variables = [ 
			str(var_name.filter_expression.token) 
			for var_name in compile_string(self.text2convert,self.text2convert) 
			if isinstance(var_name,VariableNode)
		]
		msg=_("Doesn't exist this variable '%(field)s' for '%(object)s'.")

		try:
			for field in variables:
				context.update({
					field:getattr(
						self.obj,
						locale_variables and locale_variables.get(field,field) or field, # get real variable on obj
						msg % {'field': field, 'object': self.obj._meta.verbose_name }
					)
				})
			context=Context(context)
			return mark_safe('%s' % Template(self.text2convert).render(context))
		except Exception, error:
			raise TranslateVariableObjectError, error
示例#25
0
 def test_phased(self):
     context = Context({'test_var': 'TEST'})
     first_render = compile_string(self.test_template, None).render(context)
     pickled_components = '{# components "gAJdcQFVH3BoYXNlZC50ZW1wbGF0ZXRhZ3MucGhhc2VkX3RhZ3NxAmEu" endcomponents #}'
     self.assertEqual(first_render, '%(delimiter)s{%% load phased_tags %%}{%% phased %%}{%% if 1 %%}first{%% endif %%}{%% endphased %%}{%% if 1 %%}second{%% endif %%}%(pickled_context)s%(pickled_components)s%(delimiter)sTEST' % dict(delimiter=settings.SECRET_DELIMITER, pickled_context=pickle_context(backup_csrf_token(context)), pickled_components=pickled_components))
示例#26
0
 def test_phased(self):
     context = Context({'test_var': 'TEST'})
     first_render = compile_string(self.test_template, None).render(context)
     pickled_components = '{# components "gAJdcQFVH3BoYXNlZC50ZW1wbGF0ZXRhZ3MucGhhc2VkX3RhZ3NxAmEu" endcomponents #}'
     self.assertEqual(first_render, 'fancydelimiter{%% if 1 %%}test{%% endif %%}%s%sfancydelimiterTEST' % (pickle_context(backup_csrf_token(context)), pickled_components))
示例#27
0
            for column_index, order in query.sorting_columns]
        queryset = queryset.order_by(*order_by)
        # 3) Apply offset/limit
        queryset = queryset[query.iDisplayStart:query.iDisplayStart + query.iDisplayLength]
        #  Compute the response
        # Note, despite the 'aaData'' identifier we're
        # returing aoData-typed result (array of objects)
        # print queryset.values(*[column.filter_expr for column in self.columns])
        response['aaData'] = [
            dict([(column.name, column.callback(object))
                  for column in self.columns])
            for object in queryset]
        return response


simple_nodelist = compile_string('{{ value }}', None)


class TableBackend(_BackendBase):
    """
    Database backend for data tables.

    Stores and processes/computes the data in the database.
    """

    def __init__(self, table):
        self.table = table

    def _render_cell(self, col, data):
        """Render data for a column.
示例#28
0
 def test_phased(self):
     context = Context({'test_var': 'TEST'})
     pickled_context = '{# context "gAJ9cQEoVQpjc3JmX3Rva2VucQJVC05PVFBST1ZJREVEcQNVCHRlc3RfdmFycQRVBFRFU1RxBXUu" endcontext #}'
     pickled_components = '{# components "gAJdcQFVH3BoYXNlZC50ZW1wbGF0ZXRhZ3MucGhhc2VkX3RhZ3NxAmEu" endcomponents #}'
     first_render = compile_string(self.test_template, None).render(context)
     self.assertEqual(first_render, '%(delimiter)s{%% if 1 %%}test{%% endif %%}{%% if test_condition %%}stashed{%% endif %%}%(pickled_context)s%(pickled_components)s%(delimiter)sTEST%(delimiter)s{%% if 1 %%}test2{%% endif %%}{%% if test_condition2 %%}stashed{%% endif %%}%(pickled_context)s{# components "gAJdcQFVH3BoYXNlZC50ZW1wbGF0ZXRhZ3MucGhhc2VkX3RhZ3NxAmEu" endcomponents #}%(delimiter)s' % dict(delimiter=settings.SECRET_DELIMITER, pickled_context=pickled_context, pickled_components=pickled_components))
 def compile_string(self, url, template_str):
     origin = StringOrigin(url)
     return compile_string(template_str, origin).render(Context())
示例#30
0
 def test_second_pass(self):
     request = self.factory.get('/')
     first_render = compile_string(self.test_template, None).render(Context({'test_var': 'TEST'}))
     second_render = second_pass_render(request, first_render)
     self.assertEqual(second_render, 'firstsecondTEST')
示例#31
0
        queryset = queryset.order_by(*order_by)
        # 3) Apply offset/limit
        queryset = queryset[query.iDisplayStart:query.iDisplayStart +
                            query.iDisplayLength]
        #  Compute the response
        # Note, despite the 'aaData'' identifier we're
        # returing aoData-typed result (array of objects)
        # print queryset.values(*[column.filter_expr for column in self.columns])
        response['aaData'] = [
            dict([(column.name, column.callback(object))
                  for column in self.columns]) for object in queryset
        ]
        return response


simple_nodelist = compile_string('{{ value }}', None)


class TableBackend(_BackendBase):
    """
    Database backend for data tables.

    Stores and processes/computes the data in the database.
    """
    def __init__(self, table):
        self.table = table

    def _render_cell(self, col, data):
        """Render data for a column.

        The intent here is to match as precisely as possible the way a cell
示例#32
0
 def compile_string(self, url, template_str):
     origin = StringOrigin(url)
     return compile_string(template_str, origin).render(Context())
示例#33
0
 def test_phased(self):
     context = Context({'test_var': 'TEST'})
     pickled_context = '{# stashed context: "gAJ9cQAoVQpjc3JmX3Rva2VucQFVC05PVFBST1ZJREVEcQJVCHRlc3RfdmFycQNVBFRFU1RxBHUu" #}'
     first_render = compile_string(self.test_template, None).render(context)
     self.assertEqual(first_render, '%(delimiter)s{%% if 1 %%}test{%% endif %%}{%% if test_condition %%}stashed{%% endif %%}%(pickled_context)s%(delimiter)sTEST%(delimiter)s{%% if 1 %%}test2{%% endif %%}{%% if test_condition2 %%}stashed{%% endif %%}%(pickled_context)s%(delimiter)s' %
         dict(delimiter=settings.PHASED_SECRET_DELIMITER, pickled_context=pickled_context))
示例#34
0
 def test_phased(self):
     context = Context({'test_var': 'TEST'})
     first_render = compile_string(self.test_template, None).render(context)
     self.assertEqual(first_render, '%(delimiter)s{%% load phased_tags %%}{%% phased %%}{%% if 1 %%}first{%% endif %%}{%% endphased %%}{%% if 1 %%}second{%% endif %%}%(pickled_context)s%(delimiter)sTEST' %
         dict(delimiter=settings.PHASED_SECRET_DELIMITER, pickled_context=pickle_context(backup_csrf_token(context))))
示例#35
0
 def parse(self, *args):
     nodelist = template.NodeList()
     nodelist.extend(template.compile_string(text, None))
     return nodelist
示例#36
0
 def test_phased(self):
     context = Context({'test_var': 'TEST'})
     first_render = compile_string(self.test_template, None).render(context)
     self.assertEqual(first_render, 'fancydelimiter{%% if 1 %%}test{%% endif %%}%sfancydelimiterTEST' % pickle_context(backup_csrf_token(context)))
示例#37
0
 def test_second_pass(self):
     request = self.factory.get('/')
     first_render = compile_string(self.test_template, None).render(Context({'test_var': 'TEST'}))
     second_render = second_pass_render(request, first_render)
     self.assertEqual(second_render, 'firstsecondTEST')