From fe7c4f601513c2045d58612918e7b1c82b371883 Mon Sep 17 00:00:00 2001
From: LEdoian <tap9701@gmail.com>
Date: Wed, 6 Feb 2019 01:44:30 +0100
Subject: [PATCH 01/13] =?UTF-8?q?V=C3=BDsledkovka:=20V=C3=ADce=20=C5=99e?=
 =?UTF-8?q?=C5=A1en=C3=AD=20ke=20stejn=C3=A9mu=20=C5=99e=C5=A1iteli=20a=20?=
 =?UTF-8?q?=C4=8D=C3=ADslu?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Například: nějaké nepravidelné získání bodů (DOD), pozdní dodání starého
řešení, několik příspěvků ke stejnému témátku, ...
---
 seminar/views.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/seminar/views.py b/seminar/views.py
index 25d72f7f..16a0e872 100644
--- a/seminar/views.py
+++ b/seminar/views.py
@@ -319,8 +319,10 @@ def vysledkovka_rocniku(rocnik, jen_verejne=True):
                 #zobrazim jen je-li vysledkovka verejna
                 body_za_cislo = VysledkyZaCislo.objects.filter(cislo__rocnik=rocnik).filter(cislo = cis).filter(resitel = v.resitel)
                 if body_za_cislo:
-                    #neprazdne vysledky by mely obsahovat prave jeden vysledek
-                    v.body_cisla.append(body_za_cislo[0].body)
+                    soucet = 0.0
+                    for x in body_za_cislo:
+                        soucet += x.body
+                    v.body_cisla.append(soucet)
                 else:
                     #resitel nema za cislo body
                     v.body_cisla.append(0)

From ce5884914891c43b04d01f3c6c5714544ade54d5 Mon Sep 17 00:00:00 2001
From: MaM Web user <mam-web@gimli.ms.mff.cuni.cz>
Date: Wed, 6 Feb 2019 02:33:05 +0100
Subject: [PATCH 02/13] =?UTF-8?q?Revert=20"V=C3=BDsledkovka:=20V=C3=ADce?=
 =?UTF-8?q?=20=C5=99e=C5=A1en=C3=AD=20ke=20stejn=C3=A9mu=20=C5=99e=C5=A1it?=
 =?UTF-8?q?eli=20a=20=C4=8D=C3=ADslu"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This reverts commit fe7c4f601513c2045d58612918e7b1c82b371883.

Změnil jsem špatný kód a navíc nefungoval
---
 seminar/views.py | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/seminar/views.py b/seminar/views.py
index 16a0e872..25d72f7f 100644
--- a/seminar/views.py
+++ b/seminar/views.py
@@ -319,10 +319,8 @@ def vysledkovka_rocniku(rocnik, jen_verejne=True):
                 #zobrazim jen je-li vysledkovka verejna
                 body_za_cislo = VysledkyZaCislo.objects.filter(cislo__rocnik=rocnik).filter(cislo = cis).filter(resitel = v.resitel)
                 if body_za_cislo:
-                    soucet = 0.0
-                    for x in body_za_cislo:
-                        soucet += x.body
-                    v.body_cisla.append(soucet)
+                    #neprazdne vysledky by mely obsahovat prave jeden vysledek
+                    v.body_cisla.append(body_za_cislo[0].body)
                 else:
                     #resitel nema za cislo body
                     v.body_cisla.append(0)

From 028e249df2eda4d0f7b6a12c6aec4401d724c741 Mon Sep 17 00:00:00 2001
From: MaM Web user <mam-web@gimli.ms.mff.cuni.cz>
Date: Wed, 6 Feb 2019 04:51:12 +0100
Subject: [PATCH 03/13] =?UTF-8?q?V=C3=BDsledkovka:=20Sou=C4=8Det=20bod?=
 =?UTF-8?q?=C5=AF=20=C5=99e=C5=A1en=C3=AD=20ke=20stejn=C3=A9mu=20probl?=
 =?UTF-8?q?=C3=A9mu?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Dosud se součet za číslo sečetl správně, ale body u problému byly jen z
posledního zpracovaného řešení.

Tohle je potřeba na: DODové úložky, více článků ke stejnému témátku
(třeba postupně během jednoho čísla), opožděné submity, ...

Pavel
---
 seminar/views.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/seminar/views.py b/seminar/views.py
index 25d72f7f..55e8aa7a 100644
--- a/seminar/views.py
+++ b/seminar/views.py
@@ -491,7 +491,12 @@ class CisloView(generic.DetailView):
 
         # za každé řešení doplníme k příslušnému řešiteli a úloze body
         for r in reseni:
-           vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] = r.body
+            if r.body is None or vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] is None:
+                vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] = None
+            elif vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] == '':
+                vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] = r.body
+            else:
+                vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] += r.body
 
         context['vysledkovka'] = vysledkovka
         context['problemy'] = problemy

From 5e9bdbfef08953441187ed501f2e40e0d7fcc9be Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Domes?= <domestomas@gmail.com>
Date: Tue, 5 Mar 2019 20:52:09 +0100
Subject: [PATCH 04/13] =?UTF-8?q?Zm=C4=9Bna=20obr=C3=A1zk=C5=AF=20v=20?=
 =?UTF-8?q?=C3=BAvodn=C3=ADm=20grafu?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 seminar/templates/seminar/titulnistrana.html | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/seminar/templates/seminar/titulnistrana.html b/seminar/templates/seminar/titulnistrana.html
index d73e65e3..a9f3df66 100644
--- a/seminar/templates/seminar/titulnistrana.html
+++ b/seminar/templates/seminar/titulnistrana.html
@@ -39,19 +39,19 @@ M&amp;M je korespondenční seminář. Několikrát do roka zdarma vydáváme č
  <area href="/"  id="mam" shape="rect" coords="148,277,354,364"></area>
  <area href="/soustredeni/"  id="sous" shape="rect" coords="180,194,313,236"></area>
  <area href="/archiv/cisla/"  id="casopis" shape="rect" coords="206,393,297,432"></area>
- <area href="/media/ilustrace/graf/duvera.jpeg"  id="hry" shape="rect" coords="198,87,251,121"></area>
- <area href="/media/ilustrace/graf/prednaska.jpeg"  id="prednasky" shape="rect" coords="273,120,390,160"></area>
- <area href="/media/ilustrace/graf/konfera.jpeg"  id="konfery" shape="rect" coords="350,168,445,207"></area>
+ <area href="/media/ilustrace/graf/hry.jpeg"  id="hry" shape="rect" coords="198,87,251,121"></area>
+ <area href="/media/ilustrace/graf/prednasky.jpeg"  id="prednasky" shape="rect" coords="273,120,390,160"></area>
+ <area href="/media/ilustrace/graf/konfery.jpeg"  id="konfery" shape="rect" coords="350,168,445,207"></area>
  <area href="/media/ilustrace/graf/vylet.jpeg"  id="vylet" shape="rect" coords="366,220,434,256"></area>
  <area href="/media/ilustrace/graf/legenda.jpeg"  id="legenda" shape="rect" coords="29,180,129,219"></area>
  <area href="/media/ilustrace/graf/jidlo.jpeg"  id="jidlo" shape="rect" coords="125,114,184,149"></area>
- <area href="/media/ilustrace/graf/adrenalin.jpeg"  id="adrenalinove" shape="rect" coords="38,30,184,73"></area>
- <area href="/media/ilustrace/graf/beh-p.jpeg"  id="behaci" shape="rect" coords="193,20,274,57"></area>
- <area href="/media/ilustrace/graf/strategie.jpeg"  id="strategicke" shape="rect" coords="284,16,411,57"></area>
+ <area href="/media/ilustrace/graf/adrenalinove.jpeg"  id="adrenalinove" shape="rect" coords="38,30,184,73"></area>
+ <area href="/media/ilustrace/graf/behaci.jpeg"  id="behaci" shape="rect" coords="193,20,274,57"></area>
+ <area href="/media/ilustrace/graf/strategicke.jpeg"  id="strategicke" shape="rect" coords="284,16,411,57"></area>
  <area href="/clanky/uvod/"  id="clanky" shape="rect" coords="363,428,447,466"></area>
  <area href="/zadani/aktualni/"  id="ulohy" shape="rect" coords="246,492,321,529"></area>
  <area href="/zadani/temata/"  id="temata" shape="rect" coords="126,473,217,511"></area>
- <area href="/media/ilustrace/graf/knihy.jpg"  id="ceny" shape="rect" coords="15,413,188,458"></area>
+ <area href="/media/ilustrace/graf/ceny.jpg"  id="ceny" shape="rect" coords="15,413,188,458"></area>
  <area href="/zadani/aktualni/#zam_M"  id="matika" shape="rect" coords="357,514,488,556"></area>
  <area href="/zadani/aktualni/#zam_F"  id="fyzika" shape="rect" coords="276,557,354,594"></area>
  <area href="/zadani/aktualni/#zam_I"  id="informatika" shape="rect" coords="141,539,269,580"></area>

From d2367d28fb33b4dcdf2895b8e4bf95bbaabc328a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Domes?= <domestomas@gmail.com>
Date: Tue, 5 Mar 2019 21:09:14 +0100
Subject: [PATCH 05/13] =?UTF-8?q?Oprava=20rozbit=C3=BDch=20p=C5=99=C3=ADpo?=
 =?UTF-8?q?n=20obr=C3=A1zk=C5=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 seminar/templates/seminar/titulnistrana.html | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/seminar/templates/seminar/titulnistrana.html b/seminar/templates/seminar/titulnistrana.html
index a9f3df66..3134de45 100644
--- a/seminar/templates/seminar/titulnistrana.html
+++ b/seminar/templates/seminar/titulnistrana.html
@@ -51,11 +51,11 @@ M&amp;M je korespondenční seminář. Několikrát do roka zdarma vydáváme č
  <area href="/clanky/uvod/"  id="clanky" shape="rect" coords="363,428,447,466"></area>
  <area href="/zadani/aktualni/"  id="ulohy" shape="rect" coords="246,492,321,529"></area>
  <area href="/zadani/temata/"  id="temata" shape="rect" coords="126,473,217,511"></area>
- <area href="/media/ilustrace/graf/ceny.jpg"  id="ceny" shape="rect" coords="15,413,188,458"></area>
+ <area href="/media/ilustrace/graf/ceny.jpeg"  id="ceny" shape="rect" coords="15,413,188,458"></area>
  <area href="/zadani/aktualni/#zam_M"  id="matika" shape="rect" coords="357,514,488,556"></area>
  <area href="/zadani/aktualni/#zam_F"  id="fyzika" shape="rect" coords="276,557,354,594"></area>
  <area href="/zadani/aktualni/#zam_I"  id="informatika" shape="rect" coords="141,539,269,580"></area>
- <area href="/media/ilustrace/graf/dort.jpg"  id="dort" shape="rect" coords="60,519,121,554"></area>
+ <area href="/media/ilustrace/graf/dort.jpeg"  id="dort" shape="rect" coords="60,519,121,554"></area>
 
 </map>
   <span class="zjistit_vic">

From ec8ac3e3093fca287954bf174e6dbcf79d7721dd Mon Sep 17 00:00:00 2001
From: LEdoian <tap9701@gmail.com>
Date: Wed, 6 Mar 2019 00:52:34 +0100
Subject: [PATCH 06/13] =?UTF-8?q?Galerie:=20Mo=C5=BEnost=20=C3=BApravy=20p?=
 =?UTF-8?q?o=C5=99ad=C3=AD=20fotek?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 galerie/admin.py | 6 +++---
 galerie/views.py | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/galerie/admin.py b/galerie/admin.py
index 8e9c1897..6bae43ac 100644
--- a/galerie/admin.py
+++ b/galerie/admin.py
@@ -31,20 +31,20 @@ def prepnout_fotogalerii_do_org_rezimu(modeladmin, request, queryset):
 
 class GalerieInline(admin.TabularInline):
     model = Obrazek
-    fields = ['obrazek_velky', 'nazev', 'popis', 'obrazek_maly_tag']
+    fields = ['obrazek_velky', 'nazev', 'popis', 'obrazek_maly_tag', 'poradi']
     readonly_fields = ['nazev', 'obrazek_maly_tag']
     formfield_overrides = {
         models.TextField: {'widget': forms.TextInput},
     }
 
 class ObrazekAdmin(admin.ModelAdmin):
-    list_display = ('obrazek_velky', 'nazev', 'popis', 'obrazek_maly_tag')
+    list_display = ('obrazek_velky', 'nazev', 'popis', 'obrazek_maly_tag', 'poradi')
   
 class GalerieAdmin(admin.ModelAdmin):
     form = autocomplete_light.modelform_factory(Galerie, autocomplete_fields=['titulni_obrazek'], fields=['titulni_obrazek'])
     model = Galerie
     fields = ('zobrazit', 'nazev', 'titulni_obrazek', 'popis', 'galerie_up', 'soustredeni', 'poradi')
-    list_display = ('nazev', 'pk', 'poradi', 'datum_zmeny', 'zobrazit', 'soustredeni')
+    list_display = ('nazev', 'pk', 'poradi', 'datum_zmeny', 'zobrazit', 'soustredeni', 'poradi')
     inlines = [GalerieInline]
     actions = [zverejnit_fotogalerii, prepnout_fotogalerii_do_org_rezimu]
     save_on_top = True
diff --git a/galerie/views.py b/galerie/views.py
index 46860810..f7ace3c8 100644
--- a/galerie/views.py
+++ b/galerie/views.py
@@ -38,7 +38,7 @@ def nahled(request, pk, soustredeni):
     if not request.user.is_staff:
         podgalerie = podgalerie.filter(zobrazit__lt=1)
 
-    obrazky = Obrazek.objects.filter(galerie = galerie)
+    obrazky = Obrazek.objects.filter(galerie = galerie).order_by('poradi')
     preview = zobrazit(galerie, request)
 
     sourozenci = []
@@ -82,7 +82,7 @@ def detail(request, pk, fotka, soustredeni):
   galerie = get_object_or_404(Galerie, pk=pk)
   preview = zobrazit(galerie, request)
   obrazek = get_object_or_404(Obrazek, pk=fotka)
-  obrazky = galerie.obrazek_set.all()
+  obrazky = galerie.obrazek_set.all().order_by('poradi')
 
   # vytvoreni a obslouzeni formulare
   if request.method == 'POST':

From aba3fa356b40ccfe639c40d16eb1c00aef2c0b58 Mon Sep 17 00:00:00 2001
From: LEdoian <tap9701@gmail.com>
Date: Wed, 6 Mar 2019 01:13:55 +0100
Subject: [PATCH 07/13] =?UTF-8?q?Galerie:=20Ale=20sta=C4=8D=C3=AD=20zobraz?=
 =?UTF-8?q?it=20po=C5=99ad=C3=AD=20jednou=20:-)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 galerie/admin.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/galerie/admin.py b/galerie/admin.py
index 6bae43ac..784d4aa8 100644
--- a/galerie/admin.py
+++ b/galerie/admin.py
@@ -44,7 +44,7 @@ class GalerieAdmin(admin.ModelAdmin):
     form = autocomplete_light.modelform_factory(Galerie, autocomplete_fields=['titulni_obrazek'], fields=['titulni_obrazek'])
     model = Galerie
     fields = ('zobrazit', 'nazev', 'titulni_obrazek', 'popis', 'galerie_up', 'soustredeni', 'poradi')
-    list_display = ('nazev', 'pk', 'poradi', 'datum_zmeny', 'zobrazit', 'soustredeni', 'poradi')
+    list_display = ('nazev', 'pk', 'poradi', 'datum_zmeny', 'zobrazit', 'soustredeni')
     inlines = [GalerieInline]
     actions = [zverejnit_fotogalerii, prepnout_fotogalerii_do_org_rezimu]
     save_on_top = True

From 2cd5294754e2bf7e5b84525702eedcf9bc5dd289 Mon Sep 17 00:00:00 2001
From: LEdoian <tap9701@gmail.com>
Date: Wed, 13 Mar 2019 18:41:28 +0100
Subject: [PATCH 08/13] =?UTF-8?q?Organizator:=20Lep=C5=A1=C3=AD=20zp=C5=AF?=
 =?UTF-8?q?sob=20=C5=99azen=C3=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 seminar/models.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/seminar/models.py b/seminar/models.py
index 2bc86c41..e3c89ab8 100644
--- a/seminar/models.py
+++ b/seminar/models.py
@@ -758,6 +758,10 @@ class Organizator(models.Model):
     class Meta:
         verbose_name = 'Organizátor'
         verbose_name_plural = 'Organizátoři'
+        # Řadí aktivní orgy na začátek, pod tím v pořadí od nejstarších neaktivní orgy.
+        # TODO: Chtěl bych spíš mít nejstarší orgy dole.
+        # TODO: Zohledňovat přezdívky?
+        ordering = ['organizuje_do_roku', 'user__first_name', 'user__last_name']
 
 
 @reversion.register(ignore_duplicates=True)

From 9e03fba505185eca8391bbc87bb9f57739272306 Mon Sep 17 00:00:00 2001
From: MaM Web user <mam-web@gimli.ms.mff.cuni.cz>
Date: Wed, 13 Mar 2019 18:51:09 +0100
Subject: [PATCH 09/13] =?UTF-8?q?Chyba=20ve=20znam=C3=A9nku=20u=20=C5=99az?=
 =?UTF-8?q?en=C3=AD=20organiz=C3=A1tor=C5=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 seminar/models.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/seminar/models.py b/seminar/models.py
index e3c89ab8..86ea2811 100644
--- a/seminar/models.py
+++ b/seminar/models.py
@@ -761,7 +761,8 @@ class Organizator(models.Model):
         # Řadí aktivní orgy na začátek, pod tím v pořadí od nejstarších neaktivní orgy.
         # TODO: Chtěl bych spíš mít nejstarší orgy dole.
         # TODO: Zohledňovat přezdívky?
-        ordering = ['organizuje_do_roku', 'user__first_name', 'user__last_name']
+        # TODO: Sjednotit s tím, jak se řadí organizátoři v seznau orgů na webu
+        ordering = ['-organizuje_do_roku', 'user__first_name', 'user__last_name']
 
 
 @reversion.register(ignore_duplicates=True)

From dd9250a380357c49c76aacea1678ea07c850d0f9 Mon Sep 17 00:00:00 2001
From: LEdoian <tap9701@gmail.com>
Date: Sun, 17 Mar 2019 19:48:33 +0100
Subject: [PATCH 10/13] =?UTF-8?q?P=C5=99edn=C3=A1=C5=A1ky:=20obt=C3=AD?=
 =?UTF-8?q?=C5=BEnost=20v=20seznamu,=20jen=20aktu=C3=A1ln=C3=AD=20body=20v?=
 =?UTF-8?q?e=20v=C3=BDsledc=C3=ADch?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... Snad.
---
 prednasky/admin.py | 7 ++++++-
 prednasky/views.py | 2 +-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/prednasky/admin.py b/prednasky/admin.py
index a9b94ee0..f7ce8730 100644
--- a/prednasky/admin.py
+++ b/prednasky/admin.py
@@ -37,15 +37,20 @@ class Seznam_PrednaskaInline(admin.TabularInline):
     def prednaska__obor(self, obj):
         return obj.prednaska.obor
 
+    def prednaska__obtiznost(self, obj):
+        return obj.prednaska.obtiznost
+
     prednaska__nazev.short_description = u'Přednáška'
     prednaska__popis.short_description = u'Popis pro orgy'
     prednaska__anotace.short_description = u'Anotace'
     prednaska__org.short_description = u'Org'
     prednaska__obor.short_description = u'Obor'
+    prednaska__obtiznost.short_description = u'Obtížnost'
 
     readonly_fields = [
         'prednaska__nazev',
         'prednaska__obor',
+        'prednaska__obtiznost',
         'prednaska__org',
         'prednaska__popis',
         'prednaska__anotace',
@@ -63,7 +68,7 @@ admin.site.register(Seznam, SeznamAdmin)
 
 
 class PrednaskaAdmin(VersionAdmin):
-    list_display = ['nazev', 'org', 'obor']
+    list_display = ['nazev', 'org', 'obor', 'obtiznost']
     list_filter = ['org', 'obor']
     search_fields = []
     filter_horizontal = ('seznamy', )
diff --git a/prednasky/views.py b/prednasky/views.py
index 1e66ee64..7423f860 100644
--- a/prednasky/views.py
+++ b/prednasky/views.py
@@ -57,7 +57,7 @@ class SeznamListView(generic.ListView):
         self.seznam = get_object_or_404(Seznam, id=self.kwargs["seznam"])
         prednasky = Prednaska.objects.filter(seznamy=self.seznam).order_by(
             'org__user__first_name', 'org__user__last_name'
-        ).annotate(body=Sum('hlasovani__body'))
+        ).annotate(body=Sum('hlasovani__body').filter(seznam=self.seznam))
         return prednasky
 
 

From 5db763f2cb713632381f455a93efc319b44f9f48 Mon Sep 17 00:00:00 2001
From: LEdoian <tap9701@gmail.com>
Date: Sun, 17 Mar 2019 21:27:35 +0100
Subject: [PATCH 11/13] =?UTF-8?q?Revert=20"P=C5=99edn=C3=A1=C5=A1ky:=20obt?=
 =?UTF-8?q?=C3=AD=C5=BEnost=20v=20seznamu,=20jen=20aktu=C3=A1ln=C3=AD=20bo?=
 =?UTF-8?q?dy=20ve=20v=C3=BDsledc=C3=ADch"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Víc věcí to rozbilo než opravilo

This reverts commit dd9250a380357c49c76aacea1678ea07c850d0f9.
---
 prednasky/admin.py | 7 +------
 prednasky/views.py | 2 +-
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/prednasky/admin.py b/prednasky/admin.py
index f7ce8730..a9b94ee0 100644
--- a/prednasky/admin.py
+++ b/prednasky/admin.py
@@ -37,20 +37,15 @@ class Seznam_PrednaskaInline(admin.TabularInline):
     def prednaska__obor(self, obj):
         return obj.prednaska.obor
 
-    def prednaska__obtiznost(self, obj):
-        return obj.prednaska.obtiznost
-
     prednaska__nazev.short_description = u'Přednáška'
     prednaska__popis.short_description = u'Popis pro orgy'
     prednaska__anotace.short_description = u'Anotace'
     prednaska__org.short_description = u'Org'
     prednaska__obor.short_description = u'Obor'
-    prednaska__obtiznost.short_description = u'Obtížnost'
 
     readonly_fields = [
         'prednaska__nazev',
         'prednaska__obor',
-        'prednaska__obtiznost',
         'prednaska__org',
         'prednaska__popis',
         'prednaska__anotace',
@@ -68,7 +63,7 @@ admin.site.register(Seznam, SeznamAdmin)
 
 
 class PrednaskaAdmin(VersionAdmin):
-    list_display = ['nazev', 'org', 'obor', 'obtiznost']
+    list_display = ['nazev', 'org', 'obor']
     list_filter = ['org', 'obor']
     search_fields = []
     filter_horizontal = ('seznamy', )
diff --git a/prednasky/views.py b/prednasky/views.py
index 7423f860..1e66ee64 100644
--- a/prednasky/views.py
+++ b/prednasky/views.py
@@ -57,7 +57,7 @@ class SeznamListView(generic.ListView):
         self.seznam = get_object_or_404(Seznam, id=self.kwargs["seznam"])
         prednasky = Prednaska.objects.filter(seznamy=self.seznam).order_by(
             'org__user__first_name', 'org__user__last_name'
-        ).annotate(body=Sum('hlasovani__body').filter(seznam=self.seznam))
+        ).annotate(body=Sum('hlasovani__body'))
         return prednasky
 
 

From bd92068b37d4842d646e313cebe94e7f74d61b89 Mon Sep 17 00:00:00 2001
From: LEdoian <tap9701@gmail.com>
Date: Mon, 18 Mar 2019 00:34:37 +0100
Subject: [PATCH 12/13] =?UTF-8?q?Prednasky:=20v=20aktu=C3=A1ln=C3=ADch=20v?=
 =?UTF-8?q?=C3=BDsledc=C3=ADch=20jen=20aktu=C3=A1ln=C3=AD=20v=C3=BDsledky?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 prednasky/views.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/prednasky/views.py b/prednasky/views.py
index 1e66ee64..5d4e2eab 100644
--- a/prednasky/views.py
+++ b/prednasky/views.py
@@ -3,7 +3,7 @@ from django.shortcuts import render, get_object_or_404
 from django.views import generic
 from django.shortcuts import HttpResponseRedirect
 from django.core.exceptions import ObjectDoesNotExist
-from django.db.models import Sum
+from django.db.models import Sum, Subquery
 
 from prednasky.models import Prednaska, Hlasovani, Seznam, STAV_NAVRH
 from seminar.models import Soustredeni
@@ -55,9 +55,14 @@ class SeznamListView(generic.ListView):
 
     def get_queryset(self):
         self.seznam = get_object_or_404(Seznam, id=self.kwargs["seznam"])
+        # Od "annotate" je to hack opsaný ze stack overflow, kterým se filtrují
+        # jen výsledky z aktuálního seznamu. Dosud se zobrazoval součet bodů u
+        # přednášky od počátku historie.
+        # TODO: udělat lépe (Django 2 má Sum s filtrem)
         prednasky = Prednaska.objects.filter(seznamy=self.seznam).order_by(
             'org__user__first_name', 'org__user__last_name'
-        ).annotate(body=Sum('hlasovani__body'))
+        ).annotate(body=Subquery(Hlasovani.objects.filter(seznam=self.seznam)
+                .values('body').annotate(b=Sum('body')).values('b')))
         return prednasky
 
 

From 0aa5faa995c89de3b536bd442bb2e773f2053e64 Mon Sep 17 00:00:00 2001
From: MaM Web user <mam-web@gimli.ms.mff.cuni.cz>
Date: Mon, 18 Mar 2019 00:56:53 +0100
Subject: [PATCH 13/13] =?UTF-8?q?Revert=20"Prednasky:=20v=20aktu=C3=A1ln?=
 =?UTF-8?q?=C3=ADch=20v=C3=BDsledc=C3=ADch=20jen=20aktu=C3=A1ln=C3=AD=20v?=
 =?UTF-8?q?=C3=BDsledky"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Zase to nefungovalo

This reverts commit bd92068b37d4842d646e313cebe94e7f74d61b89.
---
 prednasky/views.py | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/prednasky/views.py b/prednasky/views.py
index 5d4e2eab..1e66ee64 100644
--- a/prednasky/views.py
+++ b/prednasky/views.py
@@ -3,7 +3,7 @@ from django.shortcuts import render, get_object_or_404
 from django.views import generic
 from django.shortcuts import HttpResponseRedirect
 from django.core.exceptions import ObjectDoesNotExist
-from django.db.models import Sum, Subquery
+from django.db.models import Sum
 
 from prednasky.models import Prednaska, Hlasovani, Seznam, STAV_NAVRH
 from seminar.models import Soustredeni
@@ -55,14 +55,9 @@ class SeznamListView(generic.ListView):
 
     def get_queryset(self):
         self.seznam = get_object_or_404(Seznam, id=self.kwargs["seznam"])
-        # Od "annotate" je to hack opsaný ze stack overflow, kterým se filtrují
-        # jen výsledky z aktuálního seznamu. Dosud se zobrazoval součet bodů u
-        # přednášky od počátku historie.
-        # TODO: udělat lépe (Django 2 má Sum s filtrem)
         prednasky = Prednaska.objects.filter(seznamy=self.seznam).order_by(
             'org__user__first_name', 'org__user__last_name'
-        ).annotate(body=Subquery(Hlasovani.objects.filter(seznam=self.seznam)
-                .values('body').annotate(b=Sum('body')).values('b')))
+        ).annotate(body=Sum('hlasovani__body'))
         return prednasky