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