|
27 | 27 | PageUrl,
|
28 | 28 | Placeholder,
|
29 | 29 | )
|
30 |
| -from cms.templatetags.cms_admin import GetPreviewUrl, get_page_display_name |
| 30 | +from cms.templatetags.cms_admin import GetAdminUrlForLanguage, GetPreviewUrl, get_page_display_name |
31 | 31 | from cms.templatetags.cms_js_tags import json_filter
|
32 | 32 | from cms.templatetags.cms_tags import (
|
33 | 33 | _get_page_by_untyped_arg,
|
|
43 | 43 |
|
44 | 44 |
|
45 | 45 | class TemplatetagTests(CMSTestCase):
|
| 46 | + def test_admin_pagecontent_language_tab_urls(self): |
| 47 | + # Same setup as in the templatetag test above |
| 48 | + page = create_page('AdminURLTestPage English Content', 'nav_playground.html', 'en') |
| 49 | + english_content = page.pagecontent_set(manager="admin_manager").first() |
| 50 | + german_content = create_page_content("de", "AdminURLTestPage German Content", page) |
| 51 | + |
| 52 | + # Try to fill the cache with partial data (this should not be possible) |
| 53 | + page.get_content_obj(language='en') # should not affect admin template tag |
| 54 | + page.get_admin_content(language='en') # Should fill the whole cache |
| 55 | + |
| 56 | + request = RequestFactory().get('/') |
| 57 | + request.current_page = page |
| 58 | + template = """ |
| 59 | + {% load cms_tags cms_admin %} |
| 60 | + {% get_admin_url_for_language page_obj 'en' %} |
| 61 | + {% get_admin_url_for_language page_obj 'de' %} |
| 62 | + {% get_admin_url_for_language page_obj 'fr' %} |
| 63 | + """ |
| 64 | + output = self.render_template_obj(template, {'page_obj': page}, request) |
| 65 | + self.assertIn(f'/en/admin/cms/pagecontent/{english_content.pk}/change/', output) |
| 66 | + self.assertIn(f'/en/admin/cms/pagecontent/{german_content.pk}/change/', output) |
| 67 | + self.assertIn(f'/en/admin/cms/pagecontent/add/?cms_page={page.pk}&language=fr', output) |
46 | 68 |
|
47 | 69 | def test_get_preview_url(self):
|
48 | 70 | """The get_preview_url template tag returns the content preview url for its language:
|
|
0 commit comments