Example #1
0
    def render(self, context=None, request=None):
        # type: (Optional[Union[Dict[str, Any], Context]], Optional[HttpRequest]) -> Text
        if context is None:
            context = {}

        if isinstance(context, Context):
            # Jinja2 expects a dictionary
            # This condition makes sure that `flatten` is called only when
            # `context` is an instance of `Context`.
            #
            # Note: If we don't ignore then mypy complains about missing
            # `flatten` attribute in some members of union.
            context = context.flatten()  # type: ignore

        if request is not None:
            context['request'] = request
            context['csrf_input'] = csrf_input_lazy(request)
            context['csrf_token'] = csrf_token_lazy(request)

            for context_processor in self.context_processors:
                cp = import_string(context_processor)
                context.update(cp(request))

        if self.debug:
            template_rendered.send(sender=self, template=self, context=context)

        return self.template.render(context)
def defaults(request):
    context = {}

    context['csrf_input'] = csrf_input_lazy(request)
    context['static'] = static

    return context
Example #3
0
    def render(self, context=None, request=None):
        """
        Render the template with a given context. Here we're adding
        some context variables that are required for all templates in
        the system like the statix url and the CSRF tokens, etc.

        :param context: It must be a dict if provided
        :param request: It must be a django.http.HttpRequest if provided
        :return: A rendered template
        """
        if context is None:
            context = {}

        if request is not None:
            # As Django doesn't have a global request object,
            # it's useful to put it in the context.
            context['request'] = request
            # Passing the CSRF token is mandatory.
            context['csrf_input'] = csrf_input_lazy(request)
            context['csrf_token'] = csrf_token_lazy(request)

            context['static'] = static
            context['url'] = reverse

        return self.template.render(**context)
Example #4
0
    def render(self, context=None, request=None):
        """
        Render the template with a given context. Here we're adding
        some context variables that are required for all templates in
        the system like the statix url and the CSRF tokens, etc.

        :param context: It must be a dict if provided
        :param request: It must be a django.http.HttpRequest if provided
        :return: A rendered template
        """
        if context is None:
            context = {}

        if request is not None:
            # As Django doesn't have a global request object,
            # it's useful to put it in the context.
            context['request'] = request
            # Passing the CSRF token is mandatory.
            context['csrf_input'] = csrf_input_lazy(request)
            context['csrf_token'] = csrf_token_lazy(request)

            context['static'] = static
            context['url'] = reverse

        return self.template.render(**context)
Example #5
0
def home(request):

    if request.GET:
        city_name = request.GET.get('cityName', '')
        weather_d = backend.save_city_weather(city_name)
    else:
        weather_d = backend.save_city_weather()

    weather = weather_d['last_weather']
    weather_set = weather_d['forecast_pressure_dict']
    temperature = weather_d['list_temp']

    template_gc = loader.get_template("g_charts.html")

    context = {
        'values': weather_set,
        'weather': weather,
        'temp': temperature,
        'csrf_input': csrf_input_lazy(request),
        'csrf_token': csrf_token_lazy(request),
        'city': 'in ' + city_name
    }

    # return HttpResponse(template.render(context))
    return HttpResponse(template_gc.render(context))
Example #6
0
        def render(self, context=None, request=None):
            # type: (Optional[Union[Dict[str, Any], Context]], Optional[HttpRequest]) -> text_type
            if context is None:
                context = {}

            if isinstance(context, Context):
                # Jinja2 expects a dictionary
                # This condition makes sure that `flatten` is called only when
                # `context` is an instance of `Context`.
                #
                # Note: If we don't ignore then mypy complains about missing
                # `flatten` attribute in some members of union.
                context = context.flatten()  # type: ignore

            if request is not None:
                context['request'] = request
                context['csrf_input'] = csrf_input_lazy(request)
                context['csrf_token'] = csrf_token_lazy(request)

                for context_processor in self.context_processors:
                    cp = import_string(context_processor)
                    context.update(cp(request))

            if self.debug:
                template_rendered.send(sender=self, template=self,
                                       context=context)

            return self.template.render(context)
Example #7
0
 def render(self, context=None, request=None):
     if context is None:
         context = {}
     if request is not None:
         context['request'] = request
         context['csrf_input'] = csrf_input_lazy(request)
         context['csrf_token'] = csrf_token_lazy(request)
     return self.template.render(context)
Example #8
0
 def render(self, context=None, request=None):
     if context is None:
         context = {}
     if request is not None:
         context['request'] = request
         context['csrf_input'] = csrf_input_lazy(request)
         context['csrf_token'] = csrf_token_lazy(request)
     return self.template.render(context)
Example #9
0
def stream_http_with_jinja2_template(request, template, context):

    j2_env = environment_with_loader()

    if request is not None:
        context['csrf_input'] = csrf_input_lazy(request)
        context['csrf_token'] = csrf_token_lazy(request)

    return StreamingHttpResponse(j2_env.get_template(template).generate(context))
 def render(self, context=None, request=None):
     if context is None:
         context = {}
     if request is not None:
         context['request'] = request
         context['csrf_input'] = csrf_input_lazy(request)
         context['csrf_token'] = csrf_token_lazy(request)
     template = self.templateClass(searchList=[context])
     return template.respond()
Example #11
0
    def render(self, context=None, request=None):
        """
        Render the template with a given context. Here we're adding
        some context variables that are required for all templates in
        the system like the statix url and the CSRF tokens, etc.

        :param context: It must be a dict if provided
        :param request: It must be a django.http.HttpRequest if provided
        :return: A rendered template
        """
        if context is None:
            context = {}

        context['static'] = static
        context['url'] = self.get_reverse_url()

        if request is not None:
            # As Django doesn't have a global request object,
            # it's useful to put it in the context.
            context['request'] = request
            # Passing the CSRF token is mandatory.
            context['csrf_input'] = csrf_input_lazy(request)
            context['csrf_token'] = csrf_token_lazy(request)

        try:
            return self.template.render(**context)
        except Exception as e:
            traceback = RichTraceback()

            source = traceback.source
            if not source:
                # There's no template source lines then raise
                raise e

            source = source.split('\n')
            line = traceback.lineno
            top = max(0, line - 4)
            bottom = min(len(source), line + 5)
            source_lines = [(i + 1, source[i]) for i in range(top, bottom)]

            e.template_debug = {
                'name': traceback.records[5][4],
                'message': '{}: {}'.format(traceback.errorname,
                                           traceback.message),
                'source_lines': source_lines,
                'line': line,
                'during': source_lines[line - top - 1][1],
                'total': bottom - top,
                'bottom': bottom,
                'top': top + 1,
                # mako's RichTraceback doesn't return column number
                'before': '',
                'after': '',
            }

            raise e
 def render(self, context=None, request=None):
     if context is None:
         context = {}
     if request is not None:
         context['request'] = request
         context['csrf_input'] = csrf_input_lazy(request)
         context['csrf_token'] = csrf_token_lazy(request)
         for cp in self.context_processors:
             context.update(cp(request))
     return self.template.render(context)
Example #13
0
 def render(self, context=None, request=None):
     from django.template.backends.utils import csrf_input_lazy, csrf_token_lazy
     if context is None:
         context = {}
     if request is not None:
         context['request'] = request
         context['csrf_input'] = csrf_input_lazy(request)
         context['csrf_token'] = csrf_token_lazy(request)
         for context_processor in self.backend.template_context_processors:
             context.update(context_processor(request))
     return self.template.render(context)
Example #14
0
 def render(self, context=None, request=None):
     if context is None:
         context = {}
     if request is not None:
         context['user'] = request.user
         context['request'] = request
         context['csrf_input'] = csrf_input_lazy(request)
         context['csrf_token'] = csrf_token_lazy(request)
     ctx = defaultdict(str)
     ctx.update(context)
     return self.template(ctx)
Example #15
0
    def render(self, context=None, request=None):
        context = self.options
        if request is not None:
            context['request'] = request
            context['csrf_input'] = csrf_input_lazy(request)
            context['csrf_token'] = csrf_token_lazy(request)
        context = {
            'source': self.source,
            'writer_name': 'html'
        }

        return core.publish_parts(**context)['html_body']
Example #16
0
 def render(self, context=None, request=None):
     if context is None:
         context = {}
     if request is not None:
         context['request'] = request
         lazy_csrf_input = csrf_input_lazy(request)
         context['csrf'] = lambda: lazy_csrf_input
         context['csrf_input'] = lazy_csrf_input
         context['csrf_token'] = csrf_token_lazy(request)
         for cp in self.context_processors:
             context.update(cp(request))
     return self.template.render(context)
Example #17
0
    def render(self, context=None, request=None):
        if context is None:
            context = {}

        if request is not None:
            context["request"] = request
            context["csrf_input"] = csrf_input_lazy(request)
            context["csrf_token"] = csrf_token_lazy(request)

            # Support for django context processors
            for processor in self.backend.context_processors:
                context.update(processor(request))

        return self.template.render(context)
Example #18
0
    def render(self, context=None, request=None):
        if context is None:
            context = {}

        if request is not None:
            context["request"] = request
            context["csrf_input"] = csrf_input_lazy(request)
            context["csrf_token"] = csrf_token_lazy(request)

            # Support for django context processors
            for processor in self.backend.context_processors:
                context.update(processor(request))

        return self.template.render(context)
Example #19
0
    def render(self, context=None, request=None):
        base_url = self.get_base_url(request)
        if context is None:
            context = {}
        if request is not None:
            context['request'] = request
            context['csrf_input'] = csrf_input_lazy(request)
            context['csrf_token'] = csrf_token_lazy(request)

        html = weasyprint.HTML(
            string=self.template.render(make_context(context)),
            base_url=base_url,
        )
        html.render()
        return html.write_pdf()
def csrf(request):
    '''
    Adds the "csrf_input" and "csrf_token" variables to the request.

    Following Django's lead, this processor is included in DMP's
    default context processors list. It does not need to be listed
    in settings.py.

    To include the <input name="csrf".../> control in your forms,
    use ${ csrf_input }.
    '''
    return {
        'csrf_input': csrf_input_lazy(request),
        'csrf_token': csrf_token_lazy(request),
    }
Example #21
0
    def render(self, context=None, request=None):

        context_env = getattr(self, "env", {})

        if context is None:
            context = {}

        context.update(context_env)

        if request is not None:
            context['request'] = request
            context['csrf_input'] = csrf_input_lazy(request)
            context['csrf_token'] = csrf_token_lazy(request)

        return self.template.render(**context)
def csrf(request):
    '''
    Adds the "csrf_input" and "csrf_token" variables to the request.

    Following Django's lead, this processor is included in DMP's
    default context processors list. It does not need to be listed
    in settings.py.

    To include the <input name="csrf".../> control in your forms,
    use ${ csrf_input }.
    '''
    return {
        'csrf_input': csrf_input_lazy(request),
        'csrf_token': csrf_token_lazy(request),
    }
 def render(self, context=None, request=None):
     genshi_context = GenshiContext()
     genshi_context['static'] = staticfiles_storage.url
     genshi_context['url'] = reverse
     if request is not None:
         genshi_context['request'] = request
         genshi_context['csrf_input'] = csrf_input_lazy(request)
         genshi_context['csrf_token'] = csrf_token_lazy(request)
     if context is not None:
         genshi_context.push(context)
     stream = self.template.generate(genshi_context)
     template_render.send(self, genshi_context=genshi_context)
     # this might raise a genshi.template.eval.UndefinedError (derived from
     # genshi.template.base.TemplateRuntimeError)
     return stream.render(self.serialization, doctype=self.doctype)
Example #24
0
    def render(self, context=None, request=None):
        if context is None:
            context = {}

        if request is not None:
            for processor in self.context_processors:
                try:
                    context.update(processor(request))
                except Exception:  # pylint: disable=broad-except
                    pass

            context["request"] = request
            context["csrf_input"] = csrf_input_lazy(request)
            context["csrf_token"] = csrf_token_lazy(request)

        return self.template.render_unicode(**context)
Example #25
0
    def render(self, context=None, request=None):
        if context is None:
            context = {}

        if request is not None:
            for processor in self.context_processors:
                try:
                    context.update(processor(request))
                except Exception:
                    pass

            context['request'] = request
            context['csrf_input'] = csrf_input_lazy(request)
            context['csrf_token'] = csrf_token_lazy(request)

        return self.template.render_unicode(**context)
Example #26
0
        def render(self, context=None, request=None):
            if context is None:
                context = {}

            if isinstance(context, Context):
                context = context.flatten()  # Jinja2 expects a dictionary

            if request is not None:
                context['request'] = request
                context['csrf_input'] = csrf_input_lazy(request)
                context['csrf_token'] = csrf_token_lazy(request)

                for context_processor in self.context_processors:
                    cp = import_string(context_processor)
                    context.update(cp(request))

            return self.template.render(context)
Example #27
0
    def render(self, context=None, request=None):
        if context is None:
            context = {}

        if isinstance(context, Context):
            context = context.flatten()  # Jinja2 expects a dictionary

        if request is not None:
            context['request'] = request
            context['csrf_input'] = csrf_input_lazy(request)
            context['csrf_token'] = csrf_token_lazy(request)

            for context_processor in self.context_processors:
                cp = import_string(context_processor)
                context.update(cp(request))

        return self.template.render(context)
Example #28
0
    def render(self, context=None, request=None):
        if context is None:
            context = {}

        context = base.dict_from_context(context)

        if request is not None:

            def _get_val():
                token = csrf.get_token(request)
                if token is None:
                    return 'NOTPROVIDED'
                else:
                    return smart_text(token)

            context["request"] = request
            context["csrf_token"] = SimpleLazyObject(_get_val)
            context["csrf_input"] = csrf_input_lazy(request)

            # Support for django context processors
            for processor in self.backend.context_processors:
                context.update(processor(request))

        if self.backend._tmpl_debug:
            from django.test import signals

            # Define a "django" like context for emitatet the multi
            # layered context object. This is mainly for apps like
            # django-debug-toolbar that are very coupled to django's
            # internal implementation of context.

            if not isinstance(context, BaseContext):

                class CompatibilityContext(dict):
                    @property
                    def dicts(self):
                        return [self]

                context = CompatibilityContext(context)

            signals.template_rendered.send(sender=self,
                                           template=self,
                                           context=context)

        return mark_safe(self.template.render(context))
Example #29
0
    def render(self, context=None, request=None):
        real_context = {}

        real_context["settings"] = project_settings

        if request is not None:
            real_context["request"] = request
            real_context["csrf_input"] = csrf_input_lazy(request)
            real_context["csrf_token"] = csrf_token_lazy(request)

            if self.engine:
                for processor in self.engine.template_context_processors:
                    real_context.update(processor(request))

        if context:
            real_context.update(context)

        return self.template.render(real_context)
Example #30
0
    def render(self, context=None, request=None):
        """ Rendre le template """
        output_context = context or dict()
        output_context.update(MakoTemplates.base_template_context)

        if request is not None:
            for processor in self.context_processors:
                # noinspection PyBroadException
                try:
                    output_context.update(processor(request))
                except Exception:
                    pass

        if request is not None:
            output_context['request'] = request
            output_context['csrf_input'] = csrf_input_lazy(request)
            output_context['csrf_token'] = csrf_token_lazy(request)

        return mark_safe(self.template.render(**output_context))
Example #31
0
    def render(self, context=None, request=None):
        from django.template.backends.utils import csrf_input_lazy, csrf_token_lazy

        if context is None:
            context = {}

        if request is not None:
            context["request"] = request
            context["csrf_input"] = csrf_input_lazy(request)
            context["csrf_token"] = csrf_token_lazy(request)
            for context_processor in self.backend.template_context_processors:
                context.update(context_processor(request))

        try:
            return self.template.render(context)
        except liquid.exceptions.LiquidSyntaxError as exc:
            new = TemplateSyntaxError(exc.args)
            new.template_debug = get_exception_info(exc)
            raise new from exc
Example #32
0
def render_jinja_conference_response(request, conference, pagemagic,
                                     templatename, dictionary):
    # If ?test=1 is specified, try to load a template with .test in the
    # name.
    if request.GET.get('test', None) == '1':
        templatename = templatename + '.test'

    d = {
        'pagemagic': pagemagic,
        'csrf_input': csrf_input_lazy(request),
        'csrf_token': csrf_token_lazy(request),
        'messages': get_messages(request),
    }

    if request.user and request.user.is_authenticated():
        d.update({
            'username':
            request.user.username,
            'userfullname':
            '{0} {1}'.format(request.user.first_name, request.user.last_name),
            'useremail':
            request.user.email,
        })
    else:
        d.update({
            'username': None,
            'userfullname': None,
            'useremail': None,
        })
    if dictionary:
        d.update(dictionary)

    return HttpResponse(
        render_jinja_conference_template(conference, templatename, d),
        content_type='text/html',
    )