Ejemplo n.º 1
0
class RenderPatternView(TemplateView):
    http_method_names = ("get",)
    template_name = get_pattern_base_template_name()

    @method_decorator(xframe_options_sameorigin)
    def get(self, request, pattern_template_name=None):
        pattern_template_ancestors = get_template_ancestors(
            pattern_template_name,
            context=get_pattern_context(self.kwargs["pattern_template_name"]),
        )
        pattern_is_fragment = set(pattern_template_ancestors).isdisjoint(
            set(get_base_template_names())
        )

        try:
            rendered_pattern = render_pattern(request, pattern_template_name)
        except TemplateIsNotPattern:
            raise Http404

        if pattern_is_fragment:
            context = self.get_context_data()
            context["pattern_library_rendered_pattern"] = rendered_pattern
            return self.render_to_response(context)

        return HttpResponse(rendered_pattern)
Ejemplo n.º 2
0
class RenderPatternView(TemplateView):
    http_method_names = ('get', )
    template_name = get_pattern_base_template_name()

    @method_decorator(xframe_options_sameorigin)
    def get(self, request, pattern_template_name=None):
        try:
            rendered_pattern = render_pattern(request, pattern_template_name)
        except TemplateIsNotPattern:
            raise Http404

        context = self.get_context_data()
        context['pattern_library_rendered_pattern'] = rendered_pattern

        return self.render_to_response(context)
Ejemplo n.º 3
0
class RenderPatternView(TemplateView):
    http_method_names = ('get', )
    template_name = get_pattern_base_template_name()

    def get(self, request, pattern_template_name=None):
        try:
            rendered_pattern = render_pattern(request, pattern_template_name)
        except TemplateIsNotPattern:
            return HttpResponseBadRequest()

        # Do not render page patterns as part of the base template
        # because it should already extend base template
        if is_pattern_type(pattern_template_name, 'pages'):
            return HttpResponse(rendered_pattern)

        context = self.get_context_data()
        context['pattern_library_rendered_pattern'] = rendered_pattern

        return self.render_to_response(context)
    def render_pattern(self, request, pattern_template_name):
        rendered_pattern = render_pattern(request, pattern_template_name)

        # If we don’t wrap fragments in the base template, we can simply render the pattern and return as-is.
        if not self.wrap_fragments:
            return rendered_pattern

        pattern_template_ancestors = get_template_ancestors(
            pattern_template_name,
            context=get_pattern_context(pattern_template_name),
        )
        pattern_is_fragment = set(pattern_template_ancestors).isdisjoint(
            set(get_base_template_names()))

        if pattern_is_fragment:
            base_template = get_pattern_base_template_name()
            context = get_pattern_context(base_template)
            context['pattern_library_rendered_pattern'] = rendered_pattern
            return render_to_string(base_template,
                                    request=request,
                                    context=context)
        else:
            return rendered_pattern