Merge pull request #341 from nephila/hotfix/post_language
Fix post language url
This commit is contained in:
commit
20ea302645
8 changed files with 30 additions and 6 deletions
|
@ -7,7 +7,9 @@ import os
|
||||||
from tempfile import mkdtemp
|
from tempfile import mkdtemp
|
||||||
|
|
||||||
|
|
||||||
def gettext(s): return s
|
def gettext(s):
|
||||||
|
return s
|
||||||
|
|
||||||
|
|
||||||
HELPER_SETTINGS = dict(
|
HELPER_SETTINGS = dict(
|
||||||
ROOT_URLCONF='tests.test_utils.urls',
|
ROOT_URLCONF='tests.test_utils.urls',
|
||||||
|
@ -138,5 +140,6 @@ def run():
|
||||||
from djangocms_helper import runner
|
from djangocms_helper import runner
|
||||||
runner.cms('djangocms_blog')
|
runner.cms('djangocms_blog')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
run()
|
run()
|
||||||
|
|
|
@ -308,6 +308,7 @@ class BlogConfigAdmin(BaseAppHookConfig, TranslatableAdmin):
|
||||||
menu_pool.clear(all=True)
|
menu_pool.clear(all=True)
|
||||||
return super(BlogConfigAdmin, self).save_model(request, obj, form, change)
|
return super(BlogConfigAdmin, self).save_model(request, obj, form, change)
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(BlogCategory, BlogCategoryAdmin)
|
admin.site.register(BlogCategory, BlogCategoryAdmin)
|
||||||
admin.site.register(Post, PostAdmin)
|
admin.site.register(Post, PostAdmin)
|
||||||
admin.site.register(BlogConfig, BlogConfigAdmin)
|
admin.site.register(BlogConfig, BlogConfigAdmin)
|
||||||
|
|
|
@ -134,4 +134,6 @@ class BlogConfigForm(AppDataForm):
|
||||||
label=_('Send notifications on post update'), required=False, initial=False,
|
label=_('Send notifications on post update'), required=False, initial=False,
|
||||||
help_text=_('Emits a desktop notification -if enabled- when editing a published post')
|
help_text=_('Emits a desktop notification -if enabled- when editing a published post')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
setup_config(BlogConfigForm, BlogConfig)
|
setup_config(BlogConfigForm, BlogConfig)
|
||||||
|
|
|
@ -11,6 +11,7 @@ from .menu import BlogCategoryMenu
|
||||||
from .settings import get_setting
|
from .settings import get_setting
|
||||||
|
|
||||||
|
|
||||||
|
@apphook_pool.register
|
||||||
class BlogApp(AutoCMSAppMixin, CMSConfigApp):
|
class BlogApp(AutoCMSAppMixin, CMSConfigApp):
|
||||||
name = _('Blog')
|
name = _('Blog')
|
||||||
urls = ['djangocms_blog.urls']
|
urls = ['djangocms_blog.urls']
|
||||||
|
@ -28,5 +29,6 @@ class BlogApp(AutoCMSAppMixin, CMSConfigApp):
|
||||||
'object_name': get_setting('DEFAULT_OBJECT_NAME')
|
'object_name': get_setting('DEFAULT_OBJECT_NAME')
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
apphook_pool.register(BlogApp)
|
|
||||||
|
|
||||||
BlogApp.setup()
|
BlogApp.setup()
|
||||||
|
|
|
@ -104,8 +104,6 @@ class BlogCategoryMenu(CMSAttachMenu):
|
||||||
|
|
||||||
return nodes
|
return nodes
|
||||||
|
|
||||||
menu_pool.register_menu(BlogCategoryMenu)
|
|
||||||
|
|
||||||
|
|
||||||
class BlogNavModifier(Modifier):
|
class BlogNavModifier(Modifier):
|
||||||
"""
|
"""
|
||||||
|
@ -159,7 +157,9 @@ class BlogNavModifier(Modifier):
|
||||||
node.selected = True
|
node.selected = True
|
||||||
return nodes
|
return nodes
|
||||||
|
|
||||||
|
|
||||||
menu_pool.register_modifier(BlogNavModifier)
|
menu_pool.register_modifier(BlogNavModifier)
|
||||||
|
menu_pool.register_menu(BlogCategoryMenu)
|
||||||
|
|
||||||
|
|
||||||
def clear_menu_cache(**kwargs):
|
def clear_menu_cache(**kwargs):
|
||||||
|
@ -168,5 +168,6 @@ def clear_menu_cache(**kwargs):
|
||||||
"""
|
"""
|
||||||
menu_pool.clear(all=True)
|
menu_pool.clear(all=True)
|
||||||
|
|
||||||
|
|
||||||
post_save.connect(clear_menu_cache, sender=BlogCategory)
|
post_save.connect(clear_menu_cache, sender=BlogCategory)
|
||||||
post_delete.connect(clear_menu_cache, sender=BlogCategory)
|
post_delete.connect(clear_menu_cache, sender=BlogCategory)
|
||||||
|
|
|
@ -234,10 +234,10 @@ class Post(KnockerModel, ModelMeta, TranslatableModel):
|
||||||
super(Post, self).save_translation(translation, *args, **kwargs)
|
super(Post, self).save_translation(translation, *args, **kwargs)
|
||||||
|
|
||||||
def get_absolute_url(self, lang=None):
|
def get_absolute_url(self, lang=None):
|
||||||
if not lang or lang not in self.get_available_languages():
|
|
||||||
lang = self.get_current_language()
|
|
||||||
if not lang or lang not in self.get_available_languages():
|
if not lang or lang not in self.get_available_languages():
|
||||||
lang = get_language()
|
lang = get_language()
|
||||||
|
if not lang or lang not in self.get_available_languages():
|
||||||
|
lang = self.get_current_language()
|
||||||
with switch_language(self, lang):
|
with switch_language(self, lang):
|
||||||
category = self.categories.first()
|
category = self.categories.first()
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
|
|
|
@ -20,6 +20,7 @@ def get_urls():
|
||||||
)
|
)
|
||||||
return details
|
return details
|
||||||
|
|
||||||
|
|
||||||
detail_urls = get_urls()
|
detail_urls = get_urls()
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
|
|
@ -608,6 +608,20 @@ class ModelsTest(BaseTest):
|
||||||
post.app_config = self.app_config_1
|
post.app_config = self.app_config_1
|
||||||
self.assertTrue(re.match(r'.*/%s/$' % post.slug, post.get_absolute_url()))
|
self.assertTrue(re.match(r'.*/%s/$' % post.slug, post.get_absolute_url()))
|
||||||
|
|
||||||
|
def test_url_language(self):
|
||||||
|
self.get_pages()
|
||||||
|
post = self._get_post(self._post_data[0]['en'])
|
||||||
|
post = self._get_post(self._post_data[0]['it'], post, 'it')
|
||||||
|
|
||||||
|
with override('it'):
|
||||||
|
self.assertEqual(post.get_current_language(), 'en')
|
||||||
|
self.assertEqual(post.get_absolute_url(), post.get_absolute_url('it'))
|
||||||
|
|
||||||
|
post.set_current_language('it')
|
||||||
|
with override('en'):
|
||||||
|
self.assertEqual(post.get_current_language(), 'it')
|
||||||
|
self.assertEqual(post.get_absolute_url(), post.get_absolute_url('en'))
|
||||||
|
|
||||||
def test_manager(self):
|
def test_manager(self):
|
||||||
self.get_pages()
|
self.get_pages()
|
||||||
post1 = self._get_post(self._post_data[0]['en'])
|
post1 = self._get_post(self._post_data[0]['en'])
|
||||||
|
|
Loading…
Reference in a new issue