diff --git a/seminar/views.py b/seminar/views.py
index 54ed3e11..84890ea8 100644
--- a/seminar/views.py
+++ b/seminar/views.py
@@ -7,6 +7,7 @@ from django.core.urlresolvers import reverse
 from django.views import generic
 from django.utils.translation import ugettext as _
 from django.http import Http404
+from django.db.models import Q
 
 from .models import Problem, Cislo, Reseni, Nastaveni, Rocnik, Soustredeni, Organizator, Resitel, Novinky, Soustredeni_Ucastnici
 from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva
@@ -343,28 +344,42 @@ class RocnikVysledkovkaView(RocnikView):
 
 ### Generovani obalek
 class CisloObalkyStruct:
-    resitele = None
     rocnik = None
-    problemy = None
+    cisla = None
 
-def cisloObalkyView(request,rocnik,cislo):
+
+# Vraci QuerySet aktualnich resitelu = nekdy neco poslali, ale jeste neodmaturovali
+def aktualniResitele(rocnik):
+    letos = Rocnik.objects.filter(rocnik = rocnik).first()
+    return Resitel.objects.filter(rok_maturity__gt = letos.prvni_rok)
+#   # ALERT: pokud nekdo nema vypleny rok maturity, tak neni aktualni, protoze Karel Tesar a jini
+#    return Resitel.objects.filter(Q(rok_maturity__gt = letos.prvni_rok)|Q(rok_maturity = None))
+    
+# Vraci QuerySet aktivnich resitelu = 
+# jeste neodmaturovali && 
+# (pokud je aktualni cislo mensi nez 3, pak (letos || loni) neco poslali
+# jinak letos neco poslali)
+def aktivniResitele(rocnik,cislo):
     letos = CisloObalkyStruct()
     loni = CisloObalkyStruct()
 
-    letos.rocnik = Rocnik.objects.filter(rocnik = rocnik)[0]
-    loni.rocnik = Rocnik.objects.filter(rocnik = int(rocnik)-1)[0]
-    letos.problemy = Problem.objects.filter(cislo_zadani = Cislo.objects.filter(rocnik=letos.rocnik,cislo__lte = cislo))
-    loni.problemy = Problem.objects.filter(cislo_zadani = Cislo.objects.filter(rocnik=loni.rocnik))
-    letos.resitele = Resitel.objects.filter(reseni = Reseni.objects.filter(problem=letos.problemy)).distinct()
-    loni.resitele = Resitel.objects.filter(reseni = Reseni.objects.filter(problem=loni.problemy)).distinct()
-
-    loni.resitele = loni.resitele.filter(rok_maturity__gt =  letos.rocnik.prvni_rok)
-
+    aktualni_resitele = aktualniResitele(rocnik)
+    
+    letos.rocnik = Rocnik.objects.filter(rocnik = rocnik).first()
+    loni.rocnik = Rocnik.objects.filter(rocnik = int(rocnik)-1).first()
+    letos.cisla = Cislo.objects.filter(rocnik=letos.rocnik,cislo__lte = cislo)
+    loni.cisla = Cislo.objects.filter(rocnik=loni.rocnik) 
     if int(cislo) > 3:
-        resitele = letos.resitele
+        problemy = Problem.objects.filter(cislo_zadani = letos.cisla)
     else:
-        resitele = list(letos.resitele) + list(loni.resitele)
-    return obalkyView(request,resitele)
+        problemy = Problem.objects.filter(Q(cislo_zadani = letos.cisla)|Q(cislo_zadani=loni.cisla))
+    resitele = aktualni_resitele.filter(reseni = Reseni.objects.filter(problem=problemy)).distinct()
+
+    return resitele
+    
+
+def cisloObalkyView(request,rocnik,cislo):
+    return obalkyView(request,aktivniResitele(rocnik,cislo))
 
 
 def obalkyView(request,resitele):