From 95977c420255d1d0cc9c5ad001ccbe6df5347fc7 Mon Sep 17 00:00:00 2001
From: DylannCordel <d.cordel@webu.coop>
Date: Wed, 10 Aug 2016 14:13:43 +0200
Subject: [PATCH] qualification/omnt#48

---
 newsbox/views.py      |  4 ++--
 newsbox_i18n/views.py | 14 ++++++++++----
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/newsbox/views.py b/newsbox/views.py
index cc9f6a7..871dc7b 100644
--- a/newsbox/views.py
+++ b/newsbox/views.py
@@ -89,9 +89,9 @@ class NewsboxDetailView(DateDetailView):
         context['object'] = context['news']
         return context
 
-    def get_object(self):
+    def get_object(self, queryset=None):
         # We check user permission
-        obj = super(NewsboxDetailView, self).get_object()
+        obj = super(NewsboxDetailView, self).get_object(queryset)
         if(
             not obj.is_published()
             and not obj.has_change_permission(self.request)
diff --git a/newsbox_i18n/views.py b/newsbox_i18n/views.py
index 5a5cb3a..26a8c2b 100644
--- a/newsbox_i18n/views.py
+++ b/newsbox_i18n/views.py
@@ -17,12 +17,18 @@ class NewsboxI18NDetailView(NewsboxDetailView):
 
     slug_field = "translations__newsbox_slug"
 
-    def get_queryset(self):
+    def get_object(self, queryset=None):
         """
         As slug_field is translated, we need to use translation aware
         queryset.
         """
+        if not queryset:
+            queryset = self.get_queryset()
         language = get_language()
-        queryset = super(NewsboxI18NDetailView, self).get_queryset()
-        queryset = queryset.translated(language, newsbox_slug=self.kwargs[self.slug_url_kwarg])
-        return queryset
+        obj = queryset.translated(language, newsbox_slug=self.kwargs[self.slug_url_kwarg]).get()
+        if(
+            not obj.is_published()
+            and not obj.has_change_permission(self.request)
+        ):
+            raise Http404
+        return obj
-- 
GitLab