From b4d4a7c9178281b27f324bcf692920c62180a1e9 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Fri, 26 Jun 2020 02:12:01 +0200 Subject: [PATCH] =?UTF-8?q?Novinky:=20I=20star=C3=A9=20novinky=20chceme=20?= =?UTF-8?q?v=C5=A1echny?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fun fact: předtím neveřejné novinky byly vidět jen na titulní stránce, v seznamu starších ne... --- seminar/views/views_all.py | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 22cd857f..fd9afa47 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -227,16 +227,25 @@ class AktualniZadaniView(TreeNodeView): ### Titulni strana +def spravne_novinky(request): + """ + Vrátí správný QuerySet novinek, tedy ten, který daný uživatel smí vidět. + Tj. Organizátorům všechny, ostatním jen veřejné + """ + user = request.user + # Využíváme líné vyhodnocování QuerySetů + qs = Novinky.objects.all() + # TODO: Tohle by mělo spíš kontrolovat, že je/není někdo org, než že může do Adminu. + if not user.is_staff: + qs = qs.filter(zverejneno=True) + return qs.order_by('-datum') + + class TitulniStranaView(generic.ListView): template_name='seminar/titulnistrana.html' def get_queryset(self): - # Pro nepřihlášené uživatele chceme novinky jen veřejné - # Využíváme líné vyhodnocování QuerySetů - qs = Novinky.objects.all() - if not self.request.user.is_authenticated: - qs = qs.filter(zverejneno=True) - return qs.order_by('-datum')[:5] + return spravne_novinky(self.request)[:5] def get_context_data(self, **kwargs): context = super(TitulniStranaView, self).get_context_data(**kwargs) @@ -273,9 +282,10 @@ class TitulniStranaView(generic.ListView): return context class StareNovinkyView(generic.ListView): - model = Novinky template_name = 'seminar/stare_novinky.html' - queryset = Novinky.objects.filter(zverejneno=True).order_by('-datum') + + def get_queryset(self): + return spravne_novinky(self.request) ### Co je M&M