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