From 9920465f994aa5fc8d6c0a6b4ab1983cfc30afae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sun, 4 Aug 2024 16:57:39 +0200 Subject: [PATCH] Split novinek --- mamweb/urls.py | 3 +++ novinky/__init__.py | 3 +++ .../templates/novinky}/novinky.html | 0 .../templates/novinky}/stare_novinky.html | 2 +- novinky/urls.py | 7 ++++++ novinky/views.py | 23 +++++++++++++++++++ .../seminar/titulnistrana/titulnistrana.html | 2 +- seminar/urls.py | 1 - seminar/views/views_all.py | 19 +-------------- 9 files changed, 39 insertions(+), 21 deletions(-) rename {seminar/templates/seminar => novinky/templates/novinky}/novinky.html (100%) rename {seminar/templates/seminar => novinky/templates/novinky}/stare_novinky.html (78%) create mode 100644 novinky/urls.py diff --git a/mamweb/urls.py b/mamweb/urls.py index 4b870fec..95fd90a4 100644 --- a/mamweb/urls.py +++ b/mamweb/urls.py @@ -39,6 +39,9 @@ urlpatterns = [ # Autentizační aplikace (ma vlastni podadresare) path('', include('various.autentizace.urls')), + # Novinková aplikace (ma vlastni podadresare) + path('', include('novinky.urls')), + # Api (ma vlastni podadresare) (autocomplete apod.) path('', include('api.urls')), diff --git a/novinky/__init__.py b/novinky/__init__.py index e69de29b..26e6a606 100644 --- a/novinky/__init__.py +++ b/novinky/__init__.py @@ -0,0 +1,3 @@ +""" +Obsahuje vše okolo novinek (zpráv „Co je nového?“ na titulní straně). +""" diff --git a/seminar/templates/seminar/novinky.html b/novinky/templates/novinky/novinky.html similarity index 100% rename from seminar/templates/seminar/novinky.html rename to novinky/templates/novinky/novinky.html diff --git a/seminar/templates/seminar/stare_novinky.html b/novinky/templates/novinky/stare_novinky.html similarity index 78% rename from seminar/templates/seminar/stare_novinky.html rename to novinky/templates/novinky/stare_novinky.html index c300eaae..faf4c972 100644 --- a/seminar/templates/seminar/stare_novinky.html +++ b/novinky/templates/novinky/stare_novinky.html @@ -8,6 +8,6 @@ {% endblock %} - {% include 'seminar/novinky.html' %} + {% include 'novinky/novinky.html' %} {% endblock %} diff --git a/novinky/urls.py b/novinky/urls.py new file mode 100644 index 00000000..6a3be15b --- /dev/null +++ b/novinky/urls.py @@ -0,0 +1,7 @@ +from django.urls import path + +from .views import StareNovinkyView + +urlpatterns = [ + path('stare-novinky/', StareNovinkyView.as_view(), name='stare_novinky'), +] diff --git a/novinky/views.py b/novinky/views.py index e69de29b..2cb20433 100644 --- a/novinky/views.py +++ b/novinky/views.py @@ -0,0 +1,23 @@ +from django.views import generic + +from .models import Novinky + + +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() + if not user.je_org: + qs = qs.filter(zverejneno=True) + return qs.order_by('-datum') + + +class StareNovinkyView(generic.ListView): + template_name = 'novinky/stare_novinky.html' + + def get_queryset(self): + return spravne_novinky(self.request) diff --git a/seminar/templates/seminar/titulnistrana/titulnistrana.html b/seminar/templates/seminar/titulnistrana/titulnistrana.html index f79bbbf1..7a6e3185 100644 --- a/seminar/templates/seminar/titulnistrana/titulnistrana.html +++ b/seminar/templates/seminar/titulnistrana/titulnistrana.html @@ -95,7 +95,7 @@ function sousdeadline() { {# Novinky #}

Co je nového?

- {% include 'seminar/novinky.html' %} + {% include 'novinky/novinky.html' %} Archiv novinek diff --git a/seminar/urls.py b/seminar/urls.py index f740e6a4..d64320c1 100644 --- a/seminar/urls.py +++ b/seminar/urls.py @@ -77,7 +77,6 @@ urlpatterns = [ path('', views.TitulniStranaView.as_view(), name='titulni_strana'), path('jak-resit/', views.JakResitView.as_view(), name='jak_resit'), - path('stare-novinky/', views.StareNovinkyView.as_view(), name='stare_novinky'), # Dočasné & neodladěné: path( diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 31cfbe17..f58e8706 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -18,6 +18,7 @@ from seminar.models import Problem, Cislo, Reseni, Nastaveni, Rocnik, \ #from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva from seminar import utils from treenode import treelib +from novinky.views import spravne_novinky import treenode.templatetags as tnltt import treenode.serializers as vr from vysledkovky.utils import body_resitelu, VysledkovkaCisla, \ @@ -218,18 +219,6 @@ def ZadaniAktualniVysledkovkaView(request): ### 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() - if not user.je_org: - qs = qs.filter(zverejneno=True) - return qs.order_by('-datum') - def aktualni_temata(rocnik): """ Vrací PolymorphicQuerySet témat v daném ročníku, ke kterým se aktuálně dá něco odevzdat. @@ -264,12 +253,6 @@ class TitulniStranaView(generic.ListView): return context -class StareNovinkyView(generic.ListView): - template_name = 'seminar/stare_novinky.html' - - def get_queryset(self): - return spravne_novinky(self.request) - ### Co je M&M