Split novinek

This commit is contained in:
Jonas Havelka 2024-08-04 16:57:39 +02:00
parent 99a1fd9a9f
commit 9920465f99
9 changed files with 39 additions and 21 deletions

View file

@ -39,6 +39,9 @@ urlpatterns = [
# Autentizační aplikace (ma vlastni podadresare) # Autentizační aplikace (ma vlastni podadresare)
path('', include('various.autentizace.urls')), path('', include('various.autentizace.urls')),
# Novinková aplikace (ma vlastni podadresare)
path('', include('novinky.urls')),
# Api (ma vlastni podadresare) (autocomplete apod.) # Api (ma vlastni podadresare) (autocomplete apod.)
path('', include('api.urls')), path('', include('api.urls')),

View file

@ -0,0 +1,3 @@
"""
Obsahuje vše okolo novinek (zpráv Co je nového? na titulní straně).
"""

View file

@ -8,6 +8,6 @@
{% endblock %} {% endblock %}
</h1> </h1>
{% include 'seminar/novinky.html' %} {% include 'novinky/novinky.html' %}
{% endblock %} {% endblock %}

7
novinky/urls.py Normal file
View file

@ -0,0 +1,7 @@
from django.urls import path
from .views import StareNovinkyView
urlpatterns = [
path('stare-novinky/', StareNovinkyView.as_view(), name='stare_novinky'),
]

View file

@ -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)

View file

@ -95,7 +95,7 @@ function sousdeadline() {
{# Novinky #} {# Novinky #}
<h1>Co je nového?</h1> <h1>Co je nového?</h1>
{% include 'seminar/novinky.html' %} {% include 'novinky/novinky.html' %}
<a href='/stare-novinky/'>Archiv novinek</a> <a href='/stare-novinky/'>Archiv novinek</a>

View file

@ -77,7 +77,6 @@ urlpatterns = [
path('', views.TitulniStranaView.as_view(), name='titulni_strana'), path('', views.TitulniStranaView.as_view(), name='titulni_strana'),
path('jak-resit/', views.JakResitView.as_view(), name='jak_resit'), path('jak-resit/', views.JakResitView.as_view(), name='jak_resit'),
path('stare-novinky/', views.StareNovinkyView.as_view(), name='stare_novinky'),
# Dočasné & neodladěné: # Dočasné & neodladěné:
path( path(

View file

@ -18,6 +18,7 @@ from seminar.models import Problem, Cislo, Reseni, Nastaveni, Rocnik, \
#from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva #from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva
from seminar import utils from seminar import utils
from treenode import treelib from treenode import treelib
from novinky.views import spravne_novinky
import treenode.templatetags as tnltt import treenode.templatetags as tnltt
import treenode.serializers as vr import treenode.serializers as vr
from vysledkovky.utils import body_resitelu, VysledkovkaCisla, \ from vysledkovky.utils import body_resitelu, VysledkovkaCisla, \
@ -218,18 +219,6 @@ def ZadaniAktualniVysledkovkaView(request):
### Titulni strana ### 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): def aktualni_temata(rocnik):
""" """
Vrací PolymorphicQuerySet témat v daném ročníku, ke kterým se aktuálně něco odevzdat. Vrací PolymorphicQuerySet témat v daném ročníku, ke kterým se aktuálně něco odevzdat.
@ -264,12 +253,6 @@ class TitulniStranaView(generic.ListView):
return context 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 ### Co je M&M