diff --git a/seminar/templates/seminar/archiv/problem.html b/seminar/templates/seminar/archiv/problem.html index 32f68911..67071dea 100644 --- a/seminar/templates/seminar/archiv/problem.html +++ b/seminar/templates/seminar/archiv/problem.html @@ -4,31 +4,10 @@ {% block content %}
- {% if problem.cislo_zadani %} -

- {% block nadpis1a %}{% block nadpis1b %} - {{ problem.nazev_typu }} {{ problem.kod_v_rocniku }}: {{ problem.nazev }} {{ problem.body_v_zavorce }} - {% endblock %}{% endblock %} -

+ {% block problem %} + {% endblock %} -

Zadáno v čísle {{ problem.cislo_zadani.kod }}. - {% if problem.cislo_reseni %} -

Řešeno v čísle {{ problem.cislo_reseni.kod }}. - {% endif %} - {% else %} -

Problém {{ problem.nazev }}

- {% endif %} - - -

Zadání

- {{ problem.text_zadani |safe }} - {% if problem.text_reseni %} -

Řešení

- {{ problem.text_reseni |safe }} - {% endif %} - - {# TODO Kontrola, zda je uzivatel org #} - {% if user.is_authenticated %} + {% if user.is_staff %}

Text - org

@@ -43,4 +22,3 @@
{% endblock content %} - diff --git a/seminar/templates/seminar/archiv/problem_clanek.html b/seminar/templates/seminar/archiv/problem_clanek.html new file mode 100644 index 00000000..c7beba99 --- /dev/null +++ b/seminar/templates/seminar/archiv/problem_clanek.html @@ -0,0 +1,38 @@ +{% extends "seminar/archiv/problem.html" %} + +{% block problem %} + {% if problem.cislo_zadani %} + +

+ {{ problem.nazev_typu }}: + {% block nadpis1a %}{% block nadpis1b %} + {{ problem.nazev }} + {% endblock %}{% endblock %} +

+ +
+ {% if problem.typ == 'res-clanek' %} + {# pozor na mezery #} + {% for r in reseni %}{% if not forloop.first %}, {% endif %} + {{ r.resitel.jmeno }} {{ r.resitel.prijmeni }}{% if r.body %} ({{ r.body }} b){% endif %}{% endfor %} + {% else %} + {{ problem.autor.first_name }} + {% if problem.autor.organizator.prezdivka %} + „{{ problem.autor.organizator.prezdivka }}“ + {% endif %} + {{ problem.autor.last_name }} + {% endif %} +
+ + {% if problem.cislo_reseni %} +

Vyšlo v čísle {{ problem.cislo_reseni.kod }}. + {% endif %} + + {% else %} + {# TODO ? #} +

Problém {{ problem.nazev }}

+ {% endif %} + + {{ problem.text_zadani |safe }} + +{% endblock %} diff --git a/seminar/templates/seminar/archiv/problem_uloha_tema.html b/seminar/templates/seminar/archiv/problem_uloha_tema.html new file mode 100644 index 00000000..12ee40ac --- /dev/null +++ b/seminar/templates/seminar/archiv/problem_uloha_tema.html @@ -0,0 +1,27 @@ +{% extends "seminar/archiv/problem.html" %} + +{% block problem %} +

+ {% block nadpis1a %}{% block nadpis1b %} + {{ problem.nazev_typu }} {{ problem.kod_v_rocniku }}: {{ problem.nazev }} {{ problem.body_v_zavorce }} + {% endblock %}{% endblock %} +

+ {% if problem.cislo_zadani %} +

Zadáno v čísle {{ problem.cislo_zadani.kod }}. + {% if problem.cislo_reseni %} +

Řešeno v čísle {{ problem.cislo_reseni.kod }}. + {% endif %} + {% else %} + {# TODO ? #} +

Problém {{ problem.nazev }}

+ {% endif %} + + +

Zadání

+ {{ problem.text_zadani |safe }} + {% if problem.text_reseni %} +

Řešení

+ {{ problem.text_reseni |safe }} + {% endif %} + +{% endblock %} diff --git a/seminar/templates/seminar/clanky/organizatorske_clanky.html b/seminar/templates/seminar/clanky/organizatorske_clanky.html new file mode 100644 index 00000000..f2e00104 --- /dev/null +++ b/seminar/templates/seminar/clanky/organizatorske_clanky.html @@ -0,0 +1,5 @@ +{% extends 'seminar/clanky/resitelske_clanky.html' %} + +{% block nadpis1a %}{% block nadpis1b %} +Organizátorské články +{% endblock %}{% endblock %} diff --git a/seminar/templates/seminar/clanky/resitelske_clanky.html b/seminar/templates/seminar/clanky/resitelske_clanky.html new file mode 100644 index 00000000..6f34f3dc --- /dev/null +++ b/seminar/templates/seminar/clanky/resitelske_clanky.html @@ -0,0 +1,24 @@ +{% extends 'base.html' %} + +{% block content %} + +

+{% block nadpis1a %}{% block nadpis1b %} +Řešitelské články +{% endblock %}{% endblock %} +

+ +{% for clanek in object_list %} +{% with clanek.cislo_zadani.rocnik.rocnik as rocnik %} + {% ifchanged rocnik %} + {% if not forloop.first %}{% endif %} +

{{ rocnik }}. ročník

+ + +{% endblock %} diff --git a/seminar/templates/seminar/clanky/submenu.html b/seminar/templates/seminar/clanky/submenu.html index 0a19761b..2c70a5da 100644 --- a/seminar/templates/seminar/clanky/submenu.html +++ b/seminar/templates/seminar/clanky/submenu.html @@ -2,8 +2,8 @@ diff --git a/seminar/urls.py b/seminar/urls.py index ff322241..1af3d42a 100644 --- a/seminar/urls.py +++ b/seminar/urls.py @@ -22,6 +22,10 @@ urlpatterns = patterns('', url(r'^$', views.TitulniStranaView.as_view(), name='titulni_strana'), url(r'^stare-novinky/$', views.StareNovinkyView.as_view(), name='stare_novinky'), + url(r'^clanky/resitel/$', views.ClankyResitelView.as_view(), name='clanky_resitel'), + url(r'^clanky/org/$', views.ClankyOrganizatorView.as_view(), name='clanky_organizator'), + + url(r'^stav$', views.StavDatabazeView, name='stav_databaze'), url(r'^aesop-export/mam-rocnik-(?P\d+)\.csv$', export.ExportRocnikView.as_view(), name='seminar_export_rocnik'), diff --git a/seminar/views.py b/seminar/views.py index e2549fd7..e74955a8 100644 --- a/seminar/views.py +++ b/seminar/views.py @@ -159,9 +159,23 @@ class RocnikView(generic.DetailView): context['temata_v_rocniku'] = temata_v_rocniku return context + class ProblemView(generic.DetailView): model = Problem - template_name = 'seminar/archiv/problem.html' + + def _je_clanek(self, problem): + return problem.typ in [Problem.TYP_ORG_CLANEK, Problem.TYP_RES_CLANEK] + + def get_template_names(self, **kwargs): + context = super(ProblemView, self).get_context_data(**kwargs) + return ['seminar/archiv/problem_' + ('clanek.html' if self._je_clanek(context['problem']) else 'uloha_tema.html')] + + def get_context_data(self, **kwargs): + context = super(ProblemView, self).get_context_data(**kwargs) + if context['problem'].typ == Problem.TYP_RES_CLANEK: + context['reseni'] = Reseni.objects.filter(problem=context['problem']).select_related('resitel').order_by('resitel__prijmeni') + return context + class RadekVysledkovky(object): pass @@ -271,6 +285,19 @@ class SoustredeniView(generic.DetailView): model = Soustredeni template_name = 'seminar/archiv/soustredeni.html' +### Články + +class ClankyResitelView(generic.ListView): + model = Problem + template_name = 'seminar/clanky/resitelske_clanky.html' + queryset = Problem.objects.filter(typ=Problem.TYP_RES_CLANEK, stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod') + +class ClankyOrganizatorView(generic.ListView): + model = Problem + template_name = 'seminar/clanky/organizatorske_clanky.html' + queryset = Problem.objects.filter(typ=Problem.TYP_ORG_CLANEK, stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod') + + ### Status def StavDatabazeView(request):