예제 #1
0
def get_request_from_message(message):
    """returns inicialized request
    """

    request = AsgiHandler.request_class(message)

    widget = message.content['widget']

    request.frontend_editing = True

    if not hasattr(request, '_feincms_extra_context'):
        request._feincms_extra_context = {}

    from leonardo.module.web.processors.config import ContextConfig

    # call processors
    for fn in reversed(list(widget.parent.request_processors.values())):
        fn(widget.parent, request)

    from django.core.handler.base import BaseHandler
    handler = BaseHandler()
    handler.load_middleware()

    # Apply request middleware
    for middleware_method in handler._request_middleware:
        middleware_method(request)

    request.LEONARDO_CONFIG = ContextConfig(request)

    return request
예제 #2
0
    def get_request_from_message(self, message, widget, user):
        """returns inicialized request
        """

        request = AsgiHandler.request_class(message)

        request.user = user
        request.path = widget.parent.get_absolute_url()
        request.frontend_editing = True

        if not hasattr(request, '_feincms_extra_context'):
            request._feincms_extra_context = {}

        # call processors
        for fn in reversed(list(widget.parent.request_processors.values())):
            fn(widget.parent, request)

        request.LEONARDO_CONFIG = ContextConfig(request)

        # this breaks all get_absolute_uri calls
        request.META['SERVER_NAME'] = 'localhost'
        request.META['SERVER_PORT'] = 80

        handler = BaseHandler()
        handler.load_middleware()

        # Apply request middleware
        for middleware_method in handler._request_middleware:
            try:
                middleware_method(request)
            except:
                pass

        # we know that we are in editing mode and user is logged in
        request.frontend_editing = True
        request.user = user

        # call processors
        for fn in reversed(list(widget.parent.request_processors.values())):
            fn(widget.parent, request)

        if hasattr(widget, 'process') and callable(widget.process):
            widget.process(request, view=self)

        return request