def item_extra_kwargs(self, item): if not item: return {} language = get_language_from_request(self.request, check_path=True) key = item.get_cache_key(language, 'feed') content = cache.get(key) if not content: view = PostDetailView.as_view(instant_article=True) response = view(self.request, slug=item.safe_translation_getter('slug')) response.render() content = self._clean_html(response.content) cache.set(key, content, timeout=get_setting('FEED_CACHE_TIMEOUT')) if item.app_config.use_abstract: abstract = strip_tags(item.safe_translation_getter('abstract')) else: abstract = strip_tags(item.safe_translation_getter('post_text')) return { 'author': item.get_author_name(), 'content': content, 'date': item.date_modified, 'date_pub': item.date_modified, 'date_mod': item.date_modified, 'abstract': abstract }
def get_urls(): urls = get_setting("PERMALINK_URLS") details = [] for urlconf in urls.values(): details.append( path(urlconf, PostDetailView.as_view(), name="post-detail"), ) return details
def get_urls(): urls = get_setting('PERMALINK_URLS') details = [] for urlconf in urls.values(): details.append( url(urlconf, PostDetailView.as_view(), name='post-detail'), ) return details
def item_extra_kwargs(self, item): if not item: return {} language = get_language_from_request(self.request, check_path=True) key = item.get_cache_key(language, "feed") content = cache.get(key) if not content: view = PostDetailView.as_view(instant_article=True) response = view(self.request, slug=item.safe_translation_getter("slug")) response.render() content = self._clean_html(response.content) cache.set(key, content, timeout=get_setting("FEED_CACHE_TIMEOUT")) if item.app_config.use_abstract: abstract = strip_tags(item.safe_translation_getter("abstract")) else: abstract = strip_tags(item.safe_translation_getter("post_text")) return { "author": item.get_author_name(), "content": content, "date": item.date_modified, "date_pub": item.date_modified, "date_mod": item.date_modified, "abstract": abstract, }
def test_post_detail_view(self): pages = self.get_pages() posts = self.get_posts() with smart_override('en'): with switch_language(posts[0], 'en'): request = self.get_page_request(pages[1], AnonymousUser(), lang='en', edit=False) view_obj = PostDetailView() view_obj.request = request view_obj.namespace, view_obj.config = get_app_instance(request) with self.assertRaises(Http404): view_obj.kwargs = {'slug': 'not-existing'} post_obj = view_obj.get_object() view_obj.kwargs = {'slug': posts[0].slug} post_obj = view_obj.get_object() self.assertEqual(post_obj, posts[0]) self.assertEqual(post_obj.language_code, 'en') with smart_override('it'): with switch_language(posts[0], 'it'): request = self.get_page_request(pages[1], AnonymousUser(), lang='it', edit=False) view_obj = PostDetailView() view_obj.request = request view_obj.namespace, view_obj.config = get_app_instance(request) view_obj.kwargs = {'slug': posts[0].slug} post_obj = view_obj.get_object() self.assertEqual(post_obj, posts[0]) self.assertEqual(post_obj.language_code, 'it') view_obj.object = post_obj context = view_obj.get_context_data() self.assertEqual(context['post'], posts[0]) self.assertEqual(context['post'].language_code, 'it') self.assertTrue(context['meta'])
def test_post_detail_view(self): page1, page2 = self.get_pages() post1, post2 = self.get_posts() request = self.get_page_request(page1, AnonymousUser(), r'/en/blog/', edit=False) activate('en') view_obj = PostDetailView() view_obj.request = request with self.assertRaises(Http404): view_obj.kwargs = {'slug': 'not-existing'} post_obj = view_obj.get_object() view_obj.kwargs = {'slug': post1.slug} post_obj = view_obj.get_object() self.assertEqual(post_obj, post1) self.assertEqual(post_obj.language_code, 'en') request = self.get_page_request(page1, AnonymousUser(), r'/it/blog/', lang_code='it', edit=False) activate('it') post1.set_current_language('it') view_obj.request = request view_obj.kwargs = {'slug': post1.slug} post_obj = view_obj.get_object() self.assertEqual(post_obj, post1) self.assertEqual(post_obj.language_code, 'it') view_obj.object = post_obj context = view_obj.get_context_data() self.assertEqual(context['post'], post1) self.assertEqual(context['post'].language_code, 'it') self.assertTrue(context['meta'])
def test_post_detail_view(self): posts = self.get_posts() pages = self.get_pages() with smart_override('en'): with switch_language(posts[0], 'en'): request = self.get_page_request(pages[1], AnonymousUser(), lang='en', edit=False) view_obj = PostDetailView() view_obj.request = request view_obj.namespace, view_obj.config = get_app_instance(request) with self.assertRaises(Http404): view_obj.kwargs = {'slug': 'not-existing'} post_obj = view_obj.get_object() view_obj.kwargs = {'slug': posts[0].slug} post_obj = view_obj.get_object() self.assertEqual(post_obj, posts[0]) self.assertEqual(post_obj.language_code, 'en') with smart_override('it'): with switch_language(posts[0], 'it'): request = self.get_page_request(pages[1], AnonymousUser(), lang='it', edit=False) view_obj = PostDetailView() view_obj.request = request view_obj.namespace, view_obj.config = get_app_instance(request) view_obj.kwargs = {'slug': posts[0].slug} post_obj = view_obj.get_object() self.assertEqual(post_obj, posts[0]) self.assertEqual(post_obj.language_code, 'it') view_obj.object = post_obj context = view_obj.get_context_data() self.assertEqual(context['post'], posts[0]) self.assertEqual(context['post'].language_code, 'it') self.assertTrue(context['meta'])
def test_post_detail_view(self): pages = self.get_pages() posts = self.get_posts() with smart_override("en"): with switch_language(posts[0], "en"): request = self.get_page_request(pages[1], AnonymousUser(), lang="en", edit=False) view_obj = PostDetailView() view_obj.request = request view_obj.namespace, view_obj.config = get_app_instance(request) with self.assertRaises(Http404): view_obj.kwargs = {"slug": "not-existing"} post_obj = view_obj.get_object() view_obj.kwargs = {"slug": posts[0].slug} post_obj = view_obj.get_object() self.assertEqual(post_obj, posts[0]) self.assertEqual(post_obj.language_code, "en") with smart_override("it"): with switch_language(posts[0], "it"): request = self.get_page_request(pages[1], AnonymousUser(), lang="it", edit=False) view_obj = PostDetailView() view_obj.request = request view_obj.namespace, view_obj.config = get_app_instance(request) view_obj.kwargs = {"slug": posts[0].slug} post_obj = view_obj.get_object() self.assertEqual(post_obj, posts[0]) self.assertEqual(post_obj.language_code, "it") view_obj.object = post_obj context = view_obj.get_context_data() self.assertEqual(context["post"], posts[0]) self.assertEqual(context["post"].language_code, "it") self.assertTrue(context["meta"])