From 5c912fda9b31748c62e5c6e54167828040ae5fdf Mon Sep 17 00:00:00 2001 From: Olivier Le Brouster <olivier.le-brouster@webu.coop> Date: Wed, 7 Oct 2015 16:50:16 +0000 Subject: [PATCH] fix: i18n get_absolute_url --- newsbox_i18n/models.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/newsbox_i18n/models.py b/newsbox_i18n/models.py index 43a2c80..4f393d0 100644 --- a/newsbox_i18n/models.py +++ b/newsbox_i18n/models.py @@ -38,7 +38,8 @@ class NewsboxI18NBase(six.with_metaclass(NewsboxI18NModelBase, TranslatableModel def __str__(self): return self.safe_translation_getter( 'newsbox_title', - _('News #%d') % self.pk) + _('News #%d') % self.pk, + any_language=True) def get_slug(self, language=None, *args, **kwargs): """ @@ -59,18 +60,17 @@ class NewsboxI18NBase(six.with_metaclass(NewsboxI18NModelBase, TranslatableModel if not language: language = current_language - if language in self.get_available_languages(): - activate(language) - url = reverse(self._newsbox_meta['detail_url_name'], args=( - self.newsbox_date.strftime("%Y"), - self.newsbox_date.strftime("%m"), - self.newsbox_date.strftime("%d"), - self.get_slug(language=language),)) - activate(current_language) - return url - - return "./" - + if language not in self.get_available_languages(): + language = (list(self.get_fallback_languages()) + list(self.get_available_languages()))[0] + + activate(language) + url = reverse(self._newsbox_meta['detail_url_name'], args=( + self.newsbox_date.strftime("%Y"), + self.newsbox_date.strftime("%m"), + self.newsbox_date.strftime("%d"), + self.get_slug(language=language),)) + activate(current_language) + return url class Meta: abstract = True -- GitLab