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