Beispiel #1
0
 def test_get_page_from_request_with_page_preview(self):
     page = create_page("page", "nav_playground.html")
     request = self.get_request('%s?preview' % page.get_absolute_url())
     request.user.is_staff = False
     found_page = get_page_from_request(request)
     self.assertEqual(found_page, None)
     superuser = self.get_superuser()
     with self.login_user_context(superuser):
         request = self.get_request('%s?preview&draft' % page.get_absolute_url())
         found_page = get_page_from_request(request)
         self.assertTrue(found_page)
         self.assertEqual(found_page.pk, page.pk)
Beispiel #2
0
 def test_get_page_from_request_with_page_preview(self):
     page = create_page("page", "nav_playground.html")
     request = self.get_request('%s?preview' % page.get_absolute_url())
     request.user.is_staff = False
     found_page = get_page_from_request(request)
     self.assertEqual(found_page, None)
     superuser = self.get_superuser()
     with self.login_user_context(superuser):
         request = self.get_request('%s?preview&draft' %
                                    page.get_absolute_url())
         found_page = get_page_from_request(request)
         self.assertTrue(found_page)
         self.assertEqual(found_page.pk, page.pk)
Beispiel #3
0
 def test_get_page_from_request_cached(self):
     mock_page = 'hello world'
     request = self.get_request(
         reverse('admin:sampleapp_category_change', args=(1, )))
     request._current_page_cache = mock_page
     page = get_page_from_request(request)
     self.assertEqual(page, mock_page)
Beispiel #4
0
 def test_get_page_from_request_cached(self):
     mock_page = 'hello world'
     request = self.get_request(
         reverse('admin:sampleapp_category_change', args=(1,))
     )
     request._current_page_cache = mock_page
     page = get_page_from_request(request)
     self.assertEqual(page, mock_page)
Beispiel #5
0
 def __get__(self, request, obj_type=None):
     from poser.utils.page_resolver import get_page_from_request
     if not hasattr(request, '_current_page_cache'):
         request._current_page_cache = get_page_from_request(request)
         if not request._current_page_cache:
             # if this is in a apphook
             # find the page the apphook is attached to
             request._current_page_cache = applications_page_check(request)
     return request._current_page_cache
Beispiel #6
0
 def __get__(self, request, obj_type=None):
     from poser.utils.page_resolver import get_page_from_request
     if not hasattr(request, '_current_page_cache'):
         request._current_page_cache = get_page_from_request(request)
         if not request._current_page_cache:
             # if this is in a apphook
             # find the page the apphook is attached to
             request._current_page_cache = applications_page_check(request)
     return request._current_page_cache
Beispiel #7
0
 def test_get_page_without_final_slash(self):
     root = create_page("root", "nav_playground.html", slug="root",
                        published=True)
     page = create_page("page", "nav_playground.html", slug="page",
                        published=True)
     root.publish()
     page.publish()
     request = self.get_request('/page')
     found_page = get_page_from_request(request)
     self.assertFalse(found_page is None)
Beispiel #8
0
 def test_get_page_without_final_slash(self):
     root = create_page("root",
                        "nav_playground.html",
                        slug="root",
                        published=True)
     page = create_page("page",
                        "nav_playground.html",
                        slug="page",
                        published=True)
     root.publish()
     page.publish()
     request = self.get_request('/page')
     found_page = get_page_from_request(request)
     self.assertFalse(found_page is None)
Beispiel #9
0
def details(request, slug):
    """
    Takes a request and a slug, renders the page's template.
    """
    # Get a Page model object from the request
    page = get_page_from_request(request, use_path=slug)
    if not page:
        return _handle_no_page(request, slug)

    # Check if the page has a redirect url defined
    redirect_url = page.get_redirect()
    if redirect_url:
        # prevent redirect to self
        own_urls = [
            'http%s://%s%s' % ('s' if request.is_secure() else '', request.get_host(), request.path),
            '/%s' % (request.path),
            request.path,
        ]
        if redirect_url not in own_urls:
            return HttpResponseRedirect(redirect_url)

    if not page.has_view_permission(request):
        return _handle_no_page(request, slug)

    if apphook_pool.get_apphooks():
        # There are apphooks in the pool. Let's see if there is one for the
        # current page
        # since we always have a page at this point, applications_page_check() is
        # pointless
        app_name = page.get_application()
        if app_name:
            app = apphook_pool.get_apphook(app_name)
            pattern_list = []
            for urlpatterns in get_app_urls(app.urls):
                pattern_list += urlpatterns
            urlpatterns = patterns('', *pattern_list)
            try:
                view, args, kwargs = resolve('/', tuple(urlpatterns))
                return view(request, *args, **kwargs)
            except Resolver404:
                pass
        else:
            return _handle_no_page(request, slug)
Beispiel #10
0
 def test_get_page_from_request_fakeadmin_nopage(self):
     request = self.get_request('/admin/')
     page = get_page_from_request(request)
     self.assertEqual(page, None)
Beispiel #11
0
 def test_get_page_from_request_with_page_404(self):
     page = create_page("page", "nav_playground.html", published=True)
     page.publish()
     request = self.get_request('/does-not-exist/')
     found_page = get_page_from_request(request)
     self.assertEqual(found_page, None)
Beispiel #12
0
 def test_get_page_from_request_fakeadmin_nopage(self):
     request = self.get_request('/admin/')
     page = get_page_from_request(request)
     self.assertEqual(page, None)
Beispiel #13
0
 def test_get_page_from_request_with_page_404(self):
     page = create_page("page", "nav_playground.html", published=True)
     page.publish()
     request = self.get_request('/does-not-exist/')
     found_page = get_page_from_request(request)
     self.assertEqual(found_page, None)