From 3ca6a69bf8b502fbf8cb59ce1db9139e921bf0b1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ji=C5=99=C3=AD=20Setni=C4=8Dka?= <setnicka@seznam.cz>
Date: Wed, 24 Mar 2021 15:41:00 +0100
Subject: [PATCH] =?UTF-8?q?Score:=20Fix=20zjednozna=C4=8D=C5=88ov=C3=A1n?=
 =?UTF-8?q?=C3=AD=20podle=20minul=C3=BDch=20kol?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Omylem jsme brali pořád dokola jen současné kolo.

Také je pro přehlednost lepší mít v třídícím klíči jednotlivá kola jako Tuple. Na
třídění to nic nezmění (funguje rekurzivně).
---
 mo/score.py         | 6 +++---
 mo/web/org_score.py | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/mo/score.py b/mo/score.py
index 29f112cb..e474ffdb 100644
--- a/mo/score.py
+++ b/mo/score.py
@@ -360,7 +360,7 @@ class Score:
                 sol_points = {}
                 for task_id in self._tasks[step].keys():
                     sol_points[task_id] = 0
-                for sol in result._sols[0].values():
+                for sol in result._sols[step].values():
                     if sol.points:
                         sol_points[sol.task_id] = -sol.points  # sestupné třídění
 
@@ -370,10 +370,10 @@ class Score:
 
                 if result.successful or not self.want_successful:
                     # Primárně podle počtu získaných bodů, sekundárně podle bodů od maxima, terciárně podle bodů od nejobtížnější
-                    result._order_key.extend((total_points, points_from_max, points_from_difficult))
+                    result._order_key.append((total_points, points_from_max, points_from_difficult))
                 else:
                     # Neúspěšné řešitele třídíme podle počtu získaných bodů, sekundárně podle jména, jednoznačně podle user_id
-                    result._order_key.extend((total_points, result.user.name_sort_key(), result.user.user_id))
+                    result._order_key.append((total_points, result.user.name_sort_key(), result.user.user_id))
 
             # Otestujeme, jestli teď existují sdílená místa
             if not self._exists_same_order_key():
diff --git a/mo/web/org_score.py b/mo/web/org_score.py
index 48dda81e..a648bc74 100644
--- a/mo/web/org_score.py
+++ b/mo/web/org_score.py
@@ -1,6 +1,6 @@
 from flask import render_template, request, g
 from flask.helpers import url_for
-from typing import List, Optional
+from typing import List, Optional, Union
 import werkzeug.exceptions
 
 import mo
-- 
GitLab