X-Git-Url: https://git.mdrn.pl/prawokultury.git/blobdiff_plain/fb2d5b78a90d3042f7eb5e8e419fcbe6e62fd00d..5af5cc14f6b2ecddcad714053e048e39d52ca02d:/migdal/views.py?ds=sidebyside diff --git a/migdal/views.py b/migdal/views.py index befa950..84cd6fe 100644 --- a/migdal/views.py +++ b/migdal/views.py @@ -3,10 +3,12 @@ # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # from django.shortcuts import get_object_or_404, render, redirect +from django.utils.translation import get_language from migdal import api from migdal.forms import get_submit_form from migdal.models import Category, Entry from migdal import app_settings +from haystack.views import SearchView def entry_list(request, type_db=None, category_slug=None): @@ -43,8 +45,9 @@ def entry_list(request, type_db=None, category_slug=None): def entry(request, type_db, slug): lang = request.LANGUAGE_CODE - args = {'type': type_db, 'slug_%s' % lang: slug, 'published_%s' % lang: True} - # TODO: preview for admins + args = {'type': type_db, 'slug_%s' % lang: slug} + if not request.user.has_perm('migdal.change_entry'): + args['published_%s' % lang] = True entry = get_object_or_404(Entry, **args) templates = ["migdal/entry/entry_detail.html"] @@ -67,4 +70,21 @@ def submit(request): }) def submit_thanks(request): - return render(request, "migdal/entry/submit_thanks.html") \ No newline at end of file + return render(request, "migdal/entry/submit_thanks.html") + + +class SearchPublishedView(SearchView): + def __init__(self, *args, **kwargs): + super(SearchPublishedView, self).__init__(*args, **kwargs) + + def get_results(self): + results = super(SearchPublishedView, self).get_results() + lang_code = get_language() + def is_published(entity): + if isinstance(entity, Entry): + return getattr(entity, "published_%s" % lang_code) == True + else: + return True + results = filter(lambda r: is_published(r.object), results) + print results + return results