コード例 #1
0
ファイル: editable_headfile.py プロジェクト: xuanxu11/PyLucid
    def get_rendered(self, colorscheme):
        color_dict = colorscheme.get_color_dict()

        for name, value in color_dict.iteritems():
            color_dict[name] = "#%s" % value

        rendered_content = render.render_string_template(self.content, color_dict)
        return rendered_content
コード例 #2
0
ファイル: editable_headfile.py プロジェクト: yzl11/PyLucid
    def get_rendered(self, colorscheme):
        color_dict = colorscheme.get_color_dict()

        for name, value in color_dict.items():
            color_dict[name] = "#%s" % value

        rendered_content = render.render_string_template(self.content, color_dict)
        return rendered_content
コード例 #3
0
ファイル: base_markup_model.py プロジェクト: BIGGANI/PyLucid
    def get_html(self, request=None, escape_django_tags=False, render_django_tags=False):
        """
        return self.content rendered as html:
            1. apply markup
            2. parse lucidTags/django template tags
        """
        if request is None:
            # e.g. called from template
            request = get_current_request()

        content1 = apply_markup(self.content, self.markup, request, escape_django_tags=escape_django_tags)

        if not render_django_tags:
            return content1
        else:
            context = request.PYLUCID.context
            content2 = render.render_string_template(content1, context)
            return content2
コード例 #4
0
    def get_html(self,
                 request=None,
                 escape_django_tags=False,
                 render_django_tags=False):
        """
        return self.content rendered as html:
            1. apply markup
            2. parse lucidTags/django template tags
        """
        if request is None:
            # e.g. called from template
            request = get_current_request()

        content1 = apply_markup(self.content,
                                self.markup,
                                request,
                                escape_django_tags=escape_django_tags)

        if not render_django_tags:
            return content1
        else:
            context = request.PYLUCID.context
            content2 = render.render_string_template(content1, context)
            return content2
コード例 #5
0
ファイル: views.py プロジェクト: BIGGANI/PyLucid

    if context["page_content"] is None:
        # Plugin has not filled the page content
        pagecontent_instance = _get_page_content(request)
        request.PYLUCID.pagecontent = request.PYLUCID.updateinfo_object = pagecontent_instance
        context["page_content"] = apply_markup(
            pagecontent_instance.content, pagecontent_instance.markup, request
        )

    # put update information into context
    for itemname in ("createby", "lastupdateby", "createtime", "lastupdatetime"):
        context["page_%s" % itemname] = getattr(request.PYLUCID.updateinfo_object, itemname, None)

    # Render django tags in PageContent with the global context
    context["page_content"] = render.render_string_template(context["page_content"], context)

    template_name = context["template_name"] # Added in pylucid.context_processors
    page_template= loader.get_template(template_name)
    pre_render_global_template.send(sender=None, request=request, page_template=page_template)

    # Render django tags in global template with global context
    complete_page = page_template.render(context)

    # create response object
    response = http.HttpResponse(complete_page, mimetype="text/html")
    response["content-language"] = context["page_language"]

    return response

コード例 #6
0
 def test_invalid_tag(self):
     self.assert_activation()
     content = render_string_template("pre{{ tag }}post", {})
     self.assertEqual(content, 'pre***invalid:tag***post')
     self.assertIn(TEMPLATE_INVALID_PREFIX, content)
コード例 #7
0
 def test_valid_tag(self):
     self.assert_activation()
     content = render_string_template("pre{{ tag }}post",
                                      {"tag": "FooBar!"})
     self.assertEqual(content, 'preFooBar!post')
     self.assertNotIn(TEMPLATE_INVALID_PREFIX, content)
コード例 #8
0
ファイル: test_render.py プロジェクト: jedie/django-tools
 def test_render_string_template(self):
     x = render_string_template("Foo {{ bar }}!", {"bar": "BAR"})
     assert_pformat_equal(x, "Foo BAR!")
コード例 #9
0
 def test_render_string_template(self):
     x = render_string_template("Foo {{ bar }}!", {"bar": "BAR"})
     self.assertEqual(x, 'Foo BAR!')
コード例 #10
0
ファイル: views.py プロジェクト: habibmasuro/PyLucid
def render_page(request, url_lang_code, url_path):
    """ render a PageContent page """
    path_info = request.PYLUCID.path_info
    pagetree = request.PYLUCID.pagetree
    pagemeta = request.PYLUCID.pagemeta

    # Should never happen, because all Plugin Pages should be catched
    # in url.py before
    assert pagetree.page_type == PageTree.PAGE_TYPE

    url_lang_code = path_info.url_lang_code

    # Check the language code in the url, if exist
    if url_lang_code.lower() != pagemeta.language.code.lower():
        # The language code in the url is wrong. e.g.: The client followed a external url with was wrong.
        # Note: The main_manu doesn't show links to not existing PageMeta entries!

        # change only the lang code in the url:
        new_url = i18n.change_url(request, new_lang_code=pagemeta.language.code)

        if settings.DEBUG or settings.PYLUCID.I18N_DEBUG:
            messages.error(request,
                "Language code in url %r is wrong! Redirect to %r." % (url_lang_code, new_url)
            )
        # redirect the client to the right url
        return http.HttpResponsePermanentRedirect(new_url)

    # Create initial context object
    context = request.PYLUCID.context = RequestContext(request)

    # it will be filled either by plugin or by PageContent:
    context["page_content"] = None

    # call a pylucid plugin "html get view", if exist
    get_view_response = PYLUCID_PLUGINS.call_get_views(request)
    if isinstance(get_view_response, http.HttpResponse):
        # Plugin would be build the complete html page
        return get_view_response
    elif isinstance(get_view_response, basestring):
        # Plugin replace the page content
        context["page_content"] = get_view_response
    elif get_view_response is not None: # Use plugin response
        raise # Should never happen here, because PYLUCID_PLUGINS.call_get_views() should raise before

    if context["page_content"] is None:
        # Plugin has not filled the page content
        pagecontent_instance = _get_page_content(request)
        request.PYLUCID.pagecontent = request.PYLUCID.updateinfo_object = pagecontent_instance
        context["page_content"] = apply_markup(
            pagecontent_instance.content, pagecontent_instance.markup, request
        )

    # put update information into context
    for itemname in ("createby", "lastupdateby", "createtime", "lastupdatetime"):
        context["page_%s" % itemname] = getattr(request.PYLUCID.updateinfo_object, itemname, None)

    # Render django tags in PageContent with the global context
    context["page_content"] = render.render_string_template(context["page_content"], context)

    template_name = context["base_template_name"] # Added in pylucid.context_processors
    page_template = loader.get_template(template_name)
    pre_render_global_template.send(sender=None, request=request, page_template=page_template)

    # Render django tags in global template with global context
    complete_page = page_template.render(context)

    # create response object
    response = http.HttpResponse(complete_page, mimetype="text/html")
    response["content-language"] = context["page_language"]

    return response
コード例 #11
0
 def test_invalid_tag(self):
     self.assert_activation()
     content = render_string_template("pre{{ tag }}post", {})
     assert_pformat_equal(content, "pre***invalid:tag***post")
     self.assertIn(TEMPLATE_INVALID_PREFIX, content)
コード例 #12
0
 def test_valid_tag(self):
     self.assert_activation()
     content = render_string_template("pre{{ tag }}post", {"tag": "FooBar!"})
     assert_pformat_equal(content, "preFooBar!post")
     self.assertNotIn(TEMPLATE_INVALID_PREFIX, content)
コード例 #13
0
 def test_render_string_template(self):
     x = render_string_template("Foo {{ bar }}!", {"bar": "BAR"})
     self.assertEqual(x, 'Foo BAR!')
コード例 #14
0
def render_page(request, url_lang_code, url_path):
    """ render a PageContent page """
    path_info = request.PYLUCID.path_info
    pagetree = request.PYLUCID.pagetree
    pagemeta = request.PYLUCID.pagemeta

    # Should never happen, because all Plugin Pages should be catched
    # in url.py before
    assert pagetree.page_type == PageTree.PAGE_TYPE

    url_lang_code = path_info.url_lang_code

    # Check the language code in the url, if exist
    if url_lang_code.lower() != pagemeta.language.code.lower():
        # The language code in the url is wrong. e.g.: The client followed a external url with was wrong.
        # Note: The main_manu doesn't show links to not existing PageMeta entries!

        # change only the lang code in the url:
        new_url = i18n.change_url(request,
                                  new_lang_code=pagemeta.language.code)

        if settings.DEBUG or settings.PYLUCID.I18N_DEBUG:
            messages.error(
                request, "Language code in url %r is wrong! Redirect to %r." %
                (url_lang_code, new_url))
        # redirect the client to the right url
        return http.HttpResponsePermanentRedirect(new_url)

    # Create initial context object
    context = request.PYLUCID.context = RequestContext(request)

    # it will be filled either by plugin or by PageContent:
    context["page_content"] = None

    # call a pylucid plugin "html get view", if exist
    get_view_response = PYLUCID_PLUGINS.call_get_views(request)
    if isinstance(get_view_response, http.HttpResponse):
        # Plugin would be build the complete html page
        return get_view_response
    elif isinstance(get_view_response, basestring):
        # Plugin replace the page content
        context["page_content"] = get_view_response
    elif get_view_response is not None:  # Use plugin response
        raise  # Should never happen here, because PYLUCID_PLUGINS.call_get_views() should raise before

    if context["page_content"] is None:
        # Plugin has not filled the page content
        pagecontent_instance = _get_page_content(request)
        request.PYLUCID.pagecontent = request.PYLUCID.updateinfo_object = pagecontent_instance
        context["page_content"] = apply_markup(pagecontent_instance.content,
                                               pagecontent_instance.markup,
                                               request)

    # put update information into context
    for itemname in ("createby", "lastupdateby", "createtime",
                     "lastupdatetime"):
        context["page_%s" % itemname] = getattr(
            request.PYLUCID.updateinfo_object, itemname, None)

    # Render django tags in PageContent with the global context
    context["page_content"] = render.render_string_template(
        context["page_content"], context)

    template_name = context[
        "base_template_name"]  # Added in pylucid.context_processors
    page_template = loader.get_template(template_name)
    pre_render_global_template.send(sender=None,
                                    request=request,
                                    page_template=page_template)

    # Render django tags in global template with global context
    complete_page = page_template.render(context)

    # create response object
    response = http.HttpResponse(complete_page, mimetype="text/html")
    response["content-language"] = context["page_language"]

    return response
コード例 #15
0
ファイル: test_render.py プロジェクト: yuekui/django-tools
 def test_render_string_template(self):
     x = render_string_template("Foo {{ bar }}!", {"bar": "BAR"})
     assert_pformat_equal(x, "Foo BAR!")