def path_page(self, seo_url, **kwargs):
        """Handle SEO urls for ir.ui.views.

        ToDo: Add additional check for field seo_url_parent. Otherwise it is
        possible to use invalid url structures. For example: if you have two
        pages 'study-1' and 'study-2' with the same seo_url_level and different
        seo_url_parent you can use '/ecommerce/study-1/how-to-do-it-right' and
        '/ecommerce/study-2/how-to-do-it-right' to call the page
        'how-to-do-it-right'.
        """
        env = request.env(context=request.context)
        seo_url_parts = [s.encode('utf8') for s in seo_url.split('/')
                         if s != '']
        views = env['ir.ui.view'].search([('seo_url', 'in', seo_url_parts)],
                                         order='seo_url_level ASC')
        page = 'website.404'
        if len(seo_url_parts) == len(views):
            seo_url_check = [v.seo_url.encode('utf8') for v in views]
            current_view = views[-1]
            if (seo_url_parts == seo_url_check
                    and (current_view.seo_url_level + 1) == len(views)):
                page = current_view.xml_id

        if page == 'website.404':
            try:
                url = self.look_for_redirect_url(seo_url, **kwargs)
                if url:
                    return request.redirect(url, code=301)
                assert url is not None
            except Exception, e:
                return request.registry['ir.http']._handle_exception(e, 404)

        if page == 'website.404' and request.website.is_publisher():
            page = 'website.page_404'

        return request.render(page, {})