Skip to content
Snippets Groups Projects

Vylepšení výsledkové listiny

Merged Martin Mareš requested to merge mj/vysledky-p into devel
1 unresolved thread
+ 8
5
@@ -79,6 +79,9 @@ class ScoreTask:
return Fraction(0)
return Fraction(self.sum_points, self.num_solutions)
def get_difficulty_str(self) -> str:
return f'{self.sum_points}/{self.num_solutions}'
class Score:
round: db.Round
@@ -113,6 +116,7 @@ class Score:
# Příprava subquery na účastníky (contest_subq obsahuje master_contest_id)
sess = db.get_session()
if contest:
assert contest.master_contest_id is not None
contest_subq = [contest.master_contest_id]
else:
contest_subq = sess.query(db.Contest.master_contest_id).filter_by(round=round)
@@ -123,10 +127,9 @@ class Score:
.select_from(db.Participation)
.join(db.User)
.join(db.Participant, and_(
db.Participant.user_id == db.Participation.user_id,
db.Participant.year == round.year
)
).filter(
db.Participant.user_id == db.Participation.user_id,
db.Participant.year == round.year
)).filter(
db.User.is_test == False,
db.Participation.state.in_(part_states),
db.Participation.contest_id.in_(contest_subq)
@@ -327,7 +330,7 @@ class Score:
f"Úlohy {last_task.task.code} a {task.task.code} mají stejnou vypočtenou obtížnost"
+ f" {difficulty}, pro výpočet obtížnosti je řadím podle kódu úlohy"
)
difficulty_report.append(f"{task.task.code} ({round(float(difficulty), 2)} b)")
difficulty_report.append(f"{task.task.code} ({task.get_difficulty_str()}={float(difficulty):.2f})")
last_task, last_difficulty = task, difficulty
self._add_message(
Loading