From 59b3ea6ed1a90e84bac3575583b5f850e3e74a3f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C4=9Bj=20Koci=C3=A1n?= <matej.kocian@gmail.com>
Date: Fri, 21 Apr 2017 20:47:00 +0200
Subject: [PATCH 1/3] =?UTF-8?q?=C4=8C=C3=ADslo:=20odkazy=20na=20probl?=
 =?UTF-8?q?=C3=A9my=20v=20hlavi=C4=8Dce=20v=C3=BDsledkovky?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 seminar/templates/seminar/archiv/cislo.html | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/seminar/templates/seminar/archiv/cislo.html b/seminar/templates/seminar/archiv/cislo.html
index 8d6495ab..f9c71770 100644
--- a/seminar/templates/seminar/archiv/cislo.html
+++ b/seminar/templates/seminar/archiv/cislo.html
@@ -57,8 +57,9 @@
       <tr class='border-b'>
         <th class='border-r'>#
         <th class='border-r'>Jméno
+        {# problémy by měly být veřejné, když je veřejná výsledkovka #}
         {% for p in problemy %}
-        <th class='border-r'>{# TODO <a href="{{ p.verejne_url }}"> #}{{ p.kod_v_rocniku }}{# </a> #}
+        <th class='border-r'><a href="{{ p.verejne_url }}">{{ p.kod_v_rocniku }}</a>
         {% endfor %}
         <th class='border-r'>Za číslo</sup>
         <th class='border-r'>Za ročník

From e1fc2ec00a979cc90059bb64bdd6367f7f1e2352 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C4=9Bj=20Koci=C3=A1n?= <matej.kocian@gmail.com>
Date: Fri, 21 Apr 2017 21:38:02 +0200
Subject: [PATCH 2/3] =?UTF-8?q?=C4=8C=C3=ADslo:=20odkazy=20na=20=C3=BAlohy?=
 =?UTF-8?q?=20i=20pro=20neorgy=20...?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... a vynech nadpis, pokud nejsou žádné zadané/řešené
---
 seminar/templates/seminar/archiv/cislo.html | 36 ++++++++++++---------
 1 file changed, 20 insertions(+), 16 deletions(-)

diff --git a/seminar/templates/seminar/archiv/cislo.html b/seminar/templates/seminar/archiv/cislo.html
index f9c71770..d8b030c8 100644
--- a/seminar/templates/seminar/archiv/cislo.html
+++ b/seminar/templates/seminar/archiv/cislo.html
@@ -13,23 +13,27 @@
   {% endif %}
   <p><a href='{{ cislo.rocnik.verejne_url }}'>Ročník {{ cislo.rocnik }}</a>
 
-  <h2>Zadané problémy</h2>
-  <ul>
-  {% for p in v_cisle_zadane %}
-    <li>{# TODO zprovoznit odkazy i pro účastníky, až bude na co #}
-      {% if user.is_staff %}
-        <a href='{{ p.verejne_url }}'>{% endif %}{{ p.kod_v_rocniku }} {{ p.nazev }} {{ p.body_v_zavorce }}{% if user.is_staff %}</a>{% endif %}
-  {% endfor %}
-  </ul>
+  {% if v_cisle_zadane %}
+    <h2>Zadané problémy</h2>
+    <ul>
+    {% for p in v_cisle_zadane %}
+      <li{% if user.is_staff and not cislo.verejne %} class='mam-org-only'{% endif %}>
+        {% if user.is_staff or cislo.verejne %}
+          <a href='{{ p.verejne_url }}'>{% endif %}{{ p.kod_v_rocniku }} {{ p.nazev }} {{ p.body_v_zavorce }}{% if user.is_staff or cislo.verejne %}</a>{% endif %}
+    {% endfor %}
+    </ul>
+  {% endif %}
 
-  <h2>Řešené problémy</h2>
-  <ul>
-  {% for p in resene_problemy %}
-    <li>{# TODO zprovoznit odkazy i pro účastníky, až bude na co #}
-      {% if user.is_staff %}
-        <a href='{{ p.verejne_url }}'>{% endif %}{{ p.kod_v_rocniku }} {{ p.nazev }} {{ p.body_v_zavorce }}{% if user.is_staff %}</a>{% endif %}
-  {% endfor %}
-  </ul>
+  {% if resene_problemy %}
+    <h2>Řešené problémy</h2>
+    <ul>
+    {% for p in resene_problemy %}
+      <li{% if user.is_staff and not cislo.verejne %} class='mam-org-only'{% endif %}>
+        {% if user.is_staff or cislo.verejne %}
+          <a href='{{ p.verejne_url }}'>{% endif %}{{ p.kod_v_rocniku }} {{ p.nazev }} {{ p.body_v_zavorce }}{% if user.is_staff or cislo.verejne %}</a>{% endif %}
+    {% endfor %}
+    </ul>
+  {% endif %}
 
   {% if user.is_staff %}
       <div class="mam-org-only">

From c7a792257f23252b9822e67c97fd0e999afdc8d0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C4=9Bj=20Koci=C3=A1n?= <matej.kocian@gmail.com>
Date: Fri, 21 Apr 2017 22:43:08 +0200
Subject: [PATCH 3/3] =?UTF-8?q?Admin:=20odkazy=20na=20=C4=8D=C3=ADsla=20za?=
 =?UTF-8?q?d=C3=A1n=C3=AD/=C5=99e=C5=A1en=C3=AD=20z=20probl=C3=A9m=C5=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 seminar/admin.py | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/seminar/admin.py b/seminar/admin.py
index 9ce11a93..cdb9f3fc 100644
--- a/seminar/admin.py
+++ b/seminar/admin.py
@@ -8,6 +8,8 @@ from solo.admin import SingletonModelAdmin
 from ckeditor.widgets import CKEditorWidget
 from django.db.models import Count
 from django.db import models
+from django.utils.safestring import mark_safe
+from django.core.urlresolvers import reverse
 
 from django.contrib.auth.models import User
 
@@ -478,11 +480,37 @@ create_modeladmin(ProblemNavrhAdmin, Problem, 'ProblemNavrh', verbose_name=u'Pro
 
 
 class ProblemZadanyAdmin(ProblemAdmin):
-    list_display = ['nazev', 'typ', 'autor', 'opravovatel', 'kod', 'verejne']
+    list_display = [
+        'nazev',
+        'typ',
+        'cislo_zadani_link',
+        'cislo_reseni_link',
+        'autor',
+        'opravovatel',
+        'kod',
+        'verejne'
+    ]
     list_filter = [
         'typ', 'zamereni', 'cislo_zadani__cislo', 'cislo_zadani__rocnik'
     ]
 
+    def cislo_zadani_link(self, obj):
+        return mark_safe('<a href="{}">{}</a>'.format(
+            reverse("admin:seminar_cislo_change", args=(obj.cislo_zadani.pk,)),
+            obj.cislo_zadani
+        ))
+    cislo_zadani_link.short_description = u'Číslo zadání'
+
+    # TODO pokud se budou odkazy v adminu více používat, možná by se hodilo je
+    # nějak zjednodušit, např. tímto?
+    # https://github.com/gitaarik/django-admin-relation-links
+    def cislo_reseni_link(self, obj):
+        return mark_safe('<a href="{}">{}</a>'.format(
+            reverse("admin:seminar_cislo_change", args=(obj.cislo_reseni.pk,)),
+            obj.cislo_reseni
+        ))
+    cislo_reseni_link.short_description = u'Číslo řešení'
+
     def get_inline_instances(self, request, obj=None):
         if obj and obj.typ == Problem.TYP_ULOHA:
             inlines = [ReseniKProblemuInline, PohadkaKProblemuInline]