def get_comment_url(comment_pk=None, comment=None, request=None, include_anchor=True): if comment_pk: import comments comment = get_object_or_404(comments.get_model(), pk=comment_pk, site__pk=settings.SITE_ID) if comment is None: raise Exception('No comment supplied') top_level = get_top_level_comment(comment) target = top_level.content_object page = get_comment_page(target=target, comment=top_level, request=request) if target and isinstance(page, int): url = UrlHelper(target.get_absolute_url()) if page <= 1: # Remove pager parameter as we want to go to the first page. url.del_params('page') else: # Update pager parameter url.update_query_data(page=page) full_url = url.get_full_path() if include_anchor: full_url += '#comment-%s' % comment._get_pk_val() return full_url
def pagination_link(page_obj, page, **kwargs): request_copy = copy(page_obj.request) if hasattr(request_copy, 'original_path'): request_copy.path = request_copy.original_path url = UrlHelper(request_copy.get_full_path()) try: page = int(page) if page == 1: url.del_params('page', **kwargs) else: url.update_query_data(page=page, **kwargs) full_url = url.get_full_path() if page_obj.anchor: full_url += '#%s' % page_obj.anchor return full_url except: return ''
def pagination_link(page_obj, page, **kwargs): request_copy = copy(page_obj.request) if hasattr(request_copy, 'original_path'): request_copy.path = request_copy.original_path url = UrlHelper(request_copy.get_full_path()) try: page = int(page) if page == 1: url.del_params('page', **kwargs) else: url.update_query_data(page=page, **kwargs) full_url = url.get_full_path() if page_obj.anchor: full_url += '#%s' % page_obj.anchor return full_url except: return ''
def test_delete_multiple_without_arguments(self): u = UrlHelper('/foo/bar?foo=1&bar=2') u.del_params() self.assertEqual(u.get_full_path(), '/foo/bar')
def test_delete_fails_silently_unicode(self): u = UrlHelper('/foo/bar?foo=слово&bar=2') u.del_params('foo', 'baz') # baz doesn't exist self.assertEqual(u.get_full_path(), '/foo/bar?bar=2')
def test_delete_multiple_keys_unicode(self): u = UrlHelper('/foo/bar?foo=слово&bar=2') u.del_params('foo', 'bar') self.assertEqual(u.get_full_path(), '/foo/bar')
def test_delete_multiple_without_arguments(self): u = UrlHelper('/foo/bar?foo=1&bar=2') u.del_params() self.assertEqual(u.get_full_path(), '/foo/bar')
def test_delete_fails_silently_unicode(self): u = UrlHelper('/foo/bar?foo=слово&bar=2') u.del_params('foo', 'baz') # baz doesn't exist self.assertEqual(u.get_full_path(), '/foo/bar?bar=2')
def test_delete_multiple_keys_unicode(self): u = UrlHelper('/foo/bar?foo=слово&bar=2') u.del_params('foo', 'bar') self.assertEqual(u.get_full_path(), '/foo/bar')