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