Browse Source

Přesun náhodných views do various

pull/60/head
Jonas Havelka 5 months ago
parent
commit
5f7ec853fa
  1. 3
      mamweb/urls.py
  2. 2
      odevzdavatko/views.py
  3. 2
      personalni/views.py
  4. 16
      seminar/templates/seminar/jakresit/jak-resit.html
  5. 8
      seminar/urls.py
  6. 69
      seminar/views/views_all.py
  7. 2
      sifrovacka/views.py
  8. 0
      various/templates/various/formular_ok.html
  9. 16
      various/templates/various/jakresit/jak-resit.html
  10. 0
      various/templates/various/jakresit/jakresit_1.svg
  11. 0
      various/templates/various/jakresit/jakresit_2.svg
  12. 0
      various/templates/various/jakresit/jakresit_3.svg
  13. 2
      various/templates/various/pracuje_se.html
  14. 0
      various/templates/various/stav_databaze.html
  15. 0
      various/templates/various/titulnistrana/graph.svg
  16. 2
      various/templates/various/titulnistrana/titulnistrana.html
  17. 9
      various/urls.py
  18. 73
      various/views/final.py
  19. 26
      various/views/pomocne.py
  20. 2
      vyroci/views.py

3
mamweb/urls.py

@ -51,6 +51,9 @@ urlpatterns = [
# Aesop (ma vlastni podadresare)
path('', include('aesop.urls')),
# Various = co se nevešlo jinam
path('', include('various.urls')),
# REST API
# path('api/', include(router.urls)),

2
odevzdavatko/views.py

@ -21,7 +21,7 @@ import seminar.models as m
from . import forms as f
from .forms import OdevzdavatkoTabulkaFiltrForm as FiltrForm
from seminar.utils import resi_v_rocniku
from seminar.views import formularOKView
from various.views.pomocne import formularOKView
logger = logging.getLogger(__name__)

2
personalni/views.py

@ -17,7 +17,7 @@ from datetime import date
import logging
import csv
from seminar.views import formularOKView
from various.views.pomocne import formularOKView
from various.autentizace.views import LoginView
from various.autentizace.utils import posli_reset_hesla

16
seminar/templates/seminar/jakresit/jak-resit.html

@ -1,16 +0,0 @@
{% extends 'base.html' %}
{% load humanize %}
{% load static %}
{% block content %}
<div class=jakresit>
{% include 'seminar/jakresit/jakresit_1.svg' %}
{% include 'seminar/jakresit/jakresit_2.svg' %}
{% include 'seminar/jakresit/jakresit_3.svg' %}
</div>
{% endblock %}

8
seminar/urls.py

@ -65,19 +65,11 @@ urlpatterns = [
org_required(views.TitulyView),
name='seminar_cislo_titul'
),
path(
'stav',
org_required(views.StavDatabazeView),
name='stav_databaze'
),
path(
'cislo/<int:trocnik>.<str:tcislo>/odmeny/<int:frocnik>.<str:fcislo>/',
org_required(views.OdmenyView.as_view()),
name="seminar_archiv_odmeny"),
path('', views.TitulniStranaView.as_view(), name='titulni_strana'),
path('jak-resit/', views.JakResitView.as_view(), name='jak_resit'),
# Dočasné & neodladěné:
path(
'hidden/hromadne_pridani',

69
seminar/views/views_all.py

@ -18,7 +18,6 @@ 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, \
@ -37,7 +36,6 @@ from django.conf import settings
import unicodedata
import logging
import time
from collections.abc import Sequence
import http
from seminar.utils import aktivniResitele
@ -226,33 +224,6 @@ def aktualni_temata(rocnik):
return Tema.objects.filter(rocnik=rocnik, stav='zadany').order_by('kod')
class TitulniStranaView(generic.ListView):
template_name= 'seminar/titulnistrana/titulnistrana.html'
def get_queryset(self):
return spravne_novinky(self.request)[:3]
def get_context_data(self, **kwargs):
context = super(TitulniStranaView, self).get_context_data(**kwargs)
nastaveni = get_object_or_404(Nastaveni)
deadline = m.Deadline.objects.filter(deadline__gte=timezone.now()).order_by("deadline").first()
context['nejblizsi_deadline'] = deadline
# Aktuální témata
nazvy_a_odkazy_na_aktualni_temata = []
akt_temata = aktualni_temata(nastaveni.aktualni_rocnik)
for tema in akt_temata:
# FIXME: netuším, jestli funguje tema.verejne_url(), nemáme testdata na témátka - je to asi url vzhledem k ročníku
nazvy_a_odkazy_na_aktualni_temata.append({'nazev':tema.nazev,'url':tema.verejne_url()})
context['aktualni_temata'] = nazvy_a_odkazy_na_aktualni_temata
print(context)
return context
### Co je M&M
@ -652,47 +623,7 @@ class ClankyResitelView(generic.ListView):
# queryset = Problem.objects.filter(stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod')
### Status
def StavDatabazeView(request):
# nastaveni = Nastaveni.objects.get()
problemy = utils.seznam_problemu()
muzi = Resitel.objects.filter(osoba__osloveni=m.Osoba.OSLOVENI_MUZSKE)
zeny = Resitel.objects.filter(osoba__osloveni=m.Osoba.OSLOVENI_ZENSKE)
return render(request, 'seminar/stav_databaze.html',
{
# 'nastaveni': nastaveni,
'problemy': problemy,
'resitele': Resitel.objects.all(),
'muzi': muzi,
'zeny': zeny,
'jmena_muzu': utils.histogram([r.osoba.jmeno for r in muzi]),
'jmena_zen': utils.histogram([r.osoba.jmeno for r in zeny]),
})
# Interní, nemá se nikdy objevit v urls (jinak to účastníci vytrolí)
def formularOKView(request, text='', dalsi_odkazy: Sequence[tuple[str, str]] = ()):
template_name = 'seminar/formular_ok.html'
odkazy = list(dalsi_odkazy) + [
# (Text, odkaz)
('Vrátit se na titulní stránku', reverse('titulni_strana')),
('Zobrazit aktuální zadání', reverse('seminar_aktualni_zadani')),
]
context = {
'odkazy': odkazy,
'text': text,
}
return render(request, template_name, context)
#------------------ Jak řešit - možná má být udělané úplně jinak
class JakResitView(generic.ListView):
template_name = 'seminar/jakresit/jak-resit.html'
def get_queryset(self):
return None
class AktualniRocnikRedirectView(RedirectView):
permanent=False

2
sifrovacka/views.py

@ -1,7 +1,7 @@
from django.urls import reverse
from django.views.generic import FormView, ListView
from seminar.views import formularOKView
from various.views.pomocne import formularOKView
from .forms import SifrovackaForm, NapovedaForm
from .models import OdpovedUcastnika, SpravnaOdpoved, Napoveda, NapovezenoUcastnikovi
from personalni.models import Resitel

0
seminar/templates/seminar/formular_ok.html → various/templates/various/formular_ok.html

16
various/templates/various/jakresit/jak-resit.html

@ -0,0 +1,16 @@
{% extends 'base.html' %}
{% load humanize %}
{% load static %}
{% block content %}
<div class=jakresit>
{% include 'various/jakresit/jakresit_1.svg' %}
{% include 'various/jakresit/jakresit_2.svg' %}
{% include 'various/jakresit/jakresit_3.svg' %}
</div>
{% endblock %}

0
seminar/templates/seminar/jakresit/jakresit_1.svg → various/templates/various/jakresit/jakresit_1.svg

Before

Width:  |  Height:  |  Size: 664 KiB

After

Width:  |  Height:  |  Size: 664 KiB

0
seminar/templates/seminar/jakresit/jakresit_2.svg → various/templates/various/jakresit/jakresit_2.svg

Before

Width:  |  Height:  |  Size: 689 KiB

After

Width:  |  Height:  |  Size: 689 KiB

0
seminar/templates/seminar/jakresit/jakresit_3.svg → various/templates/various/jakresit/jakresit_3.svg

Before

Width:  |  Height:  |  Size: 767 KiB

After

Width:  |  Height:  |  Size: 767 KiB

2
seminar/templates/seminar/pracuje_se.html → various/templates/various/pracuje_se.html

@ -10,7 +10,7 @@
<p>
Na této stránce velmi intenzivně pracujeme.
Za dočasnou nedostupnost se omlouváme.
Zkuste přejít na <a href="/">titulní stránku</a>
Zkuste přejít na <a href="/static">titulní stránku</a>
nebo se podívat na <a href="{% url 'seminar_aktualni_zadani' %}">aktuální zadání</a>.
</p>
<img src="{% static '404.png' %}">

0
seminar/templates/seminar/stav_databaze.html → various/templates/various/stav_databaze.html

0
seminar/templates/seminar/titulnistrana/graph.svg → various/templates/various/titulnistrana/graph.svg

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

2
seminar/templates/seminar/titulnistrana/titulnistrana.html → various/templates/various/titulnistrana/titulnistrana.html

@ -79,7 +79,7 @@ function sousdeadline() {
<div class="graf">
<div class="graf-svg">
{% include 'seminar/titulnistrana/graph.svg' %} <!-- TODO: aby to nemuselo být v templates -->
{% include 'various/titulnistrana/graph.svg' %} <!-- TODO: aby to nemuselo být v templates -->
</div>
<span class="zjistit_vic">

9
various/urls.py

@ -0,0 +1,9 @@
from django.urls import path
from .views.final import TitulniStranaView, JakResitView, StavDatabazeView
from seminar.utils import org_required
urlpatterns = [
path('', TitulniStranaView.as_view(), name='titulni_strana'),
path('jak-resit/', JakResitView.as_view(), name='jak_resit'),
path('stav', org_required(StavDatabazeView), name='stav_databaze'),
]

73
various/views/final.py

@ -0,0 +1,73 @@
"""
Stránky, které se mi nepovedlo lépe zařadit.
Oproti `./pomocne.py` se tyto views používají přímo ve various
a naopak importují spoustu věcí odjinud
"""
from django.shortcuts import get_object_or_404, render
from django.utils import timezone
from django.views import generic
import novinky.views
import seminar.utils
import seminar.views
from personalni.models import Resitel
from seminar import models as m
from ..models import Nastaveni
class TitulniStranaView(generic.ListView):
template_name = 'various/titulnistrana/titulnistrana.html'
def get_queryset(self):
return novinky.views.spravne_novinky(self.request)[:3]
def get_context_data(self, **kwargs):
context = super(TitulniStranaView, self).get_context_data(**kwargs)
nastaveni = get_object_or_404(Nastaveni)
deadline = m.Deadline.objects.filter(
deadline__gte=timezone.now()).order_by("deadline").first()
context['nejblizsi_deadline'] = deadline
# Aktuální témata
nazvy_a_odkazy_na_aktualni_temata = []
akt_temata = seminar.views.aktualni_temata(nastaveni.aktualni_rocnik)
for tema in akt_temata:
# FIXME: netuším, jestli funguje tema.verejne_url(), nemáme testdata na témátka - je to asi url vzhledem k ročníku
nazvy_a_odkazy_na_aktualni_temata.append({
'nazev': tema.nazev,
'url': tema.verejne_url()
})
context['aktualni_temata'] = nazvy_a_odkazy_na_aktualni_temata
return context
class JakResitView(generic.ListView):
template_name = 'various/jakresit/jak-resit.html'
def get_queryset(self):
return None
### Status
def StavDatabazeView(request):
# nastaveni = Nastaveni.objects.get()
problemy = seminar.utils.seznam_problemu()
muzi = Resitel.objects.filter(osoba__osloveni=m.Osoba.OSLOVENI_MUZSKE)
zeny = Resitel.objects.filter(osoba__osloveni=m.Osoba.OSLOVENI_ZENSKE)
return render(request, 'various/stav_databaze.html', {
# 'nastaveni': nastaveni,
'problemy': problemy,
'resitele': Resitel.objects.all(),
'muzi': muzi,
'zeny': zeny,
'jmena_muzu': seminar.utils.histogram([r.osoba.jmeno for r in muzi]),
'jmena_zen': seminar.utils.histogram([r.osoba.jmeno for r in zeny]),
})

26
various/views/pomocne.py

@ -0,0 +1,26 @@
"""
Stránky, které se mi nepovedlo lépe zařadit.
Oproti `./final.py` se tyto views importují odjinud
tedy ideálně neimportovat sem nic od jinud
"""
from typing import Sequence
from django.shortcuts import render
from django.urls import reverse
# Interní, nemá se nikdy objevit v urls (jinak to účastníci vytrolí)
def formularOKView(request, text='', dalsi_odkazy: Sequence[tuple[str, str]] = ()):
template_name = 'seminar/formular_ok.html'
odkazy = list(dalsi_odkazy) + [
# (Text, odkaz)
('Vrátit se na titulní stránku', reverse('titulni_strana')),
('Zobrazit aktuální zadání', reverse('seminar_aktualni_zadani')),
]
context = {
'odkazy': odkazy,
'text': text,
}
return render(request, template_name, context)

2
vyroci/views.py

@ -1,7 +1,7 @@
from django.views.generic import FormView, ListView
from seminar.models import Osoba
from seminar.views import formularOKView
from various.views.pomocne import formularOKView
from .forms import UcastnikVyrociForm
from .models import UcastnikVyroci

Loading…
Cancel
Save