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]